计算球体的体积和表面积的输出简单误差

时间:2014-09-12 22:54:55

标签: python geometry volume

我是python的新手。我一直收到下面列出的错误。有人可以解释我遇到的问题吗?感谢

体积= 4.0 / 3.0 * math.pi *(半径*半径*半径)

TypeError:不能将序列乘以'str'

类型的非int
import 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)))

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)))
相关问题