我是python的新手。我一直收到下面列出的错误。有人可以解释我遇到的问题吗?感谢
体积= 4.0 / 3.0 * math.pi *(半径*半径*半径)
TypeError:不能将序列乘以'str'
类型的非intimport math
radius = input("Enter Radius: ")
print("Radius: " + str(radius))
volume = 4.0/3.0 * math.pi * (radius*radius*radius)
print("Volume: " + str(round(volume,2)))
surface = 4.0 * math.pi * (radius*radius)
print("Surface Area: " + str(round(surface,2)))
答案 0 :(得分:0)
input
返回一个字符串。你不能将两个字符串相乘。
如果要将其转换为int或float(或任何其他类型),请执行以下操作:
radius = float(radius)
您可能会因为查看Python 2.x中的示例代码而感到困惑,其中输入在字符串上为您调用eval(),因此您获得了一个float或int或列表或调用os.system('rm - rf /')或用户键入的任何内容。这是令人困惑和危险的,所以他们在3.0中修复它,所以现在你只得到字符串,由你来决定如何处理它。
答案 1 :(得分:0)
您需要将字符串半径转换为float或double。 试试这个:
import math
radius = input("Enter Radius: ")
print("Radius: " + str(radius))
r = float(radius)
volume = 4.0/3.0 * math.pi * (r*r*r)
print("Volume: " + str(round(volume,2)))
surface = 4.0 * math.pi * (r*r)
print("Surface Area: " + str(round(surface,2)))