我必须使用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'
导致此语法错误的原因是什么?
答案 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()