文章目录
前言
大概是最后一次参加蓝桥杯,Python组模拟题练习,仅作为个人总结,分享给有需要的人,如有错误,请纠正,万分感谢!
问题描述
给出n个数,找出这n个数的最大值,最小值,和。
输入格式
第一行为整数n,表示数的个数。
第二行有n个数,为给定的n个数,每个数的绝对值都小于10000。
输出格式
输出三行,每行一个整数。第一行表示这些数中的最大值,第二行表示这些数中的最小值,第三行表示这些数的和。
样例输入
5
1 3 -2 4 5
样例输出
5
-2
11
数据规模与约定
1 <= n <= 10000。
时间限制:1.0s 内存限制:256.0MB
解答
1. n=int(input()) #获取个数
2. b=input() #获取第二行字符串
3. a=b.split() #将第二行存为列表(默认是string类型)
4. real=list(map(int,a)) #string类型列表转换为int类型
5. print(max(real))
6. print(min(real))
7. print(sum(real))
第2—4行也可以用这个进行合并: list(map(int,input().split()))
省内存
即:
1. n=int(input()) #获取个数
2. real=list(map(int,input().split()))
3. print(max(real))
4. print(min(real))
5. print(sum(real))
出错解答及原因
1. n=int(input())
2. i=0
3. sum=min=max=int(input())
4. while i<(n-1):
5. moment=int(input())
6. if min>moment:
7. min=moment
8. if max<moment:
9. max=moment
10. sum+=moment
11. i+=1
12. print(max)
13. print(min)
14. print(sum)
ValueError: invalid literal for int() with base 10: ‘1 3 2 4 5’
原因:在第5步,是 1 3 2 4 5 一起输入的,不能将其一个个转换为整型,即不能int(1 3 2 4 5)