python 练习

今天要来练习的是必较难的题目,是出自於APCS 105年3月5日的实作题1,那我们就开始吧!

题目

https://ithelp.ithome.com.tw/upload/images/20210925/20140468oDJLqM6hQ3.png
https://ithelp.ithome.com.tw/upload/images/20210925/201404687drqCBRPNy.png
问题描述
一次考试中,於所有及格学生中获取最低分数者最为幸运,反之,於所有不及格同学 中,获取最高分数者,可以说是最为不幸,而此二种分数,可以视为成绩指标。 请你设计一支程序,读入全班成绩(人数不固定),请对所有分数进行排序,并分别找 出不及格中最高分数,以及及格中最低分数。当找不到最低及格分数,表示对於本次考试而言,这是一个不幸之班级,此时请你印 出:「worst case」;反之,当找不到最高不及格分数时,请你印出「best case」。
注:假设及格分数为 60,每笔测资皆为 0~100 间整数,且笔数未定。

输入格式
第一行输入学生人数,第二行为各学生分数(0~100 间),分数与分数之间以一个空白 间格。每一笔测资的学生人数为 1~20 的整数。

输出格式
每笔测资输出三行。
第一行由小而大印出所有成绩,两数字之间以一个空白间格,最後一个数字後无空白;
第二行印出最高不及格分数,如果全数及格时,於此行印出 best case;
第三行印出最低及格分数,当全数不及格时,於此行印出 worst case。

解答

https://ithelp.ithome.com.tw/upload/images/20210925/20140468QxEqwmpUEK.png

a=int(input())      #输入人数
b=input()           #输入成绩
list=b.split()      #将成绩转为清单
list.sort()         #将清单中成绩排序(由小到大)

#以下为第一行=======================================
print(' '.join(list))   #将排序好的清单转为字串并打印

#以下为第二行=======================================
list.reverse()              #将清单顺序反转(由大到小)

for i in range(0,a):        
    if int(list[i])<60:     #如果找到第一个小於60的数,打印并break
        print(list[i])
        break
if int(list[a-1])>=60:      #如果清单中最小数>=60,就代表所有人及格
    print('best case')

#以下为第三行=======================================
list.reverse()              #将清单顺序反转(由小到大)

for j in range(0,a):        
    if int(list[j])>=60:    #如果找到第一个大於60的数,打印并break
        print(list[j])
        break
if int(list[a-1])<60:       #如果清单中最大数<60,就代表所有人都不及格
    print('worst case')


<<:  案例:自动化文件讯息提取

>>:  DAY 11:Thread-Specific Storage Pattern,高并发的多重宇宙空间

Dungeon Mizarka 023

这几天可能不会有什麽进展,今天先将之前试验建置VS的部份做个整理。整理有关於Code strippi...

Leetcode: 104. Maximum Depth of Binary Tree

找树的高度 思路 这题是图上给你指定的点,让你找出最远的那个node离你多远,用Traversal找...

Day 5 基本 flask 函式 (2)

前言 今天会继续探讨其他的 flask 的函式。如果说昨天的函式是用来给予使用者回应,那今天提到的函...

如何自己设计一套ERP程序 前传-写ERP之前要决定的20件事 决定ERP库存量的取值方法

第4个决定 决定ERP库存量的取值方法 库存量(或称在手量 on-hand quantities) ...

[Day30] GCP云端部属说明(前後端)

How - 部属MongoDB 登入以下网址 https://www.mongodb.com/clo...