2.4计算几何形状的表面积与体积(project)
第一关:
输入和输出:
测试输入:
4 8
预期输出:
长方形的面积为32.00
代码:
import math
def square(length, width):
"""计算长方形的面积"""
##########################Begin#########################
f =width*length
return f
##########################End#########################
if __name__ == '__main__':
length, width = map(float, input().split())
geometry = square(length, width) # 调用判断图形类型的函数
print(f'长方形的面积为{geometry:.2f}') # 输出函数运行结果
第二关:
输入和输出:
测试输入:
1 2 3
预期输出:
长方体的表面积为22.00, 体积为6.00
相关知识:
return两个值时,用两个变量直接接收就可以了
代码:
import math
def cube(length, width, height):
"""计算长方体的表面积和体积"""
########################Begin##############################
s = length*width*2+length*height*2+width*height*2
v = length*width*height
return s,v;
########################End##############################
if __name__ == '__main__':
length, width, height = map(float, input().split())
s,v = cube(length, width, height) # 调用判断图形类型的函数
print(f'长方体的表面积为{s:.2f}, 体积为{v:.2f}') # 输出函数运行结果
第三关:
输入和输出:
测试输入:
6.5
预期输出:
圆形的面积为132.73
代码:
import math
def circle(radius):
"""接收圆的半径,返回圆形的面积,圆周率用math.pi"""
########################Begin##############################
s = math.pi * radius**2
return s
########################End##############################
if __name__ == '__main__':
radius = float(input())
geometry = circle(radius) # 调用判断图形类型的函数
print(f'圆形的面积为{geometry:.2f}') # 输出函数运行结果
第四关:
输入和输出:
测试输入:
5
预期输出:
球的表面积为314.16, 体积为523.60
代码:
import math
def sphere(radius):
"""接收球的半径,返回球的表面积和体积,圆周率用math.pi"""
########################Begin##############################
s = 4*math.pi*radius**2
v = 4/3*math.pi*radius**3
return s,v
########################End##############################
if __name__ == '__main__':
radius = float(input())
s,v = sphere(radius) # 调用判断图形类型的函数
print(f'球的表面积为{s:.2f}, 体积为{v:.2f}') # 输出函数运行结果
第五关:
输入和输出:
测试输入:
4.5 8
预期输出:
圆柱体的表面积为353.43, 体积为508.94
代码:
import math
def cylinder(radius, height):
"""接收圆柱体的底面半径和高,返回圆柱体的表面积和体积,圆周率用math.pi"""
########################Begin##############################
v = math.pi*radius**2*height
s = 2*math.pi*radius**2+2*math.pi*radius*height
return s,v
########################End##############################
if __name__ == '__main__':
radius, height = map(float, input().split())
s,v= cylinder(radius, height) # 调用判断图形类型的函数
print(f'圆柱体的表面积为{s:.2f}, 体积为{v:.2f}') # 输出函数运行结果
第六关:
输入和输出:
测试输入:
4.5 8
预期输出:
圆锥的表面积为193.38, 体积为169.65
代码:
import math
def cone(radius, height):
"""接收圆锥的底面半径和高,返回圆锥的表面积和体积,圆周率用math.pi"""
########################Begin##############################
v = 1/3 *math.pi*radius**2*height
s = math.pi * radius*(radius+math.sqrt(radius**2 + height**2))
return s,v
########################End##############################
if __name__ == '__main__':
radius, height = map(float, input().split())
s,v = cone(radius, height) # 调用判断图形类型的函数
print(f'圆锥的表面积为{s:.2f}, 体积为{v:.2f}') # 输出函数运行结果
第七关:
输入和输出:
测试输入:
6 6
预期输出:
正三棱柱的表面积为139.18, 体积为93.53
代码:
import math
def tri_prism(side, height):
"""接收正三棱柱的底边长和高,返回正三棱柱的表面积和体积"""
########################Begin##############################
s = 2 *(3 ** 0.5 /4 * side * side ) + 3 * side * height
v = (3 ** 0.5 /4 * side * side )*height
return s,v
########################End##############################
if __name__ == '__main__':
side, height = map(float, input().split())
s,v = tri_prism(side, height) # 调用判断图形类型的函数
print(f'正三棱柱的表面积为{s:.2f}, 体积为{v:.2f}') # 输出函数运行结果
2.5学费计算(project)
第一关:
输入和输出:
请计算并输出大学第一学期共修多少学分?输入每学分应缴纳的学费(整数,单位为元),计算并输出第一学期应缴纳多少学费?输出格式请参考输入输出示例。
输入:
328
输出:
你本学期选修了17个学分。
你应缴纳的学费为5576元。
相关知识:
记得eval,不然会输出字符串80输出17次
代码:
python = 3
math = 4
english = 4
physical = 2
military_theory = 2
philosophy = 2
# 补充你的代码
all = python+math+english+physical+military_theory+philosophy
a = eval(input())
print(f'你本学期选修了{all}个学分。')
last = a * all
print(f'你应缴纳的学费为{last}元。')
第二关:
输入和输出:
大学可以申请助学贷款,申请额度不超过学费和生活费总额的 60%,输入你每个月的生活费(浮点数),请计算你每个学期能够贷款多少元?(结果保留小数点后 2 位数字,每个学期按 5 个月计算)
测试输入(冒号后面为用户输入信息):
请输入每学分学费金额:328
请输入你每个月生活费:1600
预期输出:
本学期你能够贷款8145.60元
代码:
python = 3
math = 4
english = 4
physical_education = 2
military_theory = 2
philosophy = 2
# 补充你的代码
all = python+math+english+physical_education +military_theory+philosophy
a = eval(input('请输入每学分学费金额:'))
money = eval(input("请输入你每个月生活费:"))
last = a * all
sum = (last + money*5)*0.6
print(f'本学期你能够贷款{sum:.2f}元')
2.6弧田术(project测试)
第一关:
输入和输出:
今有弧田,弦三十步,矢十五步。
问:为田几何?
答曰:一亩九十七步半。
今又有弧田,弦七十八步二分步之一,矢十三步九分步之七。问:为田几何?
公式:s = 1/2*(b*h+h**2)
弓形田地面积为1亩零97.50平方步
弓形田地面积为**亩零**.**平方步
代码:
# 请在下面补充你的代码
b,h = 30,15
s = 1/2*(b*h+h**2)
left = s%240
s = s//240
print(f'弓形田地面积为{s:.0f}亩零{left:.2f}平方步')
b= 78.5
h = 13+7/9
s = 1/2*(b*h+h**2)
left = s%240
s =s//240
print(f'弓形田地面积为{s:.0f}亩零{left:.2f}平方步')
第二关:
输入和输出:
测试输入:
97.56
24.65
预期输出:
弓形田地面积为6亩零66.24平方步
代码:
b = eval(input())
h = eval(input())
s = 1/2*(b*h+h**2)
left = s%240
s = s//240
print(f'弓形田地面积为{s:.0f}亩零{left:.2f}平方步')
第三关:
输入和输出:
测试输入:
97.56
24.65
预期输出:
弧田法计算弓形田地面积为6亩零66.24平方步
现代方法计算弓形田地面积为7亩零2.36平方步
代码:
# 请在下面补充你的代码
'''
AB 是圆的一条弦,ABC形成一个弓形,在两行中分别输入AB和CD的长度,计算输出弓形面积的大小,结果均严格保留小数点后2位有效数字,应用三角函数和反三角函数时查阅math模块文档或利用自动补全完成。
'''
import math
AB = float(input()) # 弦长度
CD = float(input()) # 弓高度
s = 1/2*(AB*CD+CD**2)
left = s%240
s = s//240
print(f'弧田法计算弓形田地面积为{s:.0f}亩零{left:.2f}平方步')
# 半弦长
AD = AB / 2
# 半径
OA = (AD ** 2 + CD ** 2) / (2 * CD)
# 圆心角
AOB = 2 * math.asin(AD / OA)
################Begin######################
# 弓形所在扇形的面积
sector = AOB/(2*math.pi)*math.pi*OA**2
# 三角形面积
triangle = 1/2*OA**2*math.sin(AOB)
# 弓形面积
area_of_arch = sector - triangle
left = area_of_arch %240
area_of_arch = area_of_arch //240
################End######################
print(f'现代方法计算弓形田地面积为{area_of_arch:.0f}亩零{left:.2f}平方步')
第四关:
输入和输出:
测试输入:
30
16
预期输出:
宛田法计算扇形田地面积为0亩零120.00平方步
代码:
# 请在下面补充你的代码
# 请在下面补充你的代码
'''
AB 是圆的一条弦,ABC形成一个弓形,在两行中分别输入AB和CD的长度,计算输出弓形面积的大小,结果均严格保留小数点后2位有效数字,应用三角函数和反三角函数时查阅math模块文档或利用自动补全完成。
'''
import math
AB = float(input()) # 弦长度
CD = float(input()) # 弓高度
s = AB*CD/4
left = s%240
s = s//240
print(f'宛田法计算扇形田地面积为{s:.0f}亩零{left:.2f}平方步')
第五关:
输入和输出:
先计算并输出A、B、C、D四个选项的值,再用会圆法计算并输出弧长。
平台会对你编写的代码进行测试:
测试输入:
本关无输入
预期输出:
a=*.****,b=*.****,c=*.****,d=*.****
会圆法计算弧长为*.****
代码:
# 请在下面补充你的代码
import math
a = (11-3*math.sqrt(3))/2
b = (11-4*math.sqrt(3))/2
c = (9-3*math.sqrt(3))/2
d = (9-4*math.sqrt(3))/2
print(f'a={a:.4f},b={b:.4f},c={c:.4f},d={d:.4f}')
print(f'会圆法计算弧长为{b:.4f}')
第六关:
输入和输出:
分别在两行内输入表示半径和圆心角角度值的整数,计算圆心角对应的弧长,计算中圆周率用math库中的pi,结果精确保留2位小数。
弧长公式
l=n×π×r÷180=a×r
n:圆心角
r:圆的半径
α:圆心角弧度数
π:圆周率
测试输入:
2
60
预期输出:
弧长为2.09
代码:
# 请在下面补充你的代码
import math
r = eval(input())
n = eval(input())
l=n*math.pi*r/180
print(f'弧长为{l:.2f}')
简单的数学运算器
输入和输出:
测试输入:
3
8
预期输出:
和:11.00
差:-5.00
积:24.00
商:0.38
代码:
# 请补充你的代码
a = eval(input("请输入第一个数字:"))
b = eval(input("请输入第二个数字:"))
print(f'和:{a+b:.2f}')
print(f'差:{a-b:.2f}')
print(f'积:{a*b:.2f}')
print(f'商:{a/b:.2f}')
经纬度距离计算器
输入和输出:
测试输入:
39.906217
116.3912757
30.5848089
114.2093718
预期输出:
两点之间的距离为:1055.16 公里
3.角度转换为弧度:
使用 math.radians() 将输入的度数转换为弧度,以便进行三角运算。
4.Haversine公式:
dlat 和 dlon 分别计算纬度和经度的差值(弧度)。
a 和 c 是Haversine公式的中间计算步骤。
r 是地球半径,单位为公里。
distance 计算两点之间的距离。
代码:
# 请补充你的代码
import math
a1 = float(input(f'请输入第一个点的纬度(度):'))
b1 = float(input(f'请输入第一个点的经度(度):'))
a2 = float(input(f'请输入第二个点的纬度(度):'))
b2 = float(input(f'请输入第二个点的经度(度):'))
r = 6371
a1 = math.radians(a1)
b1 = math.radians(b1)
a2 = math.radians(a2)
b2 = math.radians(b2)
dlat = abs(a1 - a2)
dlon = abs(b1 - b2)
last = 2 * r *math.asin(math.sqrt(math.sin(dlat/2)**2 + math.cos(a1) * math.cos(a2) *math.sin(dlon/2) ** 2))
print(f'两点之间的距离为:{last:.2f} 公里')
Python第二章作业
第一关:
输入和输出:
输入的三角形的三条边a、b、c 的长度,计算并依次输出三角形的周长和面积,结果严格保留2位小数。测试用例的数据保证三角形三边数据可以构成三角形。 三角形面积计算公式:
输入:
3
4
5
输出:
周长=12.00
面积=6.00
代码:
import math
a = eval(input())
b = eval(input())
c = eval(input())
s = (a + b + c)/2
area = math.sqrt(s*(s - a)*(s - b)*(s - c))
print(f'周长={a+b+c:.2f}')
print(f'面积={area:.2f}')
第二关:
输入和输出:
计算并输出x的值(精确保留两位小数,保留输出数字末尾的0),a和b的值由用户输入,括号里的数字是角度值.
输入:
3
7
输出:
-0.90
代码:
import math
a = float(input())
b = float(input())
x = (-b+math.sqrt(2*a *math.sin(math.radians(60)) *math.cos(math.radians(60))))/(2*a)
print(f'{x:.2f}')
第三关:
输入和输出:
输入:
1
4
4
输出:
-2.00
代码:
import math
a = float(input())
b = float(input())
c = float(input())
x = (-b+math.sqrt(b**2-4*a*c))/(2*a)
print(f'{x:.2f}')
第四关:
输入和输出:
第一行输入一个数字,代表矩形的长
第二行输入一个数字,代表矩形的宽
(输入使用input(),不要增加额外的提示信息)
输出格式
输出矩形的面积,不限定小数位数
示例1
输入:
3.1415926
5.88
输出:
18.472564488
代码:
a = eval(input()) #输入整数字符串,转换为整数;输入浮点数字符串,转换为浮点数
b = eval(input()) #输入整数和浮点数,都转换为浮点数
print(a*b)
第五关:
输入和输出:
披萨的尺寸一般分6-15英寸几种,一英寸约等于2.54厘米,将英寸直径乘以2.54即可得出以厘米为单位的直径。例如6寸披萨,即为6乘以2.54,得出结果为15.24厘米。 然而披萨加工时并不是严格到毫米不差的,考虑到加工过程及无效的披萨边,真正的有效直径需要去掉小数点后面数字。例如6寸披萨的标准直径为15.24厘米,实际有效直径一般为15厘米。
披萨店经常会对顾客说:您订购的某尺寸的披萨卖完了,是否可以更换为多个小尺寸的披萨。例如:您订购的9寸披萨卖完了,可以给您2个6寸的披萨吗?
假设披萨厚度相同,价格与面积成正比,试问一个m英寸的大披萨至少要更换几个n英寸的小披萨,顾客才不吃亏?
输入:
9
6
输出:
3
代码:
import math
line = 2.54
m = eval(input())
n = eval(input())
area_m = math.pi * m**2
area_n = math.pi * n**2
change = area_m/area_n
if change/1 != change//1:
print(int(change + 1)//1)
else:
print(int(change))
第六关:
输入和输出:
在三行中依次输入初始存款金额,存款年限,年利率,每年末计一次利息并转为本金,计算并输出存款到期时的利息(不含本金,税前),结果保留2位小数。
复利法,每年末计算利息并自动转存:
F=P×(1+i)
N
F:复利终值
P:本金
i:利率
N:利率获取时间的整数倍(年限)
输入:
1000
3
0.025
输出:
利息=76.89
代码:
import math
cash = float(input())
year = float(input())
i = float(input())
F= cash*((1 + i)**year)-cash
print(f'利息={F:.2f}')
第七关:
输入和输出:
输入格式
输入一个数字
输出格式
输出 n 的绝对值
示例
输入
-5
输出
5
代码:
import math
n = eval(input())
print(abs(n))