我缺少的逻辑错误是什么?

时间:2019-06-16 15:57:40

标签: python file

关于Python(我是Python的初学者),我正在尝试一些文件,但是遇到了逻辑上的错误。

我正在从文件中读取两行,我将第一行与字符串进行比较,将第二行与字符串进行比较。

第一行与字符串相同,第二行也与字符串相同。

“ admin_details.txt”文件有两行。

第一行是:“ kappa”

第二行是:“ opieop”

如果我输入“ kappa”作为用户名,输入“ opieop”作为密码, 此“如果lines [0] ==用户名和lines [1] ==密码”应为True,并且确实应执行代码“ log_in_details = True”,但事实并非如此。

log_in_details = False
username = ""
password = ""
details = []

while log_in_details == False:

    username = input("\n< Username >: ")
    password = input("< Password >: ")

    f = open("admin_details.txt", "r")

    lines = f.readlines()
    print(f"\nThe first line 'lines[0]' in the file is: {lines[0]}", end='')
    print(f"The second line 'lines[1]' in the file is: {lines[1]}")

    print(f"\nEntered username is: {username}")
    print(f"Entered password is: {password}")

    if lines[0] == username and lines[1] == password:
        log_in_details = True
    else:
        print("\nYou entered in the wrong username or password.")
        print("Try again!")

    f.close()

我希望程序进入if语句下的第一段代码,将log_in_details更改为True,然后程序将退出while循环,并且程序将退出并返回0。而是直接在else下方进入代码块,然后返回while循环的顶部。

1 个答案:

答案 0 :(得分:0)

答案如上,但是如何测试呢?

一种可能性是添加单引号:

implementation 'com.google.android.material:material:1.0.0'

输出:

print(f"\nThe first line 'lines[0]' in the file is: '{lines[0]}'", end='')
print(f"The second line 'lines[1]' in the file is: '{lines[1]}'")

请注意单引号的位置。