Python中输入换行符本质是向字符串插入\n字符,可通过转义符\n、三引号多行字面量或循环读取拼接实现;写文件时newline参数控制\n是否被转换为系统换行符。
Python 中输入换行符,本质是往字符串里塞 \n ——不是按回车键,也不是用 input() 直接敲 Enter(那只会结束输入),而是靠转义字符、多行字面量或拼接方式主动构造。
\n 转义字符手动插入换行这是最直接、最可控的方式,适合拼接动态内容或写日志消息。
\n 在字符串中表示一个换行符,只占 1 个字符长度,但打印时会换行r""),\n 就失去换行意义,变成字面的反斜杠+n\r\n 才能被记事本正确识别为换行(但 Python 的 open(..., newline='') 默认已处理)msg = "第一行\n第二行\n第三行" print(msg) # 输出: # 第一行 # 第二行 # 第三行
""" 或 ''' 写多行字符串适合写大段带换行的文本,比如帮助说明、SQL 模板、HTML 片段。所有你在编辑器里敲的回车、缩进都会原样保留。
\n
textwrap.dedent() 去掉公共前缀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.writer,它内部已处理换行逻辑,别自己拼 \n
with open("out.txt", "w", newline="") as f:
f.write("line1\nline2\n") # 这里的 \n 就是字面 \n,不会被转义真正容易被忽略的是:换行符不是“显示效果”,而是字符串里的真实字符。调试时用 repr(s) 看一眼,比盯着 print 输出靠谱得多。