2015-09-22 2 views
0

C'est probablement une question très simple, mais je n'ai pas trouvé une solution simple. En python2, je peux attendre une pression de touche de la manière suivante:Comment dois-je attendre une touche dans Python 2 et Python 3?

raw_input("\nPress Enter to continue.") 

En Python 3, je peux attendre une pression de touche de la manière suivante:

input("\nPress Enter to continue.") 

Comment dois-je attendre une pression de touche dans un script qui est destiné à être compatible avec Python 2 et Python 3?


EDIT: Par exemple, la fonction suivante est-elle aussi efficace que possible?

def pause(
    text = "\nPress Enter to continue." 
    ): 
    if sys.version_info[0] < 3: 
     raw_input(text) 
    else: 
     input(text) 
+1

Vous pouvez vérifier quelle version vous êtes avant chaque morceau de code qui dépend de la version –

+2

Je serais enclin à faire 'si sys.v ersion_info [0]> = 3: raw_input = input', alors utilisez 'raw_input' partout. – jonrsharpe

+0

@TimCastelijns Merci pour la suggestion. J'ai ajouté un exemple à la question illustrant cette approche. – d3pd

Répondre

1

Vous pouvez toujours faire

try: 
    input = raw_input 
except NameError: 
    pass 

Ainsi, vous aurez toujours écrire

input('...') 

Et oublier l'ancien et obsolète input sur Python 2.x

+1

Ah, c'est plutôt élégant et tourné vers l'avenir. Merci – d3pd