2017-02-20 1 views
1

Я изучаю Python, и я пытаюсь создать простую программу входа для более крупного проекта.Идентичные строки не совпадают?

Этот код:

def _login():#Login Function 
     username = input("Username:\n") 
     password = input("Please enter your password:\n") 
     with open("logins", "r") as log: 
      for line in log: 
      compound = str(username + password) 
      a = line 
      b = str(re.sub(':', '', a)) 
      if a == compound: 
       print("Success") 
_login() searches through a text file where **user:pass** are on individual lines displayed as such in the bold text. 

Это то берет строку вашего ввести имя пользователя и пароль, concats это и делает то же самое с именами пользователей/переходит на файл, освобождает «:», который фильтруется через регулярное выражение.

Проблема:

Комбинированная Строка, которую пользователь вводит (вар соединения) и отфильтрованная строка из текстового файла (вар ) не возвращает истины, если сравниваются, даже если они оба равны пользователю «UserPass»

Как бы исправить это?

Cheers

+0

Вы пробовали распечатать 'repr' каждой строки? Я думаю, вы обнаружите, что, как говорит вам интерпретатор, они не равны. – TigerhawkT3

+0

Ах, дерьмо, я напечатал() ...: P – Kris

+0

Я ПОЛУЧИЛ ЭТО СПАСИБО ВАМ LOL! Пароли в файле содержали экземпляр «\ n»! – Kris

ответ

0

Похоже, вы уже нашли ответ. Но я хотел бы сказать, что вам лучше использовать 'b' для сравнения вместо 'a'. Вы должны удалить «:» по какой-то причине. :)

+0

......... черт возьми, это repl.it ... Chromebooks и бета-версии! Делает для плохой читаемости. Спасибо LOL – Kris