打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
第8关笔记

1、编程思维

我们以课程必做练习《学习小组成绩的合并排序》来进行分析:

1-1、练习目标:

我们会通过今天的作业,掌握列表的两个新运用:合并列表和列表排序。

1-2、练习要求:

一次测评中,老师将 学习小组A 和 学习小组B 的测评成绩(满分 100 分)从低到高记录放进两个列表:A=[91, 95, 97, 99],B=[92, 93, 96, 98] 。现在,老师有两个需求:

(1)想将两个小组的成绩合并为一个列表,并按照从低到高的顺序排序;

(2)想知道两组的平均分,以及把低于平均分的成绩也打印出来。

1-3、思路分析:

1-3-1、合并列表

  • 首先合并列表,根据所学知识,我们有一个 append() 方法,可以给列表添加元素,如果我们用在这道题,直接使用会怎样呢?
A=[91, 95, 97, 99]
B=[92, 93, 96, 98]
A.append(B)
print(A)
# 结果为:[91, 95, 97, 99, [92, 93, 96, 98]]
  • 虽然两个列表合并了,但是我们可以发现,列表 B 是整个作为元素存进了我们的列表 A,这并不是我们想要的效果,那么有什么办法把元素一个一个给提出来在放进去呢?提出来,哦,我们想到了我们所学的 for 循环,遍历取出来后再添加进去
A=[91, 95, 97, 99]
B=[92, 93, 96, 98]
for i in B:
A.append(i)
print(A)
# 结果为:[91, 95, 97, 99, 92, 93, 96, 98]
  • 不错,我们运用我们所学的知识成功把两个列表给组合起来,成功完成了第一个小目标,那除了我们所学的知识外,会不会有更简便的方法可以解决呢?这时我们就可以尝试去百度一下了

  • 经过百度,我们发现了几种方式可以去解决这个问题:extend()函数、切片、甚至一个“+”号解决:
A=[91, 95, 97, 99]
B=[92, 93, 96, 98]
A.extend(B)
print(A)
A=[91, 95, 97, 99]
B=[92, 93, 96, 98]
A[0:0]=B
print(A)
A=[91, 95, 97, 99]
B=[92, 93, 96, 98]
C=A+B
print(C)
  • 我们可以发现,解决一道题的思路有很多,有时不单单是在课程中的知识点,还有更多的简便方式去处理(不过前期还是建议我们多用课程的知识去解决,好好巩固学牢)

1-3-2、按照从低到高的顺序排序

  • 高低排序,根据我们所学的知识,好像并没有对应的知识点,而学过其他语言的同学可能了解一个方法:“冒泡排序法”(下面的代码仅提供参考,不强求看懂)
A=[91, 95, 97, 99, 92, 93, 96, 98]
for i in range(len(A)):
for j in range(0,len(A)-i-1):
if A[j] > A[j+1] :
A[j],A[j+1] = A[j+1],A[j]
print (A)
  • 天啊,看这代码我头发都没了一半,有没有好一点的方法呢?没错,老办法,我们百度一下:

  • 我们发现了 sort() 、sorted() 方法
A=[91, 95, 97, 99, 92, 93, 96, 98]
A.sort()
print(A)
A=[91, 95, 97, 99, 92, 93, 96, 98]
C=sorted(A)
print(C)
  • 这样,我们就成功完成了我们的第一道题啦~~~

1-3-3、求平均分

  • 进入我们的第二道题,依旧一步一步来,平均分=总分/个数。个数我们可以助教的笔记里找到计算函数 len(),而总数的话,我们也可以依次提取列表的元素再进行相加,那我们的代码可以这样写:
A=[91, 95, 97, 99, 92, 93, 96, 98]
sum = 0
for i in A:
sum += i
print(sum/len(A))
  • 没错了,做完了题目后,我们想要少打点代码偷下懒的解决方式就是找更方便的方式去解决问题,翻到助教之前的笔记,我们发现了一个函数 sum(),求总和,那太好了,这样就更简单了:
A=[91, 95, 97, 99, 92, 93, 96, 98]
sum = sum(A)
print(sum/len(A))

1-3-4、打印低于平均分的成绩

  • 相信解决了前面的问题,我们的思路也越来越清晰了,低于平均分的成绩,不就是比较得出来吗,那怎么比较呢,还是从列表一个一个提取出来,再把低的成绩存在一个空列表打印出来嘛,哈哈哈:
A=[91, 95, 97, 99, 92, 93, 96, 98]
sum = sum(A)
avg = sum/len(A)
low_list=[]
for i in A:
if i < avg:
low_list.append(i)
print(low_list)

通过这个案例,你发现了吗,我们的解题步骤其实也是一个循环~所以当我们遇到复杂的题不要怂,学会拆解问题,找到突破口,就能一步步KO掉难题啦!

一定不要怕错,只要有思路就尝试着写,不会运用的知识点就要多去翻阅,多去敲写,未知的方法要具备好奇心去探索~~~~

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
# python入门经典100题
[PYTHON]python编程100例
【深度学习量化投资】RNNs在股票价格预测的应用基于Keras
Python 经典算法100及解析
2021年9月电子学会Python等级考试试卷(三级)答案解析
Python初学者必备!尤其是自学者,超实用技巧务必码住
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服