2010-11-04 22 views
6

Quiero que el programa se detenga y espere hasta que presione cualquier tecla para continuar, pero raw_input() se va y entrada() lo está reemplazando. Así que tengo
var = entrada ("Presione enter para continuar") y espera hasta que presione enter, pero luego falla con SyntaxError: unexpected EOF while Parsing. Esto funciona bien en un sistema con Python 3, pero este es linux Python 2.6 y odio tener que codificar en raw_input() ya que se va. ¿Alguna sugerencia?hay una forma de utilizar la entrada ("Presione cualquier tecla para continuar") en la versión 2.6

+5

Por favor, publique el código ** real ** y los mensajes de error ** reales ** que está recibiendo ** en realidad **. –

+0

Esto no debería ser un error de sintaxis: Python 2.6 admite la función 'input'. ¿Podrías mostrarnos el resto de tu código, por favor? – Smashery

+1

@smashery: aún causará un error de sintaxis si la expresión ingresada contiene un error de sintaxis, por ejemplo solo presionando enter – recursive

Respuesta

9

Utilice esta

try: 
    input= raw_input 
except NameError: 
    pass 

Si raw_input existe, se utiliza para la entrada. Si no existe, input aún existe.

+0

Me gusta este. Funcionó muy bien. y es simple – Dag

+0

+1 Aunque creo que hubiera sido mejor si hubiera una importación '__future__' para esto, no lo hay, así que esta es la mejor manera –

3

se podría hacer algo en la línea de ...

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

... pero No.

En su lugar, simplemente use raw_input() en su programa, y ​​luego use 2to3 para convertir el archivo a python 3.x. Eso convertirá todos los raw_input() s para ti y también otras cosas que podrías estar perdiendo.

Esa es la forma recomendada de mantener un software que funcione tanto en python 2 como en python 3 y también mantener la cordura.

+0

pero si muevo el archivo entre dos cajas, odio tener que Convierte todo el tiempo – Dag

+0

, así que no hay forma de que 2.6 haga que la entrada() funcione? – Dag

+0

No, evalúa la entrada. Tendrá que cambiar cómo se define la entrada. http://docs.python.org/library/functions.html?highlight=input#input – dcolish

1
import os 
os.sys('pause') 

Puede usar este módulo en Windows.

Cuestiones relacionadas