我正在尝试使用此代码计算平均值:
average = print(please, please2,please3/3)
print(average)
但是出现此错误
Traceback (most recent call last):
File "C:\Users\Philip\Desktop\Python Stuff\Python Task.py", line 31, in <module>
average = print(please, please2,please3/3)
TypeError: unsupported operand type(s) for /: 'str' and 'int'
我不知道这意味着什么,无论我尝试什么,我都无法使用字符串please, please2, please3
获得平均值。
答案 0 :(得分:2)
您正在尝试将字符串除以整数:
please3/3
其中please3
是代码中的字符串值:
>>> '10'/3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for /: 'str' and 'int'
您必须先将值转换为数字,我在此处选择了int()
:
>>> please3 = '10'
>>> please3 / 3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for /: 'str' and 'int'
>>> int(please3) / 3
3.3333333333333335
所有这些都不能给你一个平均值,因为对于平均值,你需要首先求和你的3个值:
(int(please) + int(please2) + int(please3)) / 3
如果您尽可能早地从字符串转换为整数,那就更好了,也许您正在从文件中读取此信息,此时您还要将字符串转换为。
答案 1 :(得分:0)
你的问题是使用计算概念的语言Python称为输入。
想象一下,你有3个苹果,5个橙子和4个叉子。如果我告诉你把它们加在一起然后告诉我你吃了多少水果,你必须看看每个物体,决定它是否是水果,然后“转换”它,评估是否你应该把它们添加到你的总数中。有些是可转换的(如橙子和苹果),有些是不可转换的,有很多工作(如叉子)。
在这种情况下,即使您将这些变量读作“10”,“5”和“3”,编译器也不会知道它们是整数(缩写为“int”)并将它们视为“字符串” (缩写为'str')。你需要首先将它们“转换”为整数,然后编译器知道如何做'/'。
在这种情况下,您可以使用Python函数'int'来完成。
(int(please) + int(please2) + int(please3)) / 3
(你不需要在最后转换3,因为它已被识别为int。