使用Python計算幾何形狀的表面積與體積
輸入一個表示幾何形狀名稱的字符串,再在一行內(nèi)輸入這種圖形的數(shù)據(jù),根據(jù)表示名稱的字符串選擇合適的公式計算幾何形狀的(表)面積和體積,若為二維圖形,只計算面積,若為三維圖形,計算其表面積與體積,結(jié)果嚴格保留2位小數(shù)。????????????????????????????????????????????????????????????????????????????????????????????????????????????????
模板程序給出了長方形和長方體的代碼,參考這些代碼,完成圓形、球、圓柱體、圓錐和正三棱柱這5種形狀的計算程序。????????????????????????????????????????????????????????????????????????????????????????????????????????????????
(可將模板中的代碼復(fù)制到本地,先注釋掉需要補充代碼的函數(shù)或在函數(shù)體中加pass語句后再運行,調(diào)試完成后再復(fù)制粘到代碼框中)
示例 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): """接收一個字符串為參數(shù),根據(jù)參數(shù)判斷幾何體類型 若輸入為二維圖形,計算其面積 若輸入為三維圖形,計算其面積與體積 根據(jù)類型調(diào)用不同的函數(shù)進行運算。 """ if geom_type == '長方形': length, width = map(float, input().split()) # 空格分隔的輸入切分為列表并映射為浮點數(shù) return square(length, width) # 調(diào)用函數(shù)計算長方形面積 elif geom_type == '長方體': length, width, height = map(float, input().split()) # 空格分隔的輸入切分為列表并映射為浮點數(shù) return cube(length, width, height) # 調(diào)用函數(shù)計算長方體表面積與體積 elif geom_type == '圓形': radius = float(input()) # 輸入轉(zhuǎn)為浮點數(shù) return circle(radius) # 調(diào)用函數(shù)計算圓面積 elif geom_type == '球': radius = float(input()) # 輸入轉(zhuǎn)為浮點數(shù) return sphere(radius) # 調(diào)用函數(shù)計算球表面積與體積 elif geom_type == '圓柱體': radius, height = map(float, input().split()) # 空格分隔的輸入切分為列表并映射為浮點數(shù) return cylinder(radius, height) # 調(diào)用函數(shù)計算圓柱體表面積與體積 elif geom_type == '圓錐': radius, height = map(float, input().split()) # 空格分隔的輸入切分為列表并映射為浮點數(shù) return cone(radius, height) # 調(diào)用函數(shù)計算圓錐表面積與體積 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}' # 參考前面的方法自定義一個函數(shù)計算正三棱柱的表面積與體積, # 函數(shù)名為tri_prism() # 函數(shù)接受底邊長和高兩個參數(shù)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) # 調(diào)用判斷圖形類型的函數(shù) print(geometry) # 輸出函數(shù)運行結(jié)果
這段代碼是一個簡單的幾何體計算器。它通過接收用戶輸入的幾何體類型,然后根據(jù)不同的類型調(diào)用不同的函數(shù)進行計算。
首先,定義了一個 type_judge() 函數(shù),用于根據(jù)幾何體類型選擇相應(yīng)的函數(shù)進行計算。其中,對于輸入為二維圖形的長方形和圓形,調(diào)用 square() 和 circle() 函數(shù)計算其面積;對于輸入為三維圖形的長方體、球、圓柱體、圓錐和正三棱柱,則調(diào)用 cube()、sphere()、cylinder()、cone() 和 tri_prism() 函數(shù)計算其表面積和體積。
接下來,定義了各個幾何體的計算函數(shù),包括:
- square():計算長方形的面積
- cube():計算長方體的表面積和體積
- circle():計算圓形的面積
- sphere():計算球的表面積和體積
- cylinder():計算圓柱體的表面積和體積
- cone():計算圓錐的表面積和體積
- tri_prism():計算正三棱柱的表面積和體積
每個函數(shù)都接受一些參數(shù),進行相應(yīng)的計算后返回一個字符串,包含計算結(jié)果并且精確到小數(shù)點后兩位。
最后,在主程序中,首先接收用戶輸入的幾何體類型,然后調(diào)用 type_judge() 函數(shù)進行計算,并將計算結(jié)果打印出來
map() 是 Python 內(nèi)置的一個高階函數(shù),用于將一個可迭代對象中的每個元素都應(yīng)用到指定的函數(shù)上,并返回結(jié)果組成的迭代器。它的基本語法格式如下:
map(function, iterable, ...)
其中,function 是一個函數(shù),iterable 是一個可迭代對象,可以傳入多個可迭代對象,表示有多個參數(shù)需要傳入 function。map() 函數(shù)會依次將 iterable 中的每個元素傳入 function 中進行處理,返回一個由處理結(jié)果組成的迭代器。
例如,對于一個列表中的每個元素求平方,可以使用以下代碼:
lst = [1, 2, 3, 4, 5] result = map(lambda x: x ** 2, lst) print(list(result)) # 輸出 [1, 4, 9, 16, 25]
這里使用了 lambda 表達式來定義一個簡單的平方函數(shù),然后將 lst 列表中的每個元素都傳入該函數(shù)中進行計算,并將結(jié)果組成一個迭代器,最后通過 list() 函數(shù)將其轉(zhuǎn)換為列表并輸出。
map() 函數(shù)可以方便地應(yīng)用于很多場景,比如批量處理數(shù)據(jù)、映射函數(shù)等等。
A = map(float, input().split())
這段代碼將用戶通過輸入獲得的字符串按照空格進行切分,然后使用 map() 函數(shù)將每個切分后的字符串都轉(zhuǎn)換為浮點數(shù)類型,并返回一個由浮點數(shù)組成的迭代器。最后,將這個迭代器賦值給變量 A。
具體來說,該代碼的執(zhí)行過程如下:
- input() 函數(shù)接收用戶輸入,并返回一個字符串類型的值。
- split() 方法將該字符串按照空格進行切分,并返回一個由切分后的字符串組成的列表。
- map() 函數(shù)將該列表中的每個元素都應(yīng)用 float() 函數(shù)進行轉(zhuǎn)換,并返回一個由轉(zhuǎn)換后的浮點數(shù)組成的迭代器。
- 將這個迭代器賦值給變量 A。
總結(jié)
到此這篇關(guān)于使用Python計算幾何形狀的表面積與體積的文章就介紹到這了,更多相關(guān)Python計算幾何形狀表面積內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章

python實現(xiàn)數(shù)據(jù)寫入excel表格

pycharm遠程連接服務(wù)器運行pytorch的過程詳解

keras 模型參數(shù),模型保存,中間結(jié)果輸出操作