# ============================================================================== # 通过 D:\文档\电子文档\个人\脚本库\PythonScript\第3章.py + 题号 运行 # 程序名: # 第3章习题 # 目的: # # 修订记录: # 日期 编程者 改动描述 # =================== ============= ===================================== # 2021-07-21 02:48:55 Sola 3-1 计算球体表面积和体积 # 2021-07-21 02:49:12 Sola 3-2 计算比萨饼单价 # 2021-07-21 02:49:22 Sola 3-3 计算分子中碳水化合物的分子量 # 2021-07-21 02:54:30 Sola 3-4 计算雷击距离 # 2021-07-21 03:04:14 Sola 3-5 计算咖啡订单费用 # 2021-07-21 03:04:28 Sola 3-6 计算两点间斜率 # 2021-07-21 03:04:36 Sola 3-7 计算两点间距离 # 2021-07-21 03:20:35 Sola 3-8 计算格里高利闰余 # 2021-07-21 12:33:33 Sola 3-9 三角形面积 # 2021-07-21 12:33:49 Sola 3-10 计算梯子所需长度 # 2021-07-21 12:40:27 Sola 3-11 计算前n个自然数的和 # 2021-07-21 12:48:14 Sola 3-12 计算前n个自然数的立方和 # 2021-07-21 12:48:32 Sola 3-13 计算输入指定个数数字的和 # 2021-07-21 12:49:24 Sola 3-14 计算输入指定个数数字的平均值 # 2021-07-21 12:51:11 Sola 3-15 级数各项求和 # 2021-07-21 14:41:27 Sola 3-16 斐波那契数列计算 # 2021-07-21 14:41:38 Sola 3-17 平方根算法 # module start import math pi = 3.14159265 # module end def test3_1(): r = float(input("请输入球体的半径: ")) V = 4 / 3 * pi * r ** 3 A = 4 * pi * r ** 2 print("球体的体积为:", V, "\n球体的表面积为:", A) def test3_2(): r = float(input("请输入圆形比萨饼的直径:")) prise = float(input("请输入圆形比萨饼的价格:")) unitPrise = prise / (4 * pi * r ** 2) print("比萨饼的单位面积价格为:", unitPrise) def test3_3(): numH = int(input("请输入分子中H原子数量:")) numC = int(input("请输入分子中C原子数量:")) numO = int(input("请输入分子中O原子数量:")) print("一摩尔该物质中存在碳水化合物的总量为", numH * 1.00794 + numC * 12.0107 + numO * 15.9994, "克") def test3_4(): time = float(input("请输入闪光和雷声之间的时间差(秒):")) print("雷击发生在距离大约", time * 1100 / 5280, "英里处") def test3_5(): weight = float(input("请输入咖啡的重量(磅):")) print("该订单费用为 $", weight * (0.86 + 10.50) + 1.50 ) def test3_6(): x1, y1 = eval(input("请输入坐标(x1, y1):")) x2, y2 = eval(input("请输入坐标(x2, y2):")) print("(x1, y1) 与 (x2, y2) 之间的斜率为:", (y2 - y1)/(x2 - x1)) def test3_7(): x1, y1 = eval(input("请输入坐标(x1, y1):")) x2, y2 = eval(input("请输入坐标(x2, y2):")) print("(x1, y1) 与 (x2, y2) 之间的距离为:", math.sqrt((y2 - y1) ** 2 + (x2 - x1) ** 2)) def test3_8(): year = int(input("请输入一个4位数年份:")) C = year // 100 epact = (8 + (C // 4) - C + ((8 * C + 13) // 25) + 11 * (year % 19)) % 30 print(year, "年的格里高利闰余为", epact) def test3_9(): a, b, c = eval(input("请分别输入三角形三边长a, b, c:")) s = (a + b + c) / 2 A = math.sqrt(s * (s - a) * (s - b) * (s - c)) print("三角形的面积为:", A) def test3_10(): height = float(input("请输入梯子需要达到的高度 (m):")) degree = float(input("请输入梯子的倾斜角度 (°):")) rad = pi / 180 * degree length = height / math.sin(rad) print("梯子所需的长度为", length, "m") def test3_11(): n = int(input("请输入需要计算的数字个数:")) sum = 0 for i in range(n): sum = sum + i print("前", n, "个自然数的和为", sum) def test3_12(): n = int(input("请输入需要计算的数字个数:")) sum = 0 for i in range(n): sum = sum + i ** 3 print("前", n, "个自然数的立方和为", sum) def test3_13(): n = int(input("请输入需要计算的数字个数:")) sum = 0 for i in range(n): print("请输入需要求和的第", i + 1, "个数:", end='') num = float(input()) sum = sum + num print("所有输入的数字的和为", sum) def test3_14(): n = int(input("请输入需要计算的数字个数:")) sum = 0 for i in range(n): print("请输入需要求均值的第", i + 1, "个数:", end='') num = float(input()) sum = sum + num average = sum / (n + 1) print("所有输入的数字的平均值为", average) def test3_15(): n = int(input("请输入需要求和的项数:")) sum = 0 for i in range(n): sum = sum + (-1) ** i * 4 / (2 * i + 1) distance = math.pi - sum print("计算得到的近似PI值为:", sum) print("与真实PI之间的差为:", distance) def test3_16(): n = int(input("请输入需要计算的斐波那契数列项数(正整数):")) temp = 0 result = 1 for i in range(n - 1): temp, result = result, temp + result print("斐波那契数列第", n, "项为:", result) def test3_17(): num = float(input("请输入需要求取平方根的数:")) times = int(input("请输入牛顿法迭代次数:")) result = num / 2 for i in range(times): result = (result + num / result) / 2 print("所求", num, "的平方根为:", result) print("所求", num, "的平方根与真实值的差距为:", math.sqrt(num) - result) import sys def run(num): eval("test3_" + num + "()") run(sys.argv[1])