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 : ')

inputPython 2.x では、入力を実際の Python コードとして評価します。

また、ヒント: 次の 2 行:

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 に答える