You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python 3.6字面量字符串内容规则咨询及教程求荐

嘿,我来帮你把Python 3.6的字面量格式化字符串(也就是大家常说的f-string)的用法讲明白,先从你给出的例子入手拆解,再给你一套通俗易懂的入门指南!

先解析你提到的例子

你看到的代码:

value = 1234
print(f'input={value:#06x}')  # 输出:input=0x04d2

这里的f'...'就是f-string,里面的{value:#06x}是带格式说明符的变量插入,拆解每个部分:

  • value:要插入的变量,值是1234
  • #:显示进制前缀(十六进制就是0x,八进制是0o,二进制是0b)
  • 06:指定输出的总宽度为6位,不足的地方用0补全
  • x:把整数转换成小写十六进制(换成X就是大写十六进制)

计算一下:1234的十六进制是4d2,加上0x前缀后是0x4d2,总宽度要6位,所以在4d2前面补一个0,就变成了0x04d2,和输出结果一致。


通俗易懂的f-string入门教程

一、基础用法:直接插入变量

这是f-string最核心也最简单的用法,只要把变量放进{}里就行,不用再像str.format()那样写占位符:

username = "Bob"
score = 95
print(f"玩家{username}的本次得分是{score}分")
# 输出:玩家Bob的本次得分是95分

二、格式说明符:定制输出样式

这部分就是你例子里用到的进阶功能,格式是{变量名:格式符},常用的场景整理如下:

1. 数字格式化

  • 进制转换:
    • d:十进制整数(默认,可省略),例:f"{100:d}" → "100"
    • x/X:十六进制(小写/大写),加#显示前缀,例:f"{100:#X}" → "0X64"
    • o:八进制,加#显示0o前缀,例:f"{100:#o}" → "0o144"
    • b:二进制,加#显示0b前缀,例:f"{100:#b}" → "0b1100100"
  • 宽度与补位:
    • 0Nd:总宽度N位,不足补0,例:f"{123:06d}" → "000123"
    • Nd:总宽度N位,不足补空格(右对齐),例:f"{123:6d}" → " 123"
    • <Nd:左对齐,例:f"{123:<6d}" → "123 "
  • 浮点数与百分比:
    • .Nf:保留N位小数,例:f"{3.14159:.2f}" → "3.14"
    • .N%:转换成百分比并保留N位小数,例:f"{0.75:.0%}" → "75%"

2. 字符串格式化

  • 对齐:
    • <N:左对齐,总宽度N位,例:f"{'hi':<5}" → "hi "
    • >N:右对齐,例:f"{'hi':>5}" → " hi"
    • ^N:居中对齐,例:f"{'hi':^5}" → " hi "
  • 截断:
    • .N:只显示前N个字符,例:f"{'hello world':.5}" → "hello"

三、进阶玩法:直接用表达式和函数

f-string里不仅能放变量,还能直接写表达式甚至调用函数,不用提前把结果赋值给变量:

# 算术表达式
print(f"10的平方是{10 ** 2}")  # 输出:10的平方是100
# 条件表达式
is_adult = True
print(f"你是{'成年人' if is_adult else '未成年人'}")  # 输出:你是成年人
# 函数调用
def capitalize_name(name):
    return name.title()
print(f"格式化后的名字:{capitalize_name('alice')}")  # 输出:格式化后的名字:Alice

四、特殊字符处理

如果要在f-string里显示{或},需要连续写两个对应的符号来转义:

print(f"f-string用{{}}包裹变量,比如{{name}}")
# 输出:f-string用{}包裹变量,比如{name}

内容的提问来源于stack exchange,提问作者Yuval Meshorer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:26:41