2017-09-28 2 views
3

Le code suivant ne fonctionne pas:code python simple ne fonctionne pas

person = input('Enter your name: ') 
print('Hello', person) 

Au lieu d'imprimer Hello <name> il me donne le retraçage suivant:

Traceback (most recent call last): 
    File "C:/Users/123/Desktop/123.py", line 1, in <module> 
    person = input('Enter your name: ') 
    File "<string>", line 1, in <module> 
NameError: name 'd' is not defined 
+2

Quelle version de Python utilisez-vous? Cela ressemble à une erreur Python 2, et si c'est le cas, vous devriez utiliser 'raw_input()' – MooingRawr

+2

Comment ça marche? Sur la ligne de commande, un IDE, etc? Il n'y a pas de code dans le code, il est donc étrange que vous obteniez cette réponse. – bikemule

+1

vous devriez ajouter que vous entrez ce "d" – PRMoureu

Répondre

2

Pour lire des chaînes, vous devez utiliser:

person = raw_input("Enter your name: ") 
print('Hello', person) 

Lorsque vous utilisez input, il lit des nombres ou fait référence à des variables dans place. Cela se produit lorsque vous utilisez Python 2.7 ou ci-dessous. Avec Python 3 et ci-dessus vous avez seulement input fonction.

Votre erreur indique que vous avez entré "d" qui est une variable non déclarée dans votre code.

Donc, si vous aviez ce code à la place:

d = "Test" 
person = input("Enter your name: ") 
print('Hello', person) 

Et vous tapez maintenant "d" comme nom, vous obtiendrez en sortie:

>>> 
('Hello', 'Test') 
2

Quelle est l'erreur?

Vous avez utilisé ceci:

person = input('Enter your name: ') 

Vous devriez avoir utilisé ceci:

person = raw_input('Enter your name: ') 

Pourquoi ils sont différents

input tente d'évaluer ce qui est passé à et renvoie la valeur, tandis que raw_input lit juste une chaîne, ce qui signifie que si vous voulez simplement lire une chaîne, vous devez utiliser raw_input

En Python 3 input est parti, et raw_input est maintenant appelé input, mais si vous voulez vraiment l'ancien comportement exec(input()) a l'ancien comportement.