一、输入部分
1. 单样例输入
(1)只需输入一行
题目描述:
对10个整数从小到大排序。
输入:
4 85 3 234 45 345 345 122 30 12
输出:
3 4 12 30 45
代码:
listt = map(lambda x:int(x), raw_input().split()) # 万能的输入语句
listt.sort() # 调用标准库
for i in listt :
print i, # 输出
注:python2.7的代码。
2. 多样例输入
(1)多样例输入,无明确样例个数
有多组输入数据,但没有具体的告诉你有多少组,只是让你对应每组输入,应该怎样输出。
题目要求:
多样例输入一组整数,每组数据占一行,每组数据中有两个数,要求输出两个数之和。每个结果占一行。
输入:
1 3
2 4
3 5
输出:
4
6
8
代码:
while True:
try:
a, b = map(int, raw_input().strip().split())
print (a+b)
except EOFError:
break
(2)要输入N行
输入一个整数,告诉我们接下来有多少组数据,然后在输入每组数据的具体值。
输入
学生数量N占一行, 每个学生的学号、姓名、三科成绩占一行,空格分开。成绩是正整数
输出
各门课的平均成绩 最高分的学生的数据(包括学号、姓名、3门课成绩),平均成绩用整数表示
样例输入
2
1 blue 90 80 70
b clan 80 70 60
样例输出
85 75 65
1 blue 90 80 70
代码:
tcase = int(raw_input().strip())
def f(x):
if ord(x[0]) < 90: # 判断是数字还是字母
return int(x)
return x
a = [map(f, raw_input().split()) for i in range(tcase)]
print sum([x[2] for x in a])/tcase, sum([x[3] for x in a])/tcase, sum([x[4] for x in a])/tcase # 打印平均数
listt=[sum(x[2:]) for x in a]
maxx=max(listt)
for i in range(tcase): # 找到最大值的索引
if listt[i] ==maxx:
break
print str(a[i]).replace(', ',' ').replace('\'','')[1:-1]+' ' #列表一排万能输出,但输出得不好看,不用在意
在举一个例子:
题目要求:
输入N组数据样例,每组数据占一行,每组数据中有两个数,要求输出两个数之和。每个结果占一行。
输入:
3
1 2
2 3
3 4
输出:
3
5
7
代码:
tcase = int(raw_input().strip())
for case in range(tcase):
a, b = map(int, raw_input().strip().split())
print (a + b)
(3)多样例输入,指定结束符号
有多组输入数据,没有具体的告诉你有多少组,但是题目却告诉你遇见什么结束。
题目要求:
多样例输入一组整数,每组数据占一行,每组数据中有两个数。要求输出两个数之和,每个结果占一行。输入 0 0 表示输入结束。
输入:
1 2
3 4
5 6
0 0
输出:
3
7
11
代码:
while True:
a, b = map(int, raw_input().strip().split())
if a == 0 and b == 0:
break
print (a + b)
(4)输入N组,指定结束符号
输入有N组,并且题目告诉你每组输入遇见什么结束,与第三种不同之处在于,每组输入都有相应的细化。
题目要求:
输入N组数据样例,每组数据占一行,每组数据中有两个数,要求输出两个数之和。每个结果占一行。输入 0 0 表示输入结束。
输入:
3
1 2
3 4
0 0
输出:
3
7
代码:
tcase = int(raw_input().strip())
for case in range(tcase):
a, b = map(int, raw_input().strip().split())
if a == 0 and b == 0:
break
print (a + b)
3.多样例复杂输入
(1)多样例输入,无明确样例个数
有多种输入数据,对于每组输入数据的第一个数代表该组数据接下来要输入数据量。
题目描述:
输入多组数据样例,每组数据占一行,对于每一行的输入,又划分为第一个数和其他的数,第一个数代表那一组数据一共有多少输入。输出其它数据相加之和。
输入:
1 2
2 1 2
3 1 2 3
4 1 2 3 4
输出:
2
3
6
10
代码:
while True:
try:
data = map(int, raw_input().strip().split())
n, array = data[0], data[1:]
sum = 0
for i in range(n):
sum += array[i]
print (sum)
except EOFError:
raise
(2)要输入N行
这次的输入实现输入一个整数,告诉我们有多少行,在输入每一行。对于每一行的输入,又划分为第一个数和其他的数,第一个数代表那一组数据一共有多少输入。
题目描述:
输入N组数据样例,N告诉我们有N行数据。对于每一行的输入,又划分为第一个数和其他的数,第一个数代表那一组数据一共有多少输入。输出其它数据相加之和。
输入:
4
1 2
2 1 2
3 1 2 3
4 1 2 3 4
输出:
2
3
6
10
代码:
tcase = int(raw_input().strip())
for case in range(tcase):
data = map(int, raw_input().strip().split())
n, array = data[0], data[1:]
sum = 0
for i in range(n):
sum += array[i]
print (sum)