TypeError:不支持的操作数类型 - =:'str'和'int'

时间:2015-01-06 22:41:28

标签: python python-2.7

我必须使用while循环进行倒计时,你选择一个数字,代码将倒数到0:这就是我所做的:

chosen_number = 0
chosen_number = raw_input('Choose a number: ')
while chosen_number > 0:
    print chosen_number
    chosen_number -= 1

但它在最后一行给出了语法错误:

TypeError: unsupported operand type(s) for -=: 'str' and 'int'

导致此语法错误的原因是什么?

3 个答案:

答案 0 :(得分:2)

raw_input始终将用户的输入作为字符串对象返回。您需要将其转换为整数,以便从中减去1

chosen_number = int(raw_input('Choose a number: '))

这也将修复你的while循环的条件。在Python 2.x中str > int总是True

答案 1 :(得分:0)

selected_number是一个字符串。您需要先将其转换为整数,然后才能对其执行算术运算,

如,

chosen_number = raw_input(...)
chosen_number = int(chosen_number)

答案 2 :(得分:0)

raw_input始终返回一个字符串对象。因此,在chosen_number上进行减法之前,您需要使用int()

将输入转换为整数