如果语句不起作用 - 即使条件匹配,也会继续使用else语句

时间:2013-07-02 01:15:37

标签: if-statement python-3.x

这就是我现在在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返回给我。 有人知道为什么吗?

1 个答案:

答案 0 :(得分:1)

如果我尝试你的代码,由于对输入的评估,首先发生的是TypeError,因此它被转换为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)