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的部分,认为这不会有什么不同。而且,我错了。。。不管怎样,那是为了帮助你。没问题!很高兴我能帮上忙!