使用Python计算几何形状的表面积与体积
作者:Blossom i
输入一个表示几何形状名称的字符串,再在一行内输入这种图形的数据,根据表示名称的字符串选择合适的公式计算几何形状的(表)面积和体积,若为二维图形,只计算面积,若为三维图形,计算其表面积与体积,结果严格保留2位小数。
模板程序给出了长方形和长方体的代码,参考这些代码,完成圆形、球、圆柱体、圆锥和正三棱柱这5种形状的计算程序。
(可将模板中的代码复制到本地,先注释掉需要补充代码的函数或在函数体中加pass语句后再运行,调试完成后再复制粘到代码框中)
示例 1
输入:
长方形
4 8
输出:
长方形的面积为32.00
示例 2
输入:
长方体
4 8 9
输出:
长方体的表面积为280.00, 体积为288.00
示例 3
输入:
圆形
88
输出:
圆形的面积为24328.49
示例 4
输入:
球
88
输出:
球的表面积为97313.97, 体积为2854543.24
示例5
输入:
圆柱体
88 88
输出:
圆柱体的表面积为97313.97, 体积为2140907.43
示例 6
输入:
圆锥
88 88
输出:
圆锥的表面积为58734.18, 体积为713635.81
示例 7
输入:
正三棱柱
88 88
输出:
正三棱柱的表面积为29938.50, 体积为295086.03
import math def type_judge(geom_type): """接收一个字符串为参数,根据参数判断几何体类型 若输入为二维图形,计算其面积 若输入为三维图形,计算其面积与体积 根据类型调用不同的函数进行运算。 """ if geom_type == '长方形': length, width = map(float, input().split()) # 空格分隔的输入切分为列表并映射为浮点数 return square(length, width) # 调用函数计算长方形面积 elif geom_type == '长方体': length, width, height = map(float, input().split()) # 空格分隔的输入切分为列表并映射为浮点数 return cube(length, width, height) # 调用函数计算长方体表面积与体积 elif geom_type == '圆形': radius = float(input()) # 输入转为浮点数 return circle(radius) # 调用函数计算圆面积 elif geom_type == '球': radius = float(input()) # 输入转为浮点数 return sphere(radius) # 调用函数计算球表面积与体积 elif geom_type == '圆柱体': radius, height = map(float, input().split()) # 空格分隔的输入切分为列表并映射为浮点数 return cylinder(radius, height) # 调用函数计算圆柱体表面积与体积 elif geom_type == '圆锥': radius, height = map(float, input().split()) # 空格分隔的输入切分为列表并映射为浮点数 return cone(radius, height) # 调用函数计算圆锥表面积与体积 elif geom_type == '正三棱柱': side, height = map(float, input().split()) return tri_prism(side, height) else: return f'未找到{geom_type}计算方法' def square(length, width): """计算长方形的面积""" area_of_square = length * width return f'长方形的面积为{area_of_square:.2f}' def cube(length, width, height): """计算长方体的表面积和体积""" area_of_cube = length * width * 2 + width * height * 2 + length * height * 2 volume_of_cube = length * width * height return f'长方体的表面积为{area_of_cube:.2f}, 体积为{volume_of_cube:.2f}' def circle(radius): """接收圆的半径,返回圆形的面积,圆周率用math.pi""" area_of_circle = math.pi * math.pow(radius, 2) return f'圆形的面积为{area_of_circle:.2f}' def sphere(radius): """接收球的半径,返回球的表面积和体积,圆周率用math.pi""" area_of_sphere = 4*math.pi*math.pow(radius, 2) volume_of_sphere = math.pi*math.pow(radius, 3)*4/3 return f'球的表面积为{area_of_sphere:.2f}, 体积为{volume_of_sphere:.2f}' def cylinder(radius, height): """接收圆柱体的底面半径和高,返回圆柱体的表面积和体积,圆周率用math.pi""" area_of_cylinder = 2*math.pi*radius*(radius+height) volume_of_cylinder = math.pi*radius*radius*height return f'圆柱体的表面积为{area_of_cylinder:.2f}, 体积为{volume_of_cylinder:.2f}' def cone(radius, height): """接收圆锥的底面半径和高,返回圆锥的表面积和体积,圆周率用math.pi""" area_of_cone = math.pi*radius * \ (radius+math.sqrt(math.pow(radius, 2)+math.pow(height, 2))) volume_of_cone = math.pi*math.pow(radius, 2)*height/3 return f'圆锥的表面积为{area_of_cone:.2f}, 体积为{volume_of_cone:.2f}' # 参考前面的方法自定义一个函数计算正三棱柱的表面积与体积, # 函数名为tri_prism() # 函数接受底边长和高两个参数side, height def tri_prism(side, height): """接收正三棱柱的底边长和高,返回正三棱柱的表面积和体积""" area_of_tri_prism = math.sqrt(3)*math.pow(side, 2)/2+3*side*height volume_of_tri_prism = math.sqrt(3)*math.pow(side, 2)*height/4 return f'正三棱柱的表面积为{area_of_tri_prism:.2f}, 体积为{volume_of_tri_prism:.2f}' if __name__ == '__main__': type_of_geometry = input() # 接收用户输入的字符串 geometry = type_judge(type_of_geometry) # 调用判断图形类型的函数 print(geometry) # 输出函数运行结果
这段代码是一个简单的几何体计算器。它通过接收用户输入的几何体类型,然后根据不同的类型调用不同的函数进行计算。
首先,定义了一个 type_judge() 函数,用于根据几何体类型选择相应的函数进行计算。其中,对于输入为二维图形的长方形和圆形,调用 square() 和 circle() 函数计算其面积;对于输入为三维图形的长方体、球、圆柱体、圆锥和正三棱柱,则调用 cube()、sphere()、cylinder()、cone() 和 tri_prism() 函数计算其表面积和体积。
接下来,定义了各个几何体的计算函数,包括:
- square():计算长方形的面积
- cube():计算长方体的表面积和体积
- circle():计算圆形的面积
- sphere():计算球的表面积和体积
- cylinder():计算圆柱体的表面积和体积
- cone():计算圆锥的表面积和体积
- tri_prism():计算正三棱柱的表面积和体积
每个函数都接受一些参数,进行相应的计算后返回一个字符串,包含计算结果并且精确到小数点后两位。
最后,在主程序中,首先接收用户输入的几何体类型,然后调用 type_judge() 函数进行计算,并将计算结果打印出来
map() 是 Python 内置的一个高阶函数,用于将一个可迭代对象中的每个元素都应用到指定的函数上,并返回结果组成的迭代器。它的基本语法格式如下:
map(function, iterable, ...)
其中,function 是一个函数,iterable 是一个可迭代对象,可以传入多个可迭代对象,表示有多个参数需要传入 function。map() 函数会依次将 iterable 中的每个元素传入 function 中进行处理,返回一个由处理结果组成的迭代器。
例如,对于一个列表中的每个元素求平方,可以使用以下代码:
lst = [1, 2, 3, 4, 5] result = map(lambda x: x ** 2, lst) print(list(result)) # 输出 [1, 4, 9, 16, 25]
这里使用了 lambda 表达式来定义一个简单的平方函数,然后将 lst 列表中的每个元素都传入该函数中进行计算,并将结果组成一个迭代器,最后通过 list() 函数将其转换为列表并输出。
map() 函数可以方便地应用于很多场景,比如批量处理数据、映射函数等等。
A = map(float, input().split())
这段代码将用户通过输入获得的字符串按照空格进行切分,然后使用 map() 函数将每个切分后的字符串都转换为浮点数类型,并返回一个由浮点数组成的迭代器。最后,将这个迭代器赋值给变量 A。
具体来说,该代码的执行过程如下:
- input() 函数接收用户输入,并返回一个字符串类型的值。
- split() 方法将该字符串按照空格进行切分,并返回一个由切分后的字符串组成的列表。
- map() 函数将该列表中的每个元素都应用 float() 函数进行转换,并返回一个由转换后的浮点数组成的迭代器。
- 将这个迭代器赋值给变量 A。
总结
到此这篇关于使用Python计算几何形状的表面积与体积的文章就介绍到这了,更多相关Python计算几何形状表面积内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!