要求
不过,老师有了新的需求:想知道两组的平均分,以及把低于平均分的成绩也打印出来。
所以,在这个练习中,我们会帮老师计算出平均分,并挑出那些在平均分之下的成绩。
scores=[91, 92, 93, 95, 96, 97, 98, 99]
1、分析问题,明确结果
- 取出列表内元素
- 计算平均分(总分/元素总个数)并打印
- 将列表内元素与平均分做比较
- 挑出平均分以下的成绩
- 打印结果
2、思考需要的知识,或搜索新知识
知识点一:计算平均分,len(list)统计列表长度即列表内元素个数
sum=0
#计算总和
for i in scores:
sum=sum+i
#计算平均分
average=sum/len(scores)
知识点二:寻找更简单的计算平均分方法,引入numpy.mean() 函数返回数组中元素的算术平均值
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import numpy as np #导入np库
scores1 = [91, 95, 97, 99, 92, 93, 96, 98]
average=np.mean(scores1) #numpy.mean() 函数返回数组中元素的算术平均值。
print('两组平均成绩为{}'.format(average))
知识点三:挑出平均分以下的成绩,list.append(i) 将元素i 添加到list
#挑出小于平均分的成绩并插入新的列表
score=[]
for i in scores:
if i <average:
score.append(i)
else:
continue
知识点四:找到更简单的方法,打印平均分以下的成绩
#NumPy 从已有的数组创建数组
socres3 = np.array(scores1) #
print(' 低于平均成绩的有:{}'.format(socres3[socres3<average])) #在vs code运行报错:UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position 0: illegal multibyte sequence
#查找原因后修改,运行成功
socres3 = np.array(scores1)
print(' 低于平均成绩的有:{}'.format(socres3[socres3<average]).replace(u'\xa0', u''))
3、思考切入点
4、尝试解决问题的一部分
整理并打印结果
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
scores=[91, 92, 93, 95, 96, 97, 98, 99]
sum=0
score=[]
#计算总和
for i in scores:
sum=sum+i
#计算平均分
average=sum/len(scores)
print('两组的平均分为{}'.format(average))
#挑出小于平均分的成绩并插入新的列表
for i in scores:
if i <average:
score.append(i)
else:
continue
#打印结果
print('平均分以下的成绩有:{}'.format(score))
5、重复1-4
引入numpy后更加简洁
import numpy as np # 导入 numpy库,下面出现的 np 即 numpy库
scores1 = [91, 95, 97, 99, 92, 93, 96, 98]
average = np.mean(scores1) # 一行解决。
print('平均成绩是:{}'.format(average))
socres3 = np.array(scores1)
print(' 低于平均成绩的有:{}'.format(socres3[socres3<average]).replace(u'\xa0', u''))
结尾给大家推荐一个非常好的学习教程,希望对你学习Python有帮助!
Python基础入门教程推荐:更多Python视频教程-关注B站:Python学习者
【Python教程】全网最容易听懂的1000集python系统学习教程(答疑在最后四期,满满干货)
Python爬虫案例教程推荐:更多Python视频教程-关注B站:Python学习者
2021年Python最新最全100个爬虫完整案例教程,数据分析,数据可视化,记得收藏哦