Почему это печатает недопустимые учетные данные вместо входа в систему

#python #python-3.x

#python #python-3.x

Вопрос:

Я изучаю Python. У меня есть этот код:

 import csv

# Asking for user Inputs
user_name = input('Enter Username: ')
password = input('Enter Password: ')


def login(user_name, password):
    # Opening the CSV File
    with open('user_info.csv', 'r') as user_info_file:
        # Defining the file reader
        csv_reader = csv.reader(user_info_file)

        # Checking if the user credentials are correct
        for user in csv_reader:

            # Checking if the user_name and password are in the csv file
            if user[0] == user_name and user[1] == password:
                return True

    return False


authenticate = login(user_name, password)
if authenticate == True:
    print('Logged In')
else:
    print("Wrong Credentials")
  

Когда я ввожу имя пользователя и пароль, такие же, как в файле csv, он печатается Invalid Credentials вместо Logged in .

Кто-нибудь может помочь в этом?

Комментарии:

1. вы пытались print(user) посмотреть, какие значения вы сравниваете?

2. Да, он печатает [имя пользователя, пароль]

3. Используйте print(user) в своем цикле и посмотрите, что не так. Вы действительно вводили пробел в качестве первого символа своего пароля? Если я ввожу user_one и password_one (ведущий пробел!), Это работает для меня.

4. Если user[0] == user_name and user[1] == password никогда не бывает true , то строки, которые вы сравниваете, никогда не будут true. Постарайтесь print(list(user[0]), list(user[1])) убедиться, что в прочитанных строках нет новой строки или чего-то еще «невидимого».