我有2个字符串:str1
和str2
。
我如何得到str1:
class Verifier(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.entry = tk.Entry(self, show='*')
self.button = tk.Button(self, text="Verify", command=self.on_button)
self.button.pack()
self.entry.pack()
def on_button(self):
p = self.entry.get()
str1 = hashlib.md5(p).hexdigest()
Str1是输入tkinter文本框的文本的md5。
如果我输入' hello',Str1为'5d41402abc4b2a76b9719d911017c592'
我是如何得到Str2:
Str2 = open("x.txt", "r").readlines()[0]
这是一个文本文件,其中md5哈希为' hello' (5d41402abc4b2a76b9719d911017c592
)。
这是一个描述这个的脚本:
import Tkinter as tk, hashlib
Str2 = open("x.txt", "r").readlines()[0]
class Verifier(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.entry = tk.Entry(self, show='*')
self.button = tk.Button(self, text="Verify", command=self.on_button)
self.button.pack()
self.entry.pack()
def on_button(self):
p = self.entry.get()
Str1 = hashlib.md5(p).hexdigest()
print Str1
print Str2 #Notice how these are the same
print Str1 == Str2 #Why does this return false
print str(Str1) == str(Str2) #FOR GOOD MEASURE
Verifier().mainloop()
我不知道它是不是我,或者是什么。我正在运行python 2.7
以下是截图:
请帮忙。
答案 0 :(得分:2)
Str2最后有一个换行符。做:
Str2.strip()
删除它。
编辑:正如评论中所提到的,str.rstrip()只会删除字符串右侧的字符,而str.strip()会从两端剥离。但是,请注意在从文件解析时在开头有空格的字符串,因为str.rstrip()不会删除它。这是我默认坚持使用str.strip()的主要原因。我也不关心这里的效率;我几乎可以保证分析大多数代码会找到比str.strip()和str.rstrip()之间的差异更大的瓶颈。