2012-04-15 2 views
2

Я написал небольшое текстовое приключение в Python 3.2.2 и отправил файл .py другу, который использует mac.var = input («Нажмите любую клавишу, чтобы продолжить») - Почему это не работает?

Он запустил код после загрузки последнего питона для снежного барса, и он работал нормально до строки в коде: var = input («нажмите любую клавишу, чтобы продолжить»). После этого он просто остался на этой линии, не производя никаких ошибок или ничего не делая, кроме того, что ничего не произошло, когда он набрал что-нибудь. Символы, которые он напечатал, появились в подсказке, но программа никогда не продвигалась вперед.

Затем я заморозил программу, используя cx_freeze, и отправил ее моей сестре, которая работает с windows xp (как я), и у нее была та же проблема. Игра дошла до этой линии.

Что я делаю неправильно?

Спасибо!

ответ

2

Возможно, они используют python 2.x и нужно нажать клавишу возврата. input ожидает строка ввода, а не один символ. Функция input существенно изменилась между 2.x и 3.x, и поведение, которое вы видите, согласуется с python 2.x.

Для фона на изменения в поведении см PEP 3111

+0

Я только что понял. Ничего себе, теперь чувствуй себя как псих. Благодарю. – user1311674

+0

Чтобы разработать: 'input()' работает только после того, как он получит целую строку ввода, то есть нажав клавишу возврата. Если вы хотите получить по одному персонажу за раз, вам нужно сделать это по-другому. –

+0

на python 2.7.2 нажатие только вводить на вход создает: «SyntaxError: неожиданный EOF при разборе» - это поведение любого другого в python 3k? – luke14free

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