web-dev-qa-db-fra.com

chaîne d'entrée en python 3

J'ai test de variable de chaîne, En Python 2.7 cela fonctionne très bien.

test = raw_input("enter the test") 
print test

Mais en Python 3.3. j'utilise 

test = input("enter the test") 
print test

avec la chaîne de saisie sdas, et je reçois un message d'erreur

Traceback (appel le plus récent en dernier):

Fichier "/home/ananiev/PycharmProjects/PigLatin/main.py",

ligne 5, in test = input ("entrez le test")

Fichier "", ligne 1, dans NameError: le nom 'sdas' n'est pas défini

10
user280926

Vous exécutez votre code Python 3 avec un interpréteur Python 2. Si ce n’est pas le cas, votre déclaration print lèvera un SyntaxError avant qu’elle ne vous invite à entrer.

Le résultat est que vous utilisez input de Python 2, qui tente de eval votre entrée (probablement sdas), trouve que c'est Python non valide et meurt.

12
Cairnarvon

Je dirais que le code dont vous avez besoin est:

test = input("enter the test")
print(test)

Sinon, il ne devrait pas fonctionner du tout, à cause d'une erreur de syntaxe. La fonction print nécessite des crochets en python 3. Cependant, je ne peux pas reproduire votre erreur. Êtes-vous sûr que ce sont ces lignes qui causent cette erreur?

5
Noctua

La question est très simple, je ne sais pas pourquoi les gens ont si mal répondu.

Solution: 

Si vous utilisez Python 2.x:

then for evaluated input use "input"
example: number = input("enter a number")

and for string use "raw_input"
example: name = raw_input("enter your name")

Si vous utilisez python 3.x:

then for evaluated result use "eval" and "input"
example: number = eval(input("enter a number"))

for string use "input"
example: name = input("enter your name")
1
Mayank Jain

sdas est lu comme une variable. Pour saisir une chaîne il vous faut ""

0
none

J'ai eu la même erreur. Dans le terminal quand j'ai tapé "python filename.py", avec cette commande, python2 essayait d'exécuter du code python3, car il est écrit python3. Il fonctionne correctement lorsque je tape "python3 nom_fichier.py" dans le terminal. J'espère que cela fonctionne pour vous aussi.

0
Kevin Wright

Dans les systèmes d'exploitation comme Ubuntu, python est préinstallé. Donc la version par défaut est python 2.7, vous pouvez confirmer la version en tapant la commande ci-dessous dans votre terminal 

python -V

si vous l'avez installé mais que vous n'avez pas défini la version par défaut, vous verrez 

python 2.7

dans le terminal. Je vais vous dire comment définir la version par défaut de python dans Ubuntu.

Un moyen simple et sûr serait d'utiliser un alias. Placez ceci dans le fichier ~/.bashrc ou ~/.bash_aliases:

alias python=python3

Après avoir ajouté ce qui précède dans le fichier, exécutez la commande ci-dessous:

source ~/.bash_aliases ou source ~/.bashrc

maintenant, vérifiez à nouveau la version de Python en utilisant python -V

si python version 3.x.x, l'erreur est dans votre syntaxe, comme utiliser print avec des parenthèses. changez le en 

test = input("enter the test")
print(test)
0
Menuka Ishan