ccf总结1:Python oj输入方法
输入一个字
直接用input()读入保存为字符串格式,再用int强制转换
m = int(input())
输入一行多个字
用map函数对多个输入排版对应
x, y = map(int, input().split())
输入多行多个字
方法1:
用extend输入为一维列表
v=[]
for i in range(5): #输入五行
x,y=map(int,input().split()) #每行两个数字
v.extend((x,y))
输入:
4 5
7 -3
10 1
1 10
4 20输出:
>>> v
[4, 5, 7, -3, 10, 1, 1, 10, 4, 20]
方法2:
用append输入为二维数据
v=[]
for i in range(5): #输入五行
x,y=map(int,input().split()) #每行两个数字
v.append((x,y)) #把小括号换成中括号输出就是二维列表
输入:
4 5
7 -3
10 1
1 10
4 20输出:
>>> v
[(4, 5), (7, -3), (10, 1), (1, 10), (4, 20)]
方法3:
用列表替换x, y,一行输入多个字
v=[]
x=[]
for i in range(5):
x=list(map(int,input().split()))
v.append(x)
输入
4 5 7 -3 10 1
4 5 7 -3 10 1
4 5 7 -3 10 1
2 4 5 7 -3 10 1
1 4 5 7 -3 10 1输出
>>> v
[[4, 5, 7, -3, 10, 1], [4, 5, 7, -3, 10, 1], [4, 5, 7, -3, 10, 1], [2, 4, 5, 7, -3, 10, 1], [1, 4, 5, 7, -3, 10, 1]]
方法4:
调用sys库输入:有些博客[1]说输入容量大的用for循环调用input会超时,因此要调用系统输入一次性读取数据。
#用Ctrl+D再enter结束输入,我的Python 3.9版本在命令行不能结束输入。可以用方法1在本地做测试,在最后提交代码的时候再换成这个。
不是3.9版本的Python IdLE应该都能用Ctrl+D再enter结束输入。
import sys
v=list(map(int,sys.stdin.read().split()))
输入:对输入没有要求,输入多少都是一个一维列表,
参考方法1的输出
参考:[1]https://blog.csdn.net/weixin_44423317/article/details/108487201#comments_15852922