如何正确比较Unicode字符串?Python代码匹配失败问题求助
问题原因与解决方法
你的代码里conc_value比目标字符串'(01)'多了一个ASCII空字符(NUL,对应chr(0)),导致两者长度和内容都不匹配:
chr(40)是(,chr(48)是0,chr(49)是1,chr(41)是),这四个拼接起来正好是'(01)',但你额外加了chr(0)——一个不可见的空字符,最终conc_value是'(01)\x00'(长度为5),而目标字符串长度是4,自然无法匹配。
解决办法
直接去掉多余的chr(id_4)即可,修改后的代码:
id_0 = 40 id_1 = 48 id_2 = 49 id_3 = 41 conc_value = chr(id_0)+chr(id_1)+chr(id_2)+chr(id_3) if conc_value == '(01)': print('Match') else: print('Mismatch')
如果想验证问题所在,可以在原代码里添加打印语句查看实际内容:
print(repr(conc_value)) # 会输出 '(01)\x00',清晰看到那个空字符 print(len(conc_value), len('(01)')) # 输出 5 4,长度明显不同
内容的提问来源于stack exchange,提问作者Dan
相关产品推荐
相关产品推荐

