Python中输入换行符本质是向字符串插入\n字符,可通过转义符\n、三引号多行字面量或循环读取拼接实现;写文件时newline参数控制\n是否被转换为系统换行符。

Python 中输入换行符,本质是往字符串里塞 \n ——不是按回车键,也不是用 input() 直接敲 Enter(那只会结束输入),而是靠转义字符、多行字面量或拼接方式主动构造。
用 \n 转义字符手动插入换行
这是最直接、最可控的方式,适合拼接动态内容或写日志消息。
-
\n在字符串中表示一个换行符,只占 1 个字符长度,但打印时会换行 - 必须用双引号或单引号包裹,且不能写在字符串外;若用原始字符串(
r""),\n就失去换行意义,变成字面的反斜杠+n - Windows 下写文件时,有时需用
\r\n才能被记事本正确识别为换行(但 Python 的open(..., newline='')默认已处理)
msg = "第一行\n第二行\n第三行" print(msg) # 输出: # 第一行 # 第二行 # 第三行
用三引号 """ 或 ''' 写多行字符串
适合写大段带换行的文本,比如帮助说明、SQL 模板、HTML 片段。所有你在编辑器里敲的回车、缩进都会原样保留。
- 开头和结尾的引号必须成对且紧贴,中间换行会被自动转为
\n - 注意缩进:如果整段缩进了 4 个空格,那每行开头都会多出 4 个空格——可用
textwrap.dedent()去掉公共前缀 - 不能在三引号内插值(除非用 f-string 包裹整个三引号字符串)
sql = """SELECT id, name FROM users WHERE status = 'active';""" print(repr(sql)) # 查看真实内容:'SELECT id, name\nFROM users\nWHERE status = \'active\';'
从用户输入中读取多行内容(input() 不行,得自己循环)
input() 每次只读一行,Enter 就返回。要读多行,得用循环 + 终止条件(比如空行、特定关键词)。
立即学习“Python免费学习笔记(深入)”;
- 别用
input().split('\n')——input()根本不会把换行传进来 - 常见终止方式:
while True:+line = input()+if not line: break - 读入的每行末尾自带
\n?不,input()默认会去掉末尾换行符;你要拼接时得手动加+\n
lines = []
while True:
line = input("输入一行(空行结束):")
if line == "":
break
lines.append(line)
full_text = "\n".join(lines)写文件时换行要注意 newline 参数
用 open(..., 'w') 写入含 \n 的字符串时,Python 默认会把 \n 自动转成系统换行符(Windows → \r\n,Linux/macOS → \n)。想禁用这个转换,得显式指定 newline=''。
- 不加
newline:安全,兼容性好,推荐日常使用 - 加
newline='':当你需要精确控制换行符(比如生成 HTTP 响应、协议报文)时才用 - 写 CSV 文件务必用
csv.writer,它内部已处理换行逻辑,别自己拼\n
with open("out.txt", "w", newline="") as f:
f.write("line1\nline2\n") # 这里的 \n 就是字面 \n,不会被转义真正容易被忽略的是:换行符不是“显示效果”,而是字符串里的真实字符。调试时用 repr(s) 看一眼,比盯着 print 输出靠谱得多。










