Python 函数定义练习:球体面积、斐波那契数列、BMI 和三角形面积
Python 函数定义练习
练习题 1:球体表面积和体积
-
定义两个函数: *
sphereArea(radius):参数radius为半径,返回球体表面积。 *sphereVolume(radius):参数radius为半径,返回球体体积。 -
功能要求: * 圆周率使用
math模块中的值,不允许自定义。 * 半径参数接受用户输入,必须为正数(可以是浮点数),否则重新输入,直至符合要求。 * 使用正确输入的半径作为实参,分别调用两个函数获取结果,并输出结果。 -
文件保存为:
ex1.py
**代码示例:**pythonimport math
def sphereArea(radius): # 计算球体表面积 area = 4 * math.pi * radius**2 return area
def sphereVolume(radius): # 计算球体体积 volume = (4/3) * math.pi * radius**3 return volume
练习题 2:斐波那契数列
-
编写一个函数来计算第 n 个斐波那契数。
-
功能要求: * 斐波那契数形如:1,1,2,3,5,8,13,21…… * 函数名自行定义,符合命名规范即可,有一个参数,表示要获取的斐波那契数的位置,函数返回该位置的斐波那契数,如参数是 4 则返回 3、参数是 6 则返回 8…… * 位置参数接受用户输入,必须为正整数,否则重新输入,直至符合要求。 * 使用正确输入的位置作为实参,调用该函数获取结果,并输出结果。
-
文件保存为:
ex2.py
**代码示例:**pythondef fibonacci(n): # 计算第n个斐波那契数 if n <= 0: return None elif n == 1 or n == 2: return 1 else: a, b = 1, 1 for _ in range(n-2): a, b = b, a + b return b
练习题 3:身体质量指数 (BMI)
-
编写一个函数,计算身体质量指数(BMI)。
-
功能要求: * BMI 的计算公式是人的体重(以磅计)乘以 720,再除以人的身高(以英寸计)的平方。 * BMI 在 19~25 范围内(包括边界值)被认为是健康的,高于 25 认为偏胖,低于 19 认为偏瘦。 * 函数名自行定义,符合命名规范即可,有两个参数,分别表示体重和身高,函数返回 BMI 值和结论(健康、偏胖或偏瘦)。 * 体重和身高接受用户输入,输入一定是正确的,无需考虑非法输入。 * 使用输入的数据作为实参,调用该函数获取结果,并输出结果。
-
文件保存为:
ex3.py
**代码示例:pythondef calculateBMI(weight, height): # 计算BMI值和结论 bmi = weight * 720 / height2 if bmi >= 19 and bmi <= 25: conclusion = '健康' elif bmi > 25: conclusion = '偏胖' else: conclusion = '偏瘦' return bmi, conclusion
练习题 4:三角形面积
-
编写一个函数,用于计算三角形面积。
-
功能要求: * 函数名自行定义,符合命名规范即可,该函数可以接受 1 个、2 个或 3 个参数: * 1 个参数表示为等边三角形的边长。 * 2 个参数分别表示为等腰三角形的底边长和腰长。 * 3 个参数表示为三角形的三条边长。 * 三角形面积计算公式为:
√(s(s-a)(s-b)(s-c))其中:s=(a+b+c)/2,a、b、c为三角形的三条边长。 * 该函数要先判断所给参数是否能够构成三角形,如果不能构成返回None;如果能够构成,返回三角形形状(等边三角形、等腰三角形或三角形)和面积。 * 三角形边长接受用户输入,输入一定是正确的,无需考虑非法输入,使用输入的数据作为实参,调用该函数获取结果,并输出结果(如果无法构成三角形则输出数据不合理的提示信息),以测试函数正确性。 * 以上测试至少完成 3 次,分别测试等边三角形、等腰三角形和普通三角形。 * 提示:平方根函数sqrt在math模块里。 -
文件保存为:
ex4.py
**代码示例:**pythonimport math
def calculateTriangleArea(*args): # 计算三角形面积 if len(args) == 1: # 等边三角形 a = args[0] if a <= 0: return None else: area = (math.sqrt(3) / 4) * a**2 shape = '等边三角形' elif len(args) == 2: # 等腰三角形 a, h = args[0], args[1] if a <= 0 or h <= 0: return None else: area = (1 / 2) * a * h shape = '等腰三角形' elif len(args) == 3: # 普通三角形 a, b, c = args[0], args[1], args[2] if a + b <= c or a + c <= b or b + c <= a: return None else: s = (a + b + c) / 2 area = math.sqrt(s * (s - a) * (s - b) * (s - c)) shape = '三角形' else: return None return shape, area
希望以上函数定义能够帮助到
原文地址: https://www.cveoy.top/t/topic/vPT 著作权归作者所有。请勿转载和采集!