输入输出模板(Python版)|ACM模式

1,197 阅读3分钟

引言

Python刷题的输入输出模版,目前大多数笔试都是ACM模式,如果习惯了力扣的核心代码模式,需要笔试前多加练习! Python主要掌握input()input().split()x for x in input().split()的使用。

本文均为Python3的代码。

OJ在线编程常见输入输出练习场

计算a+b

1.

输入: 包括两个正整数a,b(1 <= a, b <= 10^9),输入数据包括多组。

输出: a+b的结果

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

2.

输入:
第一行包括一个数据组数t(1 <= t <= 100)
接下来每行包括两个正整数a,b(1 <= a, b <= 10^9)

输出: a+b的结果

T = int(input())
for _ in range(T):
    a, b = map(int, input().split())
    print(a + b)

3.

输入: 包括两个正整数a,b(1 <= a, b <= 10^9),输入数据有多组, 如果输入为0 0则结束输入

输出: a+b的结果

while True:
    try:
        a, b = map(int, input().split())
        if a == 0 and b == 0:
            break
        print(a + b)
    except:
        break

4.大数求和

输入: 输入数据包括多组。
每组数据一行,包含两个字符串形式的非负整数

输出: 对于每组测试数据,计算它们的和,输出字符串。

while True:
    try:
        words = [x for x in input().split()]
        s1 = words[0]
        s2 = words[1]
        maxlen = len(s1)
        if maxlen < len(s2):
            maxlen = len(s2)
        s1 = s1.zfill(maxlen)
        s2 = s2.zfill(maxlen)
        carry = 0
        sum = ''
        for i in range(-1,-maxlen-1,-1):
            temp = ord(s1[i]) +ord(s2[i]) - 96 + carry
            carry = temp // 10 # 整除用 //
            temp = temp % 10
            sum+=str(temp)
        if carry != 0:
            sum+=str(carry)
        print(sum[::-1])
    except:
        break

一行多个数字求和

1.

输入:
输入数据包括多组。
每组数据一行,每行的第一个整数为整数的个数n(1 <= n <= 100), n为0的时候结束输入。
接下来n个正整数,即需要求和的每个正整数。

输出: 每组数据输出求和的结果

while True:
    try:
        nums = [int(x) for x in input().split()]
        if nums[0] == 0:
            break
        print(sum(nums[1: ]))
    except:
        break

2.

输入:
第一行包括一个正整数t(1 <= t <= 100), 表示数据组数。
接下来t行, 每行一组数据。
每行的第一个整数为整数的个数n(1 <= n <= 100)。
接下来n个正整数, 即需要求和的每个正整数。

输出: 每组数据输出求和的结果

T = int(input())
for _ in range(T):
    nums = [int(x) for x in input().split()]
    print(sum(nums[1: ]))

3.

输入:
输入数据有多组, 每行表示一组输入数据。
每行的第一个整数为整数的个数n(1 <= n <= 100)。
接下来n个正整数, 即需要求和的每个正整数。

输出:每组数据输出求和的结果

while True:
    try:
        nums = [int(x) for x in input().split()]
        print(sum(nums[1: ]))
    except:
        break

4.

输入:
输入数据有多组, 每行表示一组输入数据。
每行不定有n个整数,空格隔开。(1 <= n <= 100)。

输出: 每组数据输出求和的结果

while True:
    try:
        nums = [int(x) for x in input().split()]
        print(sum(nums[1: ]))
    except:
        break

字符串排序

1.

输入:
输入有两行,第一行n
第二行是n个空格隔开的字符串

输出:
输出一行排序后的字符串,空格隔开,无结尾空格

n = int(input())
words = [x for x in input().split()]
words.sort()
for word in words:
    print(word, end = ' ')
print()

2.

输入:
多个测试用例,每个测试用例一行。
每行通过空格隔开,有n个字符串,n<100

输出:
对于每组测试用例,输出一行排序过的字符串,每个字符串通过空格隔开

while True:
    try:
        words = [x for x in input().split()]
        words.sort()
        for word in words:
            print(word, end = ' ')
        print()
    except:
        break

3.

输入:
多个测试用例,每个测试用例一行。
每行通过,隔开,有n个字符串,n<100

输出:
对于每组用例输出一行排序后的字符串,用','隔开,无结尾空格

while True:
    try:
        words = input().split(',')
        words.sort()
        for word in words[:-1]:
            print(word, end = ',')
        print(words[-1])
    except:
        break