Python换行符怎么输入_Python中输入换行符的几种方式

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 就返回。要读多行,得用循环 + 终止条件(比如空行、特定关键词)。

  • 别用 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 输出靠谱得多。