2010-11-04 7 views
6

Je veux que le programme de pause et attendez jusqu'à ce que vous appuyez sur une touche pour continuer, mais raw_input() disparaît, et input() le remplace. Donc j'ai
var = input ("Appuyez sur enter pour continuer") et il attend que j'appuie sur entrée, mais il échoue avec SyntaxError: unexpected EOF while Parsing. Cela fonctionne bien sur un système avec Python 3, mais c'est Linux Python 2.6 et je déteste devoir coder dans raw_input() car il s'en va. Des suggestions?est-il un moyen d'utiliser entrée ("Appuyez sur une touche pour continuer") sur la version 2.6

+5

Veuillez publier les messages d'erreur ** ** réel et ** ** réel ** que vous obtenez ** réellement **. –

+0

Cela ne devrait pas être une erreur de syntaxe - Python 2.6 supporte la fonction 'input'. Pourriez-vous nous montrer le reste de votre code s'il vous plait? – Smashery

+1

@smashery: cela causera toujours une erreur de syntaxe si l'expression entrée contient une erreur de syntaxe, par exemple juste en appuyant sur la touche entrée – recursive

Répondre

9

Utilisez cette

try: 
    input= raw_input 
except NameError: 
    pass 

Si raw_input existe, il sera utilisé pour l'entrée. Si ce n'est pas le cas, input existe toujours.

+0

J'aime celui-ci. J'ai bien travaillé. et est simple – Dag

+0

+1 Bien que je pense que cela aurait été mieux s'il y avait une importation '__future__' pour cela, il n'y en a pas, donc c'est la meilleure façon –

3

vous pouvez faire quelque chose sur la ligne de ...

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

... mais ne le font pas . Au lieu de cela, utilisez simplement raw_input() sur votre programme, puis utilisez 2to3 pour convertir le fichier en python 3.x. Cela va convertir tous les raw_input() s pour vous et aussi d'autres choses que vous pourriez manquer.

C'est la manière recommandée de garder un logiciel fonctionnant à la fois sur python 2 et python 3 et de garder aussi la santé mentale.

+0

mais si je déplace juste le fichier entre deux cases, je déteste avoir à convertir tout le temps – Dag

+0

donc il n'y a aucun moyen dans 2.6 de faire fonctionner input()? – Dag

+0

Non, il évalue l'entrée. Vous devrez modifier la façon dont l'entrée est définie. http://docs.python.org/library/functions.html?highlight=input#input – dcolish

1
import os 
os.sys('pause') 

Vous pouvez utiliser ce module sous Windows.

Questions connexes