python小练习3:简单的学生成绩管理

 目的:输入学生的成绩,自动算出总分平均分以及成绩排名

实现:

1、新建列表alist,存放学生成绩。

2、利用if语句分为两段:

(1)、不清楚具体的学生人数:

利用whlie true死循环,一直输入学生成绩,并将每次输入的成绩进行累加,赋值给sorce。

同时利用ls.append()函数将成绩追加到alist列表末尾。直到主动选择“退出”后,跳出循环。

同时打印输出最高分、最低分、平均成绩(通过len()求出列表内的学生人数)。并通过ls.sort()函数对列表里的元素(学生成绩)进行排序。

ls.sort()函数默认排序为从小到大,ls.sort(reverse=true)为从大到小进行排序。

    while True:     #因为不清楚具体人数,所以选择用死循环
        grade = int(input('请输入成绩:'))
        score = score+grade         #分数累加
        alist.append(grade)         #将分数追加到列表alist
        b = int(input('是否需要继续输入:【1、继续  2、退出】'))#判断是否继续输入成绩
        if b!=1:
            break
    print(f'最高分:{max(alist)},最低分:{min(alist)},平均分:{score/len(alist)}')
    alist.sort(reverse=1)
    print(f'排名为:{alist}')

 

(2)、已知学生人数:

思路同上,通过输入的个数进行for循环,直到输完所有学生成绩,结束循环,进行最高分、最低分、平均分的计算输出,以及排名的输出。

i = int(input('请输入本次参考人数:'))
    for a in range(i):
        grade = int(input(f'请输入第{a+1}个学生成绩:'))
        score = score + grade
        alist.append(grade)
    print(f'最高分:{max(alist)},最低分:{min(alist)},平均分:{score / i}')
    alist.sort(reverse=1)
    print(f'排名为:{alist}')

 因为input()输入得到的信息数据类型被强行转换为str,所以使用int()将其转换为int型。

总代码如下:

 #学生成绩管理
alist = []
score = 0
x = input('你是否已知本次参考人数:【Y/N】')
if x in 'nN':
    while True:     #因为不清楚具体人数,所以选择用死循环
        grade = int(input('请输入成绩:'))
        score = score+grade         #分数累加
        alist.append(grade)         #将分数追加到列表alist
        b = int(input('是否需要继续输入:【1、继续  2、退出】'))#判断是否继续输入成绩
        if b!=1:
            break
    print(f'最高分:{max(alist)},最低分:{min(alist)},平均分:{score/len(alist)}')
    alist.sort(reverse=1)
    print(f'排名为:{alist}')
else:
    i = int(input('请输入本次参考人数:'))
    for a in range(i):
        grade = int(input(f'请输入第{a+1}个学生成绩:'))
        score = score + grade
        alist.append(grade)
    print(f'最高分:{max(alist)},最低分:{min(alist)},平均分:{score / i}')
    alist.sort(reverse=1)
    print(f'排名为:{alist}')

运行结果如下:

1、不清楚参加考试的人数

2、清楚本次参加考试的人数;

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值