2010-11-04 2 views
6

Я хочу, чтобы программа приостанавливалась и дождалась нажатия любой клавиши, чтобы продолжить, но raw_input() уходит и вводит() заменяет его. Таким образом, у меня есть
var = input («Нажмите enter для продолжения»), и он ждет, пока я не нажму кнопку ввода, но затем он не с SyntaxError: unexpected EOF while Parsing. Это работает нормально в системе с Python 3, но это Linux-Python 2.6, и мне не нравится код в raw_input(), поскольку он уходит. Любые предложения?есть способ использовать ввод («Нажмите любую клавишу, чтобы продолжить») в версии 2.6

+5

Пожалуйста, отправьте ** фактический ** код и ** фактические ** сообщения об ошибках, которые вы ** фактически ** получаете. –

+0

Это не должно быть синтаксической ошибкой - Python 2.6 поддерживает функцию 'input'. Не могли бы вы показать нам остальную часть вашего кода, пожалуйста? – Smashery

+1

@smashery: он все равно выдает синтаксическую ошибку, если введенное выражение содержит синтаксическую ошибку, например, просто нажав enter – recursive

ответ

9

Используйте этот

try: 
    input= raw_input 
except NameError: 
    pass 

Если raw_input существует, то он будет использоваться для ввода. Если он не существует, input все еще существует.

+0

Мне это нравится. Отлично. и просто – Dag

+0

+1 Хотя я думаю, что было бы лучше, если бы был импорт '__future__' для этого, нет, так что это лучший способ –

3

вы могли бы сделать что-то на линии ...

def myinput(prompt): 
    try: 
     return raw_input(prompt) 
    except NameError: 
     return input(prompt) 

... но делать не.

Вместо этого просто используйте raw_input() в своей программе, а затем используйте 2to3, чтобы преобразовать файл в python 3.x. Это будет конвертировать все raw_input() для вас, а также другие вещи, которые могут отсутствовать.

Это рекомендуемый способ сохранить программное обеспечение, работающее как на python 2, так и на python 3, а также сохранить здравый смысл.

+0

, но если я просто перетащил файл между двумя ящиками, мне не терпится конвертировать все время – Dag

+0

, так что нет способа в 2.6 сделать вход() работать? – Dag

+0

Нет, это делает оценку входа. Вам нужно будет изменить способ ввода данных. http://docs.python.org/library/functions.html?highlight=input#input – dcolish

1
import os 
os.sys('pause') 

Этот модуль можно использовать в Windows.

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