0

これは私が今Pythonで持っているものです

import sys
num = input('Give me a four digit number.')
a = num[0]
b = num[1]
c = num[2]
d = num[3]

if d == 0:
    print(c + b + a)
else:
    print(d + c + b + a)

しかし、たとえば 1230 と入力すると、0321 が返されます。誰でも理由を知っていますか?

4

1 に答える 1

1

コードを試してみると、最初に発生するTypeErrorのは入力の評価によるものであるため、 type にキャストされintます。しかし、引用符を使用したと思うので、これは問題ではありませんでした。

お気づきかもしれませんが、問題は与えられた入力の型です。Python 2.X にはraw_input、入力文字列を評価せずに返すだけの がありました。
答えは次のとおりです。

print(c+b+a if d=='0' else d+c+b+a)

# or

if d == '0':
    print(c + b + a)
else:
    print(d + c + b + a)
于 2013-07-02T01:34:02.447 に答える