使用input()读取多行

2024-09-29 18:37:15 发布

您现在位置:Python中文网/ 问答频道 /正文

样本输入1:

1 10
100 200
201 210
900 1000

样本输入2:

^{pr2}$

所以我不知道输入有多少行,我想把输入组织成一个2d数组。一次提交所有行(没有多个input())。在

编辑: 抱歉,我的I/O很糟糕。以下是我想要的:

nums = []
for i in range(0,endofinput):
    nums.append(list(map(int, input().split())))
print(nums)

问题是,我不知道会有多少投入。我不能控制输入,所以我不能只做一个while循环来检测下一个输入是什么时候。有没有办法知道我将得到多少行输入?在


Tags: in编辑mapforinputrange数组list
2条回答

你对输入的格式有多大的控制权?(是否来自外部自动化系统?从用户那里?另一个剧本?)在

假设您有某种控制措施,您可以实现一个sentinel值,例如一个空行,来检测输入的结尾。那么

l = []
data = input(':')
while data:
    l.append(list(map(int, data.split())))

将以空格分隔的整数行读入整数列表,直到读取空行为止。在

通常,input()只接受单行。我知道传递多行的唯一方法是粘贴复制的文本块。程序处理这些行,就好像它们是一行一行地输入的。告诉您的程序输入已经结束的唯一方法是输入一些停止代码,或者更时髦的是,按Ctrl-D,经典的文件结束标记。在

print("Enter multiple lines, press Ctrl-D after last line:")
Array=[]
while True:
    try:
        Array.append([int(a) for a in input().split(" ")])
    except EOFError:
        print(len(Array),"lines of data have been received.")
        break

粘贴四行并按[Enter]和[Ctrl-D]后的结果:

^{pr2}$

相关问题 更多 >

    热门问题