You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不输入空行的情况下读取未知行数的输入?

读取未知行数输入的Python解决方案

要读取未知行数的输入且无需空行终止,核心是捕获input()函数在输入结束时抛出的EOFError异常,以此来终止循环。

修正后的代码

a = []
b = []

while True:
    try:
        # 读取一行并去除首尾空白
        line = input().strip()
        # 可选:跳过空行(如果输入中可能存在空行的话)
        if not line:
            continue
        # 分割成两部分
        parts = line.split()
        # 将对应数据存入列表
        a.append(parts[0])
        b.append(int(parts[1]))
    except EOFError:
        # 输入结束,退出循环
        break

# 验证结果(可选)
print("存储字符的列表a:", a)
print("存储数字的列表b:", b)

原代码的问题说明

  1. 逻辑判断错误:if l[0] == ' '完全不成立,因为split()会自动分割空格,分割后的列表元素不可能是单个空格,而且第一行输入就会触发else分支直接跳出循环,根本无法读取数据。
  2. 未处理输入结束的情况:当输入全部读完时,input()会直接抛出EOFError,原代码没有捕获这个异常,会直接报错终止程序。

使用方式

  • 如果是从终端输入,输入完所有内容后,按Ctrl+D(Unix/Linux/macOS)或Ctrl+Z(Windows)即可结束输入。
  • 如果是从文件重定向输入(比如python your_script.py < input.txt),程序会自动读取完文件所有行后终止。

内容的提问来源于stack exchange,提问作者pythonno

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 18:42:07