149 lines
5.9 KiB
Python
149 lines
5.9 KiB
Python
# ==============================================================================
|
||
# 通过 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]) |