Итак, я делаю базовый импровизированный логин, проверяющий вещь только с базовым текстовым файлом, чтобы «притворяться», и что нужно вернуть True. Проверка имени пользователя работает, но не проверка пароляСравнение одинаковых строк возвращает False?
@staticmethod
def validate_login(filename,username,password):
file = open(filename,'r')
file.readline()
for line in file:
i = [i for i, char in enumerate(line) if char == '|']
print username == line[i[0] + 2:i[1]-1]
print password == line[i[1] + 2:]
print password
print line[i[1] + 2:]
if username == line[i[0] + 2:i[1]-1] and password == line[i[1] + 2:]:
file.close()
print "Login Successful."
return True
file.close()
print "Failed to login. Invalid username or password."
return False
Это результат вывода. Пароль точно совпадает с текстовым файлом, но возвращает false. Имя пользователя возвращает true. В чем именно проблема? Это сводит меня с ума.
True <--- username matched correctly returns true
False <---passwords apparently don't match, returns false.
DopeFiend97 <--password
DopeFiend97
Вероятно, у вас есть новая строка '\ n' в вашем сравнении паролей. Вам нужно будет 'strip()' it off. Любая причина не использовать 'split', например. 'u, p = line.strip(). split ('|'); если username == u и password == p): ... ' – AChampion
Исправлено это, пришлось использовать line.strip() – CabDude