今天在完成python的PTA编程题的时候认识到自己知识的巨大漏洞:
7-1 成绩统计
现有某班级Python考试成绩,请你帮老师做一下成绩统计,找出最高分、最低分,算出平均分,统计出不及格人数
输入格式:
输入在第一行给出班级人数n,第二行为n个学生的成绩(0~100之间的整数),中间用空格分隔。
输出格式:
输出共四行,分别为最高分、最低分、平均分和不及格人数,其中平均分保留1位小数。
输入格式 : | 10 80 95 75 85 90 55 66 88 100 58 |
---|---|
输出样例: | Max: 100 Min: 55 Ave: 79.2 Fail: 2 |
这里我采用的是用for循环输入数据,这里其实有点想当然了(认为输入就和C语言输入数组中的数据差不多),导致自己输入数据的样式一直是回车输入,不能一次性输入,暴露出自己列表基础的不牢固。×!!!
然后提交的时候死活非零输入,PTA报错。要注意:
利用map(function,input(“以空格分开”).split()) ,可一次性输入多个数据
[split():拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list)]
由于input( )输出的是用空格分开的字符串,split( )会分割开各个值并放到列表中,此时在列表中的值是字符串,如果要用于运算必须在map( )中利用int( )或者float( )等处理,再赋值。如果需要赋值的值都是字符串的话就没必要用map函数了。
因为在python3中,map之后并不能直接变为list类型,需要用list()函数转换才行,所以要想正确完成PTA的输入格式则需这样写:
alist=list(map(int,input().split())) #这里可向列表中输入多个数据,
以空格分割数据
PS:严格注意PTA的输入输出样式,这里的输出数据冒号后还须有空格哦!!
完整代码实现如下:
这里可以使用Python内置的max,min函数,快速求得列表中的最大值,最小值哦!!!
fighting,期末复习加油!!!