# 课后题
# 1.
from math import *
def area(r):
return pi * r ** 2
print('半径为3.5的圆的面积:{:.3f}'.format(area(3.5)))
print('半径为2.9的圆的面积:{:.3f}'.format(area(2.9)))
# 半径为3.5的圆的面积:38.485
# 半径为2.9的圆的面积:26.421
m = area(6.2)
n = area(3.3)
print('圆环面积:{:.3f}'.format(m - n))
# 圆环面积:86.551
# 2.
def showMsg(n,name):
for i in range(n):
print("Happy Birthday {}".format(name))
showMsg(3,'wzm')
# Happy Birthday wzm
# Happy Birthday wzm
# Happy Birthday wzm
# 3.
# 已知成绩列表 s = {'小李':[77,54,57],'小张':[89,66,78],'小陈':[90,93,80],'小杨':[69,58,93]}
# 输出结果为:{'小李': 62, '小张': 77, '小陈': 87, '小杨': 73}
def avg(a,b,c):
return int((a + b + c) / 3)
s = {'小李':[77,54,57],'小张':[89,66,78],'小陈':[90,93,80],'小杨':[69,58,93]}
s1 = {}
for k,v in s.items():
# print(v)
for i in range(3):
a = v[0]
b = v[1]
c = v[2]
av = avg(a,b,c)
s1[k] = av
print(s1)
# {'小李': 62, '小张': 77, '小陈': 87, '小杨': 73}
# 4.
# 已知成绩列表 s={'小李':[77,54],'小张':[89,66,78,99],'小陈':[90],'小杨':[69,58,93]}
# # 输出结果为:{'小李':65,'小张':83,'小陈':90,'小杨': 73}3]}
def avg(lst):
return int(sum(lst)/len(lst))
s={'小李':[77,54],'小张':[89,66,78,99],'小陈':[90],'小杨':[69,58,93]}
s2 = {}
for k,v in s.items():
s2[k] = avg(v)
print(s2)
# {'小李': 65, '小张': 83, '小陈': 90, '小杨': 73}
# 5.
# dict={'01':[67,88,45],'02':[97,68,85],'03':[97, 98, 95],'04':[67,48,45],'05':[82,58,75],'06':[96,49,65]}
dict={'01':[67,88,45],'02':[97,68,85],'03':[97, 98, 95],'04':[67,48,45],'05':[82,58,75],'06':[96,49,65]}
# ①
def more85(dic):
n = []
for k,v in dic.items():
for i in range(3):
if v[i] < 85: break
else:
n.append(k)
return n
print('每门成绩均大于等于 85 的学生的学号:')
print(more85(dict))
# 每门成绩均大于等于 85 的学生的学号:
# ['03']
# ②
def avg3(dic):
a = {}
for k,v in dic.items():
a[k] = (round(sum(v)/len(v),2),sum(v))
return a
print('每一个学号对应的平均分和总分,结果保留两位小数:')
print(avg3(dict))
# 每一个学号对应的平均分和总分,结果保留两位小数:
# {'01': (66.67, 200), '02': (83.33, 250), '03': (96.67, 290), '04': (53.33, 160), '05': (71.67, 215), '06': (70.0, 210)}
# ③
def rank(dic):
b = {}
for k,v in dic.items():
b[k] = sum(v)
return sorted(b.keys(),key= lambda x:b[x])
print('按总分升序排列的学号列表:')
print(rank(dict))
# 按总分升序排列的学号列表:
# ['04', '01', '06', '05', '02', '03']
# 6.
# 用递归方法求数列“1,1,1,3,5,9,17,31...”的前 20 项
def sequence(n):
if n == 1 or n == 2 or n == 3: return 1
else: return sequence(n-1) + sequence(n-2) + sequence(n-3)
print('数列“1,1,1,3,5,9,17,31...”的前 20 项:')
for i in range(1,20+1):
print("{:<8}".format(sequence(i)),end=' ' if i % 5 != 0 else "\n")
# 1 1 1 3 5
# 9 17 31 57 105
# 193 355 653 1201 2209
# 4063 7473 13745 25281 46499
python.第六章课后题
MZWeiei2024-04-28 20:27
相关推荐
小柯南敲键盘8 分钟前
跨境电商批量图片翻译与视频字幕翻译,就用跨马AI工具心易行者43 分钟前
Python自动化测试7步落地法:用python在线运行省掉90%环境配置时间Boop_wu1 小时前
[LangGraph] 案例 2 : 支持搜索的智能代理系统2601_962297251 小时前
Python、Pytest、Allure、Selenium和Jenkins实现自动化测试集成实例今天AI了吗1 小时前
Codex 配置自定义 AI API 完整指南:从零到一接入你的专属模型阿童木写作2 小时前
跨境电商批量图片翻译与视频字幕翻译工具推荐leihefeng2 小时前
手写数字识别:KNN vs 逻辑回归实战SunnyDays10112 小时前
如何使用 Python 从 Word 文档中提取图片2601_962097362 小时前
Pathway 实时RAG新方案:抛弃Spark、Flink,生产级数据管道三十岁老牛再出发2 小时前
9月3日总结