Files
Python-Programming-Exercise/20210721-第3章.py
2025-09-25 21:23:34 +08:00

149 lines
5.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ==============================================================================
# 通过 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])