美文网首页Python 学习笔记
2020-07-01 Python学习笔记12

2020-07-01 Python学习笔记12

作者: 建渐升辉 | 来源:发表于2020-07-01 13:32 被阅读0次

一些关于自己学习Python的经历的内容,遇到的问题和思考等,方便以后查询和复习。

声明:本人学习是在扇贝编程通过网络学习的,相关的知识、案例来源于扇贝编程。如果使用请说明来源。

第十二关:列表初阶

练习:谁排倒数后三名

刚刚听班主任讲她看到几门考试的倒数三名里都有贾宝玉和秦可卿,我们来统计贾宝玉和秦可卿他们到底在几门课里是倒数前三呢?

要求: 在屏幕上分别打印出:

贾宝玉排在倒数三名的次数是 xxx

秦可卿排在倒数三名的次数是 xxx

注意:要将 xxx 替换为计算的结果哦~

code_ranks = [

  '贾惜春', '贾巧姐', '李纨',

  '秦可卿', '史湘云', '王熙凤',

  '薛宝钗', '林黛玉', '妙玉',

  '贾迎春', '贾宝玉', '探春'

]

code=code_ranks[-3:]

chinese_ranks = [

  '林黛玉', '薛宝钗', '贾宝玉',

  '贾探春', '史湘云', '贾迎春',

  '贾惜春', '王熙凤', '贾巧姐',

  '李纨', '妙玉', '秦可卿'

]

chinese = chinese_ranks[-3:]

math_ranks = [

  '王熙凤', '贾迎春', '妙玉',

  '林黛玉', '贾惜春', '贾巧姐',

  '贾探春', '史湘云', '秦可卿',

  '李纨', '薛宝钗', '贾宝玉'

]

math = math_ranks[-3:]

baoyu = code.count('贾宝玉') + chinese.count('贾宝玉') + math.count('贾宝玉')

keqing = code.count('秦可卿') + chinese.count('秦可卿') + math.count('秦可卿')

# 想一想如何计算出贾宝玉和秦可卿排在倒数三名的次数

print('贾宝玉排在倒数三名的次数是', baoyu)

print('秦可卿排在倒数三名的次数是', keqing)

感觉头秃啊,实在做不出来,后来想不是要统计排倒数第三的次数吗,那我先找出每门成绩排第三的都是哪些人,这样得到新的列表,然后在新列表中进行统计,再相加,就可以了

1 每门课的排名倒数第三的列表

2 统计二人再每门课中排倒数第三次数,其实就是一次或零次

3 三门课统计次数相加

结果一运行,决然绿灯通过

赶紧看答案:

肯定不一样,但是思路是完全一样的,只是答案更为简洁,非常开心自己坚持解题,没有直接看答案

答案的思路是把三个列表排名倒数第三的列表求出来,并且直接相加了,这样就可以得到一个新的列表了。这里用到了列表相加,答案超纲了把,哈哈哈

然后再新列表中统计两个人出现的次数。

我是先统计后加,答案是先加起来,后统计。思路基本一致。都要找出排名后三的列表。

练习:菜单

food = [

  '玫瑰膏',

  '新栗粉糕',

  '鸡油卷',

  '燕窝',

  '烤鹿肉',

  '木樨清露'

  ]

# 用 del 语句去掉鸡油卷

del food[2]

# 用 remove() 方法去掉烤鹿肉

food.remove('烤鹿肉')

# 打印出去掉上面两种食物后的食物清单

print(food)

谁值班

你正在安排大观园班下一周的值日表,一周七天每天都要有一个同学负责班里的卫生。你将他们的值日排班按周一到周日的顺序写进了列表 on_duty 中。

试着用将下面的代码补全,用分片的方式查询:

周一和周二分别是谁值日;

周三到周五是谁值日;

周末两天是谁值日。

on_duty = [

  '贾琏',

  '王熙凤',

  '林黛玉',

  '贾宝玉',

  '李纨',

  '薛宝钗',

  '妙玉'

  ]

# 打印周一周二值日的人

print(on_duty[:2])

# 打印周三到周五值日的人

print(on_duty[2:5])

# 打印周末值日的人

print(on_duty[5:7])

答案最后一行写的是[5:],由于是最后几个,所以就省略了结束索引。

虽然最大索引只有6,但是如写成[5:6],则只包含一个元素。[5:7]则包含5/6两个元素

练习:成绩极值

你将 14 名学生的在上一节中的期中考试成绩放入了名为 scores 的列表中,不过还没有进行排序。

现在,你需要统计这次考试成绩的极差(最高分与最低分的差值),以及有多少人考了满分 100 分。

来完善代码,算出上面需要的两个值吧~

scores = [100, 92, 77, 85, 81, 90, 100, 86, 79, 93, 91, 96, 75, 84]

# 对 scores 进行排序

scores.sort()

# 计算这次考试成绩的极差

result = scores[13] - scores[0]    # result = scores[-1] - scores[0]

print(result)

# 统计考100分的人数

print(scores.count(100))

由于排序默认升序排列的,所以极值=最大值-最小值,可以用排序之后的最后一个元素-第一个元素

最后一个元素用 列表名[-1]就可以了,这样不用计算最后一个元素的索引是多少了。

相关文章

网友评论

    本文标题:2020-07-01 Python学习笔记12

    本文链接:https://www.haomeiwen.com/subject/cvvcqktx.html