python TypeError:-=的操作数类型不受支持:'str'和'int' [重复]

3lxsmp7m  于 2023-04-04  发布在  Python
关注(0)|答案(3)|浏览(114)

此问题在此处已有答案

How can I read inputs as numbers?(10个答案)
八年前就关门了。
我必须使用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'

是什么导致了这个语法错误?

nc1teljy

nc1teljy1#

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

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

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

bvn4nwqk

bvn4nwqk2#

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

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

ego6inou3#

raw_input总是返回一个字符串对象。所以在对chosen_number做减法之前,需要使用int()将输入转换为一个整数。

相关问题