2016-11-12 2 views
0

Я создаю программу на Python, что позволяет создать имя пользователя и пароль, и вот что у меня до сих пор:Python имя пользователя и пароль создателя

#Code 
username = str(input("Please enter a username:")) 
print("Your username is",username,",proceed?") 
raw_input = input() 
if raw_input() == 'no': 
    re_u = input("Please re-enter username") 
else: 
    import getpass 
    mypass = getpass.getpass("Please enter your password:") 

И проблема я получаю это: Traceback (последний последний вызов): строка 6, в if raw_input() == 'no': ТипError: объект 'str' не может быть вызван.

Пожалуйста, помогите

+0

вы пишете это в Python 2.7 или 3.x? –

ответ

0

raw_input является строкой, но вы пытаетесь использовать его в качестве функции с() в конце. использовать вместо этого:

if raw_input == 'no': 
1

В линии:

raw_input = input() 

Если вы используете Python 2.7, Вы заменяемое по умолчанию raw_input и сделать его строку.

Если вы используете Python 3, вы создаете строку raw_string со значением input()

Таким образом, в обоих случаях, когда вы пытаетесь вызвать raw_input как функцию, вы получите сообщение об ошибке.

TypeError: 'str' object is not callable.

if raw_input() == 'no': 

Здесь raw_input является строка, а не отозваны. Вы не можете назвать его функцией.

Теперь, поэтому рабочий код должен быть, как показано ниже: (Питон 2,7 раствор)

import getpass 

username = raw_input("Please enter a username:") 
username_confirmation = raw_input("Your username is " + username + ",proceed?") 
if username_confirmation == "No": 
    username = raw_input("Please re-enter username") 
else: 
    password = getpass.getpass("Please enter your password:") 

# do something with username and password 
+0

Если это Python 3, то 'raw_input' больше не используется по умолчанию, поскольку вместо этого он был переименован в' input'. – Makoto

+0

@Makoto У меня возникло ощущение, что это python 2, потому что OP, безусловно, новичок и неправильно использует 'raw_input()'. Если это python 3, он не должен быть знаком с ним. Во всяком случае, я отредактировал ответ для обоих случаев. –

+0

'print' стал функцией в Python 3, а' input' ведет себя так же, как 'raw_input' в Python 2 (как в Python 2,' input' тоже сделал что-то особенное). Я сильно сомневаюсь, что OP использует Python 2, но спасибо за его исправление. – Makoto

Смежные вопросы