String Python赢得了';不能正确比较字符串吗?
我试图使用一个文本文件创建一个基本密码系统,程序从中读取并将其分配给一个变量。此变量将与用户输入进行比较。出于某种原因,即使我知道的字符串完全相同(我甚至将字符串从文本文件复制并粘贴到输入中),它也会导致程序告诉我密码不正确。代码如下:String Python赢得了';不能正确比较字符串吗?,string,variables,python-3.x,String,Variables,Python 3.x,我试图使用一个文本文件创建一个基本密码系统,程序从中读取并将其分配给一个变量。此变量将与用户输入进行比较。出于某种原因,即使我知道的字符串完全相同(我甚至将字符串从文本文件复制并粘贴到输入中),它也会导致程序告诉我密码不正确。代码如下: import time file = open("passwordfile.txt", "r") localPass = file.readline() userAttempt = 0 print (localPass) localPassTest = loc
import time
file = open("passwordfile.txt", "r")
localPass = file.readline()
userAttempt = 0
print (localPass)
localPassTest = localPass
def enterScreen():
print (" ")
print ("You are in the program!")
for x in range (0, 3):
userPass = input ("Enter password: ")
if userPass == localPassTest:
print (" ")
print ("Correct password!")
break
enterScreen()
else:
print ("Incorrect password!")
问题似乎与您创建的文本文档有关。如果你是手写的,并且有多行,它会要求你在行尾加上一个回车。几个月前,我在一个类似的项目中遇到了这个问题。 解决这个问题的方法是使用python本身编写文本文件。您可以使用以下代码执行此操作:
writefile = file("password.txt", 'w')
writefile.writelines(["First Line of File", "\n", "Second Line of File"])
这种方法可以无限重复任何行数
此外,您不需要缩进定义函数,因为它会引发一个缩进错误。
您可能会遇到空白问题,请尝试查看<代码> RePR(LoalPASS)<代码> VS>代码> RePR(UsPASS)< /C> >并考虑添加< <代码> .TAG()/<代码>。运行您的代码(def enterScreen()的固定缩进),一切都很好。我不确定你的问题是什么。您的password.txt文件中可能有多余的空格或换行符。如果是这样的话,jonrsharpe评论应该可以解决你的问题。是的!这个修好了,谢谢你的帮助。我早该这么做的。当我从文本文件学习读写时,我完全忽略了关于/n的部分,认为这不会有什么不同。而且,我错了。。。不管怎样,那是为了帮助你。没问题!很高兴我能帮上忙!