【发布时间】:2011-07-11 21:31:14
【问题描述】:
Python 中的 if 语句计算并返回非预期值。
p = sub.Popen('md5.exe -n md5.exe',stdout=sub.PIPE,stderr=sub.PIPE)
md5, errors = p.communicate()
print md5
abc = "8D443F2E93A3F0B67F442E4F1D5A4D6D"
print abc
if md5 == abc: print 'TRUE'
else: print 'FALSE'
repr(md5) 是'8D443F2E93A3F0B67F442E4F1D5A4D6D\r\n'。
这两个字符串是相同的,但它会计算并打印FALSE。
这里发生了什么,如何解决?
【问题讨论】:
-
请
print repr(md5)和print repr(abc),然后用每次打印的输出更新问题。 -
尝试在第 3 行打印
repr(md5)。您确定它们是一样的吗? -
你能做到吗:我想某处有换行符或类似的东西。试试:
md5.strip() == abc。否则,运行print repr(md5)并回发 -
请用每个打印语句的输出更新问题。请包括两个输出。请更新问题。 “两个字符串相同”的说法是错误的。
-
如果您的目标不是了解子流程模块的工作原理,您可能需要查看hashlib。
标签: python string if-statement