comportement de print et input sur linux
Bonjour,
J'ai commencé à lire sur python récemment et j'ai voulu testé un code sous debian, avec python 2.7.3, qui marche très bien sous windows.
Code:
a=input("Voulez-vous quitter ? (o/n)")
Code:
print("Votre choix était ", a)
Pour input, quelle ne fut pas ma surprise quand j'ai réalisé :
Code:
1 2 3 4 5 6
| >>> a = input()
o
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in <module>
NameError: name 'o' is not defined |
J'ai contourné mon problème en passant par l'équivalent raw_input selon la documentation. Mais j'aimerai savoir pourquoi sous linux son comportement est différent et pourquoi input() ne peut récupérer de chaînes de caractères sans l'entourer de guillemets ? (alors que python est sensé être portable)
Pour print j'ai lu que celui-ci n'était plus une fonction et qu'il suffisait d'enlever les parenthèses. Mais pareil ici, pourquoi sous windows cela marche ?
Et quand on écrit :
Code:
print "Votre choix était", a
Comment faire pour que print ne mette pas automatiquement un espace avant et après la valeur de a ou dois-je passer par une autre fonction encore ?