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

Python中如何将多行输入存入列表?无标识时如何判断输入结束?

在Python中处理多行输入并存入列表的方法

嘿,这个问题我之前帮不少开发者解决过,刚好能给你捋清楚怎么操作~

方法一:循环读取+异常捕获(适合交互式输入)

如果是让用户在终端里逐行输入,我们可以用input()循环读取,同时捕获EOF信号来判断输入结束,也可以约定空行作为结束标识,代码示例如下:

lines = []
print("请输入内容,结束时可直接按回车输入空行,或按Ctrl+D(Unix/macOS)/Ctrl+Z(Windows):")
try:
    while True:
        line = input().strip()  # 可选:去掉首尾空白字符,根据需求调整
        # 两种结束条件选其一即可
        if not line:  # 空行结束
            break
        lines.append(line)
except EOFError:
    # 用户按下结束快捷键时触发这个异常,直接退出循环
    pass

print("\n你输入的内容已存入列表:")
print(lines)

这个方法很灵活,你可以根据需求调整结束条件——比如如果不想用空行,就删掉if not line: break这部分,只保留EOF异常捕获就行。

方法二:一次性读取所有行(简洁高效)

如果不需要逐行处理,只是想一次性把所有输入都存入列表,用sys.stdin会更省心:

import sys

# 读取所有输入直到EOF,按换行分割成列表(自动去掉换行符)
lines = sys.stdin.read().splitlines()

print("存入列表的内容:")
print(lines)

这种方式代码更短,适合脚本批量读取输入的场景,比如从管道或者文件输入内容的时候也能用。

无特定标识时,怎么判断输入结束?

如果没有提前约定结束标识,通常有两种可靠的方式:

  • 依赖系统EOF信号:在Unix/macOS系统中,用户按下Ctrl+D;Windows系统按下Ctrl+Z再回车,程序会捕获到EOFError,这时就知道输入已经结束了。
  • 约定空行作为结束:这是对用户更友好的方式——告诉用户输入完最后一行后,直接按回车输入一个空行,程序检测到空行就停止读取,不用记系统快捷键。

不同开发环境里的EOF触发可能略有差异,比如PyCharm这类IDE里,按下Ctrl+D也能触发EOF信号,不用担心兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:04:50