python3在线编程输入输出总结

目录

  • A+B
    • 类型一:多组输入,组数未知
    • 类型二:多组输入,组数t已知
    • 类型三:多组输入,有终止条件
    • 类型四:多组输入,有终止条件,每行个数已知
    • 类别五:多组输入,有组数t,求一系列和
    • 类型六:多组输入,每行个数已知,一系列和
    • 类型六:多组输入,一系列和
  • 字符串排序
    • 类型一:一行字符串个数n,一行字符串
    • 类型二:多行字符串,空格分隔
    • 类型三:多行字符串,逗号分隔

A+B

类型一:多组输入,组数未知

输入:输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据包括多组。
输出:输出a+b的结果
解读:一行是一组输入,有多行输入,输出有多行输出

# eg:
# 输入
1 5
3 4
# 输出
6
7

法1:使用sys

import sys
for line in sys.stdin:
	# strip()不带参数,默认是清除两边的空白符
	# split()通过指定分隔符对字符串进行切片,默认以空格为分隔符
    a = line.strip().split()
    a = [int(x) for x in a]
    print(sum(a))

– strip()函数详解.
– split()函数详解.
法2:使用内置函数

# 一行只有2个数
while True:
    try:
    # map(function, iterable, ...)
        a, b = map(int, input().strip().split())
        print(a + b)
    except EOFError:
        break
# 扩展:一行有多个数
while True:
    try:
        l = list(map(int, input().strip().split()))
        print(sum(l))
    except EOFError:
        break

map()函数详解.

类型二:多组输入,组数t已知

输入:输入第一行包括一个数据组数t(1 <= t <= 100);接下来每行包括两个正整数a,b(1 <= a, b <= 10^9)
输出:输出a+b的结果
解读:第一行是组数t,之后是多组输入,输出为多行输出

# eg:
# 输入
2
1 5
3 4
# 输出
6
7

法1:使用sys

import sys
# sys.stdin 当没有接受到输入结束信号就一直遍历每一行
for line in sys.stdin:
    data = list(map(int,line.strip().split()))
    if len(data)==1:
        continue
    else:
        print(data[0]+data[1])

法2:使用内置函数

# 一行只有2个数
# 先输入行数t,然后再进行其他编码
t=int(input())
for i in range(t):
    a,b=map(int,input().split())
    print(a+b)
# 扩展:一行有多个数
t=int(input())
for i in range(t):
    l=list(map(int,input().strip().split()))
    print(sum(l))

类型三:多组输入,有终止条件

输入:输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据有多组, 如果输入为0 0则结束输入。
输出:输出a+b的结果
解读:多行输入,有终止条件,输出为多行输出

# eg:
# 输入
1 5
3 4
0 0
# 输出
6
7

法1:使用sys

import sys
for line in sys.stdin:
    a = list(map(int, line.split()))
    if a == [0,0]:
        break
    print(sum(a))

法2:使用内置函数

# 一行只有2个数
# 添加终止条件
while True:
    n,m=map(int,input().strip().split())
    if n == 0 and m == 0:
        break
    print(n + m)
# 扩展:一行有多个数 方法和类型一、二里面的扩展思路一样 用list()函数即可

类型四:多组输入,有终止条件,每行个数已知

输入:
输入数据包括多组。
每组数据一行,每行的第一个整数为整数的个数n(1 <= n <= 100), n为0的时候结束输入。
接下来n个正整数,即需要求和的每个正整数。
输出:每组数据输出求和的结果。
解读:多组输入,有终止条件,每行第一个数为需要带入计算的整数的个数

# eg:
# 输入
4 1 2 3 4
5 1 2 3 4 5
0
# 输出
10
15

法1:使用sys

# 使用readline()函数
import sys
 
while True:
    line = sys.stdin.readline().strip()
    if line == '0':
        break
    else:
        lista = list(map(int,line.split()))
        print(sum(lista[1:]))

– readline()函数详解.
法2:使用内置函数

# 思路是读取一行,然后将第一个数和后面的分开
while True:
    l = list(map(int, input().split()))
    if len(l) == 1 and l[0] == 0:
        break
    else:
        print(sum(l[1:]))

类别五:多组输入,有组数t,求一系列和

输入:
输入的第一行包括一个正整数t(1 <= t <= 100), 表示数据组数。
接下来t行, 每行一组数据。
每行的第一个整数为整数的个数n(1 <= n <= 100)。
接下来n个正整数, 即需要求和的每个正整数。
输出:每组数据输出求和的结果
解读:多行输入,有组数t,一行有多个数,求和;输出为多行输出(是类型二的扩展)

# eg:
# 输入
2
4 1 2 3 4
5 1 2 3 4 5
# 输出
10
15

法1:使用sys

import sys
n = sys.stdin.readlines()
for i in n:
    tmp = list(map(int,i.strip().split()))
    if len(tmp) > 1:
        print(sum(tmp[1:]))

法2:使用内置函数

t=int(input())
for i in range(t):
    l=list(map(int,input().strip().split()))
    print(sum(l[1:]))

类型六:多组输入,每行个数已知,一系列和

输入:
输入数据有多组, 每行表示一组输入数据。
每行的第一个整数为整数的个数n(1 <= n <= 100)。
接下来n个正整数, 即需要求和的每个正整数。
输出:每组数据输出求和的结果
解读:多行输入,无终止条件,输出为多行输出

# eg:
# 输入
4 1 2 3 4
5 1 2 3 4 5
# 输出
10
15

法1:使用sys

import sys
for line in sys.stdin:
    lists = list(map(int, line.split()))
    print(sum(lists[1:]))

法2:使用内置函数

# 注意是否越界
while True:
    try:
        l=list(map(int,input().strip().split()))
        print(sum(l[1:]))
    except EOFError:
        break

类型六:多组输入,一系列和

输入:
输入数据有多组, 每行表示一组输入数据。
每行的第一个整数为整数的个数n(1 <= n <= 100)。
接下来n个正整数, 即需要求和的每个正整数。
输出:每组数据输出求和的结果
解读:多行输入,无终止条件,输出为多行输出

# eg:
# 输入
1 2 3 4
1 2 3 4 5
0 0 0 0
# 输出
10
15
0

法1:使用sys

import sys
for i in sys.stdin:
    l=list(map(int,i.strip().split()))
    print(sum(l))

法2:使用内置函数

while True:
    try:
        l=list(map(int,input().strip().split()))
        print(sum(l))
    except EOFError:
        break

字符串排序

类型一:一行字符串个数n,一行字符串

输入:
输入有两行,第一行n
第二行是n个空格隔开的字符串
输出:输出一行排序后的字符串,空格隔开,无结尾空格

# eg:
# 输入
5
c d a bb e
# 输出
a bb c d e

法1:使用sys

import sys
first_line = sys.stdin.readline()
second_line = sys.stdin.readline()
strings = second_line.strip().split()
strings.sort()
st = ' '.join(strings)
print(st)

法2:使用内置函数

while True:
    try:
        n=int(input())
        mystr=list(map(str,input().strip().split()))
        mystr.sort()
        print(' '.join(mystr))
    except EOFError:
        break

类型二:多行字符串,空格分隔

输入:
多个测试用例,每个测试用例一行。
每行通过空格隔开,有n个字符,n<100
输出:对于每组测试用例,输出一行排序过的字符串,每个字符串通过空格隔开

# eg:
# 输入
a c bb
f dddd
nowcoder
# 输出
a bb c
dddd f
nowcoder

法1:使用sys

import sys

for line in sys.stdin:
    lists = line.split()
    lists.sort()
    print(' '.join(lists))

法2:使用内置函数

while True:
    try:
        mystr=input().strip().split()
        mystr.sort()
        print(' '.join(mystr))
    except EOFError:
        break

类型三:多行字符串,逗号分隔

输入:
多个测试用例,每个测试用例一行。
每行通过空格隔开,有n个字符,n<100
输出:对于每组用例输出一行排序后的字符串,用’,'隔开,无结尾空格

# eg:
# 输入
a,c,bb
f,dddd
nowcoder
# 输出
a,bb,c
dddd,f
nowcoder

法1:使用sys

# strip() 需要加上
import sys

for line in sys.stdin:
    lists = line.strip().split(',')
    lists.sort()
    print(','.join(lists))

法2:使用内置函数

while True:
    try:
        mystr=input().strip().split(',')
        mystr.sort()
        print(','.join(mystr))
    except EOFError:
        break

你可能感兴趣的:(python,python)