如何读取隔行输入?Python输入处理问题咨询
问题解决
你的代码无法正常运行不是因为输入里的空格,而是循环内部重复使用了变量名n,覆盖了一开始读取的总数据行数,导致循环逻辑出错。
错误原因
第一行读取的n是总共有3组数据,但循环里n, m = map(int, input().split())会把每行第一个数重新赋值给n,比如第一次循环后n变成33,循环范围range(n)就变成range(33),后续输入数量不足就会触发报错。
修正后的代码
把循环内的变量名改成和外部的n不同的名字,比如a, b:
n = int(input()) for i in range(n): a, b = map(int, input().split()) # 可添加对a和b的处理逻辑,比如打印输出 print(a, b)
测试验证
用你给出的输入测试:
3 33 2 44 4 55 5
代码会正确读取3组数据,每组的两个数分别存入a和b,不会再出现变量覆盖的问题。
内容的提问来源于stack exchange,提问作者Jisoo Kim
相关产品推荐
相关产品推荐

