【问题标题】:python error; unsupported operand type(s) for +: 'int' and 'str' [closed]蟒蛇错误; + 不支持的操作数类型:“int”和“str”[关闭]
【发布时间】:2014-05-01 00:58:00
【问题描述】:

我是 python 新手,在处理此代码时,我不断收到第 8 行的错误消息“+: 'int' 和 'str' 不支持的操作数类型”,但我不知道怎么做修复它/它有什么问题。

minTot = 0
stepTot = 0
min = int(raw_input("Input the number of minutes (0 to exit): "))
if min == 0:
    print "No minutes input."
else:
    while min != 0:
        minTot = minTot + min
        stepRate = int(raw_input("Input the step rate: "))
        stepTot = stepTot + stepRate * min
        min = raw_input("Input the next number of minutes (0 to exit): ")
    print "\nTotal number of minutes:", min
    print "Total number of steps:", stepTot
    # Average is rounded down.
print " Average step rate per minute : ", minTot / stepTot

【问题讨论】:

  • 您确定您使用的是 Python 3.x 吗?因为它没有raw_input功能。
  • 第 11 行缺少 int() 调用,这是 python 2
  • minPython builtin,所以你应该选择另一个名字。

标签: python python-2.7 python-2.x


【解决方案1】:

我相信您使用的是 Python 2.7。 (你可以用python --version确认)问题出在这一行

min = raw_input("Input the next number of minutes (0 to exit): ")

raw_input 返回一个字符串,您需要使用int 将其显式转换为数字,如下所示

min = int(raw_input("Input the next number of minutes (0 to exit): "))

如果你不这样做,min 将是一个字符串,并且在下一次迭代中,当它到达时

minTot = minTot + min

minTot 将是一个数字,您正在尝试添加一个带数字的字符串。这是不可能的。这就是 Python 抛出该错误的原因。

除此之外,min 是一个内置函数的名称。您可能不想隐藏该功能。因此,请使用其他变量名。

【讨论】:

猜你喜欢
  • 2014-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-12
  • 2015-05-29
  • 2018-02-05
  • 1970-01-01
相关资源
最近更新 更多