米游社 · 大别野

f在Python中的用法

来自版块: 科技
0
7
0
文章发表:03-23

在 Python 中,字母

"f" 放在字符串前面,就创建了一个 f-string(格式化字符串字面值)。这是 Python 3.6 引入的、最简洁直观的字符串格式化方法。


简单说,

"f" 让你能在字符串里直接嵌入变量和表达式,用大括号

"{}" 包起来就行。


一、基本用法(一看就懂)


对比一下新旧方法,就知道 f-string 多方便:


name = "小明"

age = 20


# 1. 老方法:使用 % 格式化(类似C语言)

message1 = "我叫%s,今年%d岁" % (name, age)


# 2. 老方法:使用 .format()

message2 = "我叫{},今年{}岁".format(name, age)


# 3. 新方法:f-string(最直观!)

message3 = f"我叫{name},今年{age}岁"


print(message3) # 输出:我叫小明,今年20岁


✅ f-string 的优点:直接把变量名写在大括号里,不用数位置,代码更清晰!


二、

"{}" 里能放什么?


几乎任何有效的 Python 表达式都可以放在

"{}" 里:


1. 变量


price = 19.99

print(f"价格:{price}元") # 输出:价格:19.99元


2. 运算表达式


x = 10

y = 3

print(f"{x} + {y} = {x + y}") # 输出:10 + 3 = 13

print(f"{x} 的平方是 {x**2}") # 输出:10 的平方是 100


3. 调用函数/方法


name = "Alice"

print(f"名字大写:{name.upper()}") # 输出:名字大写:ALICE

print(f"长度:{len(name)}") # 输出:长度:5


4. 访问对象属性/字典/列表


person = {"name": "张三", "age": 25}

print(f"姓名:{person['name']}") # 输出:姓名:张三


items = [1, 2, 3]

print(f"第一个元素:{items[0]}") # 输出:第一个元素:1


5. 甚至用 lambda 表达式


func = lambda x: x * 2

print(f"结果:{func(5)}") # 输出:结果:10


三、高级格式控制(在

"{}" 内加

":")


在

"{}" 里用冒号

":" 可以控制显示的格式。


1. 数字格式


num = 3.1415926


# 保留2位小数

print(f"π ≈ {num:.2f}") # 输出:π ≈ 3.14


# 显示为百分比(保留1位小数)

score = 0.856

print(f"正确率:{score:.1%}") # 输出:正确率:85.6%


# 千分位分隔

big_num = 1000000

print(f"金额:{big_num:,}") # 输出:金额:1,000,000


2. 对齐与填充


text = "Hello"


# 左对齐,总宽度10,用-填充

print(f"|{text:<10}|") # 输出:|Hello |


# 右对齐,总宽度10,用*填充

print(f"|{text:>10}|") # 输出:| Hello|


# 居中对齐

print(f"|{text:^10}|") # 输出:| Hello |


3. 日期格式


from datetime import datetime

now = datetime.now()


print(f"现在时间:{now:%Y-%m-%d %H:%M:%S}")

# 输出:现在时间:2026-03-24 14:30:00


四、特殊技巧


1. 转义大括号


如果想显示 literal 的大括号,用双大括号:


print(f"{{这是一个大括号}}") # 输出:{这是一个大括号}

print(f"变量{{name}}的值是{{{name}}}") # 输出:变量{name}的值是{小明}


2. 多行 f-string


name = "李四"

age = 30

hobby = "篮球"


message = f"""

个人信息:

姓名:{name}

年龄:{age}

爱好:{hobby}

"""

print(message)


3. 在表达式中使用引号


# 如果字符串本身有引号,用不同类型的引号包裹

print(f'他说:"你好,{name}!"')

# 或者用反斜杠转义

print(f"他说:\"你好,{name}!\"")


五、注意事项


1. Python 版本:f-string 需要 Python 3.6+,如果你在用老版本,就用

".format()" 方法。

2.

"f" 必须紧挨着引号:

# 正确

f"字符串"

F"字符串" # 大写F也可以


# 错误

f "字符串" # 不能有空格

3. 性能:f-string 通常比

"%" 和

".format()" 更快,因为它在运行时直接计算。


六、一个实用例子


# 计算购物小票

items = [

{"name": "苹果", "price": 8.5, "quantity": 2},

{"name": "香蕉", "price": 3.2, "quantity": 5},

{"name": "牛奶", "price": 12.0, "quantity": 1},

]


total = 0

print("购物清单:")

print("-" * 30)

for item in items:

subtotal = item["price"] * item["quantity"]

total += subtotal

print(f"{item['name']:8} 单价:{item['price']:5.2f} × {item['quantity']} = {subtotal:6.2f}元")


print("-" * 30)

print(f"总计:{total:7.2f}元")

print(f"实付:{total*0.9:7.2f}元(9折后)")


输出效果:


购物清单:

------------------------------

苹果 单价: 8.50 × 2 = 17.00元

香蕉 单价: 3.20 × 5 = 16.00元

牛奶 单价:12.00 × 1 = 12.00元

------------------------------

总计: 45.00元

实付: 40.50元(9折后)


一句话总结:


在字符串前加

"f",然后在

"{}" 里写任意变量或表达式,Python 会自动替换为对应的值。 这是 Python 中最推荐、最清晰的字符串格式化方法!

已开启创作声明,允许规范转载
7
0
看帖是喜欢,评论才是真爱:
0 / 1000
  • 全部评论
  • 只看楼主
排序:最早
0
0
7
扫码下载
米游社App