Python2/3:ACM八大输入输出格式

不少网络笔试不像 LeetCode 帮你完成 I/O,需要手动完成
如果没有 ACM 经验,很可能会在这上面浪费不少时间
这里总结了几种常见的 IO 模板

参考来自
BellWind1995ACM八大输入输出格式之Python版
只想默默Python3的ACM输入输出格式

python2

# encoding: utf-8
 
'''
Python的输入是野生字符串,所以要自己转类型
strip去掉左右两端的空白符,返回str
slipt把字符串按空白符拆开,返回[str]
map把list里面的值映射到指定类型,返回[type]
EOF用抓异常
print后面加逗号就不会换行,否则反之,当然3.x君自行传参
题目细节没看太细,可能有的地方不对,不要在意这些细节啦
'''

1 .有多组输入数据,但没有具体的告诉你有多少组,只是让你对应每组输入,应该怎样输出。

while True:
    try:
        a, b = map(int, raw_input().strip().split())
        print a + b,
    except EOFError:
        break

2. 输入一个整数,告诉我们接下来有多少组数据,然后在输入每组数据的具体值。

tcase = int(raw_input().strip())
for case in range(tcase):
    a, b = map(int, raw_input().strip().split())
    print a + b,

3. 有多组输入数据,没有具体的告诉你有多少组,但是题目却告诉你遇见什么结束

while True:
    a, b = map(int, raw_input().strip().split())
    if a == 0 and b == 0:
        break
    print a + b,

4. 输入有多组,并却题目告诉你每组输入遇见什么结束,与第三种不同之处在于,每组输入都有相应的细化。

	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,

5. 这次的输入实现输入一个整数,告诉我们有多少行,在输入每一行。对于每一行的输入,有划分为第一个数和其他的数,第一个数代表那一组数据一共有多少输入。

	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,

6. 有多种输入数据,对于每组输入数据的第一个数代表该组数据接下来要输入数据量

	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

7. 这道题的输出只是简单的在每组输出后边多加一个换行而已

	while True:
	    try:
	        a, b = map(int, raw_input().strip().split())
	        print a + b
	    except EOFError:
	        break

8. 这种类型的输出注意的就是换行,这类题目说在输出样例中,每组样例之间有什么什么,所以我们在对应输出的同时要判断一下是否是最后一组输出,如果不是,就 将题目所说的东西输出(一般是换行或空格),如果是,就直接结束。

	while True:
	    data = raw_input().strip()
	    if data.isspace():
	        break
	    else:
	        data = map(int, data)
	        n, array = data[0], data[1:]
	                
	        sum = 0
	        for i in range(n):
	            sum += array[i]
	        print sum,

python3

1. 多组输入模板格式:

	while True:
	    try:
	        #caption = list(map(int, input().split()))
	        #ans = 0
	        #for i in caption:
	        #    ans += i
	        #print(ans)
	    except EOFError:
	        break

第一种模板适合那些没有告诉有多少组数据,只是让你不断地输入,典型的题型如A+B问题。

2. 有限输入模板格式:

	T = int(input())
	for case in range(T):
	    #caption = list(map(int, input().split()))
	    #ans = 0
	    #for i in caption:
	    #    ans += i
	    #print(ans)

第二种模板格式适合题目要求首先输入一个整数,代表有几组输入,然后再输入每组数据的具体值。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值