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

我开始在 python 3.2 上创建它,但后来我不得不在 python 2.7.5 上移动,我收到以下错误消息:

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
>>> 

我真的不知道帽子是怎么回事,在 python 3.2 上工作得很好(对不起我的英语不好)。

4

2 回答 2

4

您需要使用raw_input

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

input在 Python 2.x 中,将输入评估为真正的 Python 代码。

另外,只是一个提示:这两行:

x%2
x//2

不要做任何事情。也许你的意思是:

x %= 2
x //= 2
于 2013-10-14T20:02:51.727 回答
2

在 python 2 中,相当于input被称为raw_input

所以第2行应该是answ=raw_input('select db or bd : ')

http://docs.python.org/2/library/functions.html#raw_input

于 2013-10-14T20:05:07.840 回答