用python语言解决列表问题

从键盘输入 n位同学的成绩用空格隔开, 统计成绩中及格与不及格的人数。 输出结果包括升序排列后的成绩列表 ,及格人数,不及格人说数。
输入格式 ,输入一行数据代表n个成绩 成绩之间用空格隔开
输出格式,输出为三行 第一行是成绩列表 ,第二行是及格人数 ,第三行是不及格人数

lst = list(map(int, input().split()))
lst.sort()
p = f = 0
for i in lst:
    if i >= 60:
        p += 1
    else:
        f += 1
print(lst)
print("Pass:%d"%p)
print("Fail:%d"%f)
#键盘的输入直接用input()函数
scores = input()
# 45 60 50 1 100 99 23
# 此时我们的scores是str类型的数据,我们有以下几种方式转为我们想要的数组
# 1. 利用split()
scores_list = list(map(int, scores.split(' '))) # 当然如果成绩有小数点后位数,把int改为float
print(scores_list)
>[45, 60, 50, 1, 100, 99, 23]
# 2. 将空格替换为逗号后利用exec()
scores = scores.replace(' ', ',')
exec('scores_list'+'='+'['+scores+']')
# 3. 更一般的,如果我们数据是从txt中读取,可以用numpy解决
import numpy as np
scores_list = np.loadtxt('scores.txt')

# 排序:
scores_list.sort()
print(scores_list)
>[1, 23, 45, 50, 60, 99, 100]

# 及格人数:
count_list = [score >= 60 for score in scores_list]
count1= sum(count_list)
print(count1)
>3
# 不及格人数:
count2 = len(scores_list) - count1
print(count2)
>4

用的函数都很简单,希望对题主有帮助。