快捷菜单
常用功能一站直达
更多功能请点顶栏「快捷菜单」
在 Python 里,三引号 ''' / """ 是原生支持的多行字符串语法,专门用来写跨越多行、包含换行/引号/特殊字符的文本,完全不会报错,这也是你刚才在 Shell 里报错的核心原因:Shell 没有三引号,Python 才有。
下面从头讲清楚用法,还结合你刚才的 Linux 命令场景举例。
Python 有两种三引号,功能完全一样:
'''多行内容'''"""多行内容"""核心特性:
\n' 或 ",不用转义 1# 双三引号
2s1 = """第一行
3第二行
4第三行
5 带缩进的行"""
6
7# 单三引号
8s2 = '''Hello
9World
10Python'''
11
12print(s1)
13print(s2)运行后会原样输出换行和缩进。

这是三引号最大的优势:
1# 字符串里有双引号,用三引号包裹,不用 \ 转义
2msg = """他说:"Python 三引号超好用" """
3
4# 字符串里有单引号
5sql = '''SELECT * FROM user WHERE name='test' '''
6
7
8# 打印
9print(msg)
10print(sql)
name=test)用 f-三引号 可以直接在多行字符串里插变量,完美对应你刚才的 Linux 命令场景:
1name = "test"
2
3# 多行 Linux 命令,直接嵌入变量
4cmd = f"""
5echo "Hello {name}"
6ls * | wc -l
7"""
8
9print(cmd)输出(完全保留格式+变量替换):
1echo "Hello test"
2ls * | wc -l这正是你一开始想实现的效果,Python 里完全没问题:
1# 存放多条 Linux 命令
2linux_cmd = """
3cd /root
4ls -l
5cat test.txt
6echo "done"
7"""
8
9# 存放多行 SQL
10sql = """
11SELECT id, name
12FROM user
13WHERE age > 18
14ORDER BY id DESC
15"""
16
17# 打印
18print(linux_cmd)
19print(sql)输出:
1cd /root
2ls -l
3cat test.txt
4echo "done"
5
6
7SELECT id, name
8FROM user
9WHERE age > 18
10ORDER BY id DESC三引号最经典的用途:给函数/类写注释
1def add(a, b):
2 """
3 计算两个数的和
4 参数:a, b 数字
5 返回:和
6 """
7 return a + b三引号开头/结尾容易多一个空行,用 .strip() 清理:
1name = "test"
2cmd = f"""
3echo "Hello {name}"
4ls * | wc -l
5""".strip()
6
7print(cmd)输出就没有首尾空行了:
1echo "Hello test"
2ls * | wc -l

''' / """ 三引号,Shell 不支持f"""...""" 可以直接嵌入变量\n结束。
日历 · 精选 · 友链 · 更多
如果内容对你有帮助,欢迎请我喝杯咖啡 ☕



One的公众号
爱折腾博客的小白