#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]))
убедиться, что в прочитанных строках нет новой строки или чего-то еще «невидимого».