Итак, у меня есть следующий фрагмент кода в python, который в основном открывает текстовый файл, делает массив из текстового содержимого файла (разделяя его по строкам), а затем переходит к вводу из пользователя и сравнить этот ввод с каждым из членов массива. Несмотря на то, что строка, указанная пользователем, находится в массиве, точно так же, как она была напечатана, программа не может сказать, что две строки равны. Как сравнить строки? И если эти обозначения верны, что может быть причиной неравенства? Я попытался заменить «is» на «==», но это тоже не сработало.Сравнение строк в Python не работает
как вход для userinput
является frogeyedpeas
и UserArray[0]
является frogeyedpeas
Файл Usernames.txt
frogeyedpeas
vsauce
(есть дополнительная линия, которая является полностью пустым после канала Vsauce)
Код Написал ниже:
Usernames = open('Usernames.txt', 'r+')
UserArray = Usernames.read().split("\n")
userinput = raw_input("Enter Username: ")
passinput = raw_input("Enter Password: ")
i = 0
q = len(UserArray)
while(i < q):
founduser = 0
print userinput, UserArray[i], UserArray #out
if(UserArray[i] == userinput):
founduser = 1
if(PassArray[i] == passinput):
userstatus = i
founduser = 2
i = i + 1
Редактировать пост и добавить содержимое «Usernames.txt» –
Что 'печать предст (UserInput), repr (UserArray [i]) 'print? –
'UserArray [i] является userinput', [сначала узнайте об операторе' is'] (http://stackoverflow.com/questions/2438667/what-is-the-semantics-of-is-operator-in-python) , –