首页 > 解决方案 > 如何比较两个在python中都包含字符串的变量?

问题描述

我通过将用户名和密码存储在一个单独的文件中并且程序访问它,然后读取密码并将其与用户输入的内容进行比较,从而在 python 中创建了一个帐户登录系统。它可以读取文件中的密码,但由于某种原因,当它与用户输入的密码进行比较时,它总是说它是错误的。

我尝试将实际密码与用户的输入进行比较,并且我知道它正在正确读取文件,因为我让它打印出它读取的内容并打印了正确的密码。我还让它打印了用户的输入,以确保它是正确的并且也可以正常工作。

正如您所知道的,该文件已经存在,其中包含第二行的密码,并且它找到了正确的文件,因为该文件以其所用的帐户命名。

Account = str(input("Enter the username. "))
Account_Password = str(input("Enter the password. "))
AccountFileName = (Account + ".txt")
with open(AccountFileName,"r") as AF:
    for x, line in enumerate(AF):
        if x == 1:
            Account_Password_Check = (line)
if Account_Password == Account_Password_Check:
    print("Welcome, " + Account + "!")
else:
    print("Either the username or password were incorrect.")

如果用户输入与密码相同,则应打印“欢迎(此处为用户名)!” 如果它们不同,则应打印“用户名或密码不正确”。

如果您知道出了什么问题,请告诉我。

谢谢。

标签: pythonstringfilevariables

解决方案


在对您的问题的评论中,您会发现它不起作用的第一个原因,但是:

for x, line in enumerate(AF):
        if x == 1:
            Account_Password_Check = (line)

也不完全正确,enumerate从零开始计数,但条件检查 1 行,这意味着您将比较您当前的用户密码和以前的密码。正确的版本将是

for x, line in enumerate(AF):
        if x == 0:
            Account_Password_Check = line.strip()
            break

推荐阅读