2013-10-14 4 views
0
print('10 -> 2 [bd], 2 -> 10 [db]') 
answ=input('select db or bd : ') 

if answ == "db": 
a=input('enter a digit') 
x=int(a) 
list1 = [] 

while (x): 
    x%2 
    x//2 

    if x==0: 
     break 

Je commence à créer ce sur python 3.2, mais je devais passer python 2.7.5 et je reçois le message d'erreur suivant:Déplacement de Python 3 à Python 2

Traceback (most recent call last): 
    File "C:\Users\<file path>", line 3, in <module> 
    answ=input('select db or bd : ') 
    File "<string>", line 1, in <module> 
NameError: name 'db' is not defined 
>>> 

Je vraiment don Je ne sais pas tout, c'est plutôt bien sur Python 3.2 (désolé pour mon mauvais anglais).

+0

entrées remplacés par des raw_inputs et des espaces ajoutés entre les signes d'égalité , travail. Merci pour votre soutien :) –

Répondre

4

Vous devez utiliser raw_input:

answ=raw_input('select db or bd : ') 

input en Python 2.x code d'entrée évalue réel Python.

Aussi, juste une astuce: ces deux lignes:

x%2 
x//2 

ne font rien. Peut-être que vous vouliez dire:

x %= 2 
x //= 2 
+0

Et pour plus d'informations [cette question] (http://stackoverflow.com/questions/4915361/whats-the-difference-between-raw-input-and-input-in-python3-x) a des détails. – Andy

+0

non, la même erreur apparaît:/ –

+0

@MarcelChyra - Hmm, c'est très étrange. J'ai couru le code dans Python 2.7.5 et je n'ai pas eu l'erreur du tout. – iCodez

Questions connexes