python如何输入多行

Python输入多行文本有三种常用方法:三引号字符串适用于代码中预定义多行内容;input()循环读取适合用户交互,可设空行或关键词(如END)结束;读文件则用open()配合read()或readlines();粘贴多行可用sys.stdin.read().strip()捕获EOF。

Python 中输入多行文本,常用方法有三种:用换行符 \n 拼接、三引号字符串字面量、以及循环读取直到特定结束标记。关键看你是写死多行内容,还是运行时由用户逐行输入。

用三引号直接写多行字符串

适合在代码里预定义多行文本(比如帮助说明、SQL 查询、模板):

text = """第一行
第二行
第三行"""
print(text)

注意:三引号("""''')保留内部所有换行和缩进,如果不想缩进影响输出,可用括号 + 字符串拼接或 textwrap.dedent() 清理。

立即学习“Python免费学习笔记(深入)”;

input() 循环读入多行(用户交互场景)

当需要用户手动输入多行,常见做法是设定一个结束条件,比如空行或输入 quit

  • 按空行结束:

lines = []
while True:
line = input()
if line == "":
break
lines.append(line)
text = "\n".join(lines)

  • 按特定关键词结束(如 END):

lines = []
while (line := input()) != "END":
lines.append(line)
text = "\n".join(lines)

读取文件中的多行内容

如果多行数据存在文件里,直接用 open() 读取更自然:

with open("data.txt", "r", encoding="utf-8") as f:
text = f.read() # 保留全部换行
# 或 lines = f.readlines() # 返回带\n的行列表

注意:f.read() 一次性读整个文件;f.readlines() 返回每行含末尾 \n 的列表;list(f) 效果类似。

小技巧:处理粘贴的多行输入(不换行就结束)

终端中有时用户会一次性粘贴多行,但 input() 默认只读一行。这时可改用:

  • sys.stdin.read().strip() —— 读取所有标准输入直到 EOF(Linux/macOS Ctrl+D,Windows Ctrl+Z)
  • 配合 try/except 捕获 EOFError 更健壮

import sys
try:
text = sys.stdin.read().strip()
except EOFError:
text = ""