python.第六章课后题

复制代码
# 课后题

# 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
相关推荐
笃励11 分钟前
Java面试题二
java·开发语言·python
一颗星星辰1 小时前
Python | 第九章 | 排序和查找
服务器·网络·python
打码人的日常分享1 小时前
企业人力资源管理,人事档案管理,绩效考核,五险一金,招聘培训,薪酬管理一体化管理系统(源码)
java·数据库·python·需求分析·规格说明书
27669582921 小时前
京东e卡滑块 分析
java·javascript·python·node.js·go·滑块·京东
unix2linux1 小时前
Parade Series - SHA256
linux·python·mysql·shell
巽星石2 小时前
【Blender Python】7.一些运算、三角函数以及随机
python·blender·三角函数·随机·环形阵列
CSXB992 小时前
一、Python(介绍、环境搭建)
开发语言·python·测试工具·集成测试
Mopes__2 小时前
Python | Leetcode Python题解之第461题汉明距离
python·leetcode·题解
EterNity_TiMe_2 小时前
【机器学习】智驭未来:探索机器学习在食品生产中的革新之路
人工智能·python·机器学习·性能优化·学习方法
Mopes__3 小时前
Python | Leetcode Python题解之第452题用最少数量的箭引爆气球
python·leetcode·题解