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 : Sélectionner tout - Visualiser dans une fenêtre à part
a=input("Voulez-vous quitter ? (o/n)")
Code : Sélectionner tout - Visualiser dans une fenêtre à part
print("Votre choix était ", a)
Pour input, quelle ne fut pas ma surprise quand j'ai réalisé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?