/:'str'和'str'python的不支持的操作数类型

时间:2014-01-24 08:28:13

标签: python

不确定如何修复此错误。新编码并且不熟悉此错误类型。

def main():
    hits = int(input("Hits"))
    walks = int(input("Walks"))
    HBP = int(input("Hit by Pitch"))
    AB = int(input("At Bats"))
    SF = int(input("Sacrifice Flies"))
    obPercentage = ("hits + walks + HBP") / ("AB + walks + HBP + SF")
    print("obPercentage")
main()

这是错误:

    obPercentage = ("hits + walks + HBP") / ("AB + walks + HBP + SF")
TypeError: unsupported operand type(s) for /: 'str' and 'str'

4 个答案:

答案 0 :(得分:3)

您正在证明对变量与字符串的误解。这在新手程序员中并不少见。

当你在引号中添加某些内容时,它会成为“字符串”(或Python中的str)。这类似于1 int。引号之外的名称(不是ifwhileforand等关键字)是一个变量。对于这样的语言,您可以将变量视为应用于存储区域的标签。

a = 'x'

a是一个名称,用于表示仅包含字母"x"的字符串。当你说

("hits + walks + HBP") / ("AB + walks + HBP + SF")

你说的是"hello"/"goodbye",这显然并不代表任何有趣的东西。删除引号将使用这些名称引用的值

obPercentage = (hits + walks + HBP) / (AB + walks + HBP + SF)

答案 1 :(得分:1)

更改

obPercentage = ("hits + walks + HBP") / ("AB + walks + HBP + SF")

obPercentage = (hits + walks + HBP) / (AB + walks + HBP + SF)

您可能还希望首先将操作数转换为浮动。

答案 2 :(得分:1)

删除双引号

obPercentage = (hits + walks + HBP) / (AB + walks + HBP + SF)
print(obPercentage)

答案 3 :(得分:1)

删除所有引号,它应该有效。对于这种事情你不需要在这里发布,快速谷歌搜索可以解决你的问题。