Какова логическая ошибка, которую я пропускаю? - PullRequest
0 голосов
/ 16 июня 2019

Я немного экспериментирую с файлами, когда дело доходит до Python (я новичок в Python), и я столкнулся с тем, что кажется логической ошибкой.

Я читаю в две строки изфайл, я сравниваю первую строку со строкой, я сравниваю вторую строку со строкой.

Первая строка идентична строке, вторая строка также идентична строке.

Файл "admin_details.txt" состоит из двух строк.

Первая строка: "kappa"

Вторая строка: "opieop"

ЕслиЯ ввожу в «kappa» в качестве имени пользователя и «opieop» в качестве пароля, это «если lines [0] == username и 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 голосов
/ 16 июня 2019

Ответ, как указано выше, но как это проверить?

Можно добавить одинарные кавычки:

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]}'")

вывод:

D:\TEMP>python admin_details.py

< Username >: kapp
< Password >: opiekop

The first line 'lines[0]' in the file is: 'kappa
'The second line 'lines[1]' in the file is: 'opiekop
'

Entered username is: kapp
Entered password is: opiekop

You entered in the wrong username or password.
Try again!

Обратите внимание на положение одинарных кавычек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...