一、根据输入的各科成绩统计学生成绩是否达标
1 (背景:输入学生数量,以及各个学生语文、数学、英语、历史四科的成绩,如果总成绩小于 240,则成绩不达标,否则成绩合格) 2 3 #coding=utf-8 4 n = int(input('请输入学生数量:')) #输入学生数量,并转换为整型 5 print('-' * 50) #打印分割线 6 subjects =('语文','数学','英语','历史') #创建学科元组 7 data ={} #创建字典data,用来存储学生姓名+成绩 8 for i in range(1,n+1): #元素i记录输入的学生次数,控制循环次数 9 name= input('请输入第{}位学生姓名:'.format(i)) #定义变量name,接收输入的学生姓名 10 i += 1 #每输入一个学生,元素i加1 11 marks=[] #创建列表marks,记录每个学生的四科成绩 12 for x in subjects: #元素x记录遍历的学科 13 marks.append(int(input('请输入{}成绩:'.format(x)))) #接收输入的成绩,转换为整型,并添加到marks列表 14 data[name]=marks #往字典data中添加本次循环的name和marks 15 print() #换行打印 16 print('-' * 50) #打印分割线 17 for x,y in data.items(): #遍历data字典 18 print(x,y) #打印字典遍历内容 19 total =sum(y) #定义变量total,使用sum()计算每个学生的总成绩 20 print('{}的总成绩为{},'.format(x,total),end='') #打印学生总成绩 21 if total <240: #如果总成绩小于240,则学生成绩不达标 22 print('{}的成绩不达标'.format(x)) 23 else: #否则成绩合格 24 print('{}的成绩合格'.format(x))
执行结果:
知识点:
- 元组 #元组由数个逗号分割的值组成。元组是不可变类型,这不能在元组内删除或添加或编辑任何值。
-
字典 #字典是无序的键值对(
key:value
)集合,同一个字典内的键必须是互不相同的。使用一对大括号{}
创建一个空字典。可使用del关键字来删除任意指定的键值对,如 del data['张三'];要遍历一个字典,使用字典的
items()
方法,如例子中体现。 - 列表 #列表由中括号开始结束、可以存储不同数据类型的可变的数据结构。如a=[1,2.2,'Hello',True,[1,2,3]]。列表的相关方法:append(),像列表末尾添加元素;insert(),将数据插入到列表的某一位置,如insert(2,1),即在列表索引2位置添加元素1;count(),查询列表中元素的数量,如count(1);remove(),移除列表中的元素;reverse(),反转整个列表,如a=[1,2,3],反转后变为a=[3,2,1];extend(),将一个列表的所有元素添加到另一个列表的末尾,如a=[1,2],b=[3,4],a.extend(b),则a=[1,2,3,4];sort(),给列表元素排序,前提是列表元素可比较; del关键字,使用del a[-1] 来删除列表元素,示例为删除a列表末尾的元素。