当前位置:首页>python>Python教程:3种格式符(str.format()+f-string+%)的常见用法

Python教程:3种格式符(str.format()+f-string+%)的常见用法

  • 2026-10-11 08:27:55
Python教程:3种格式符(str.format()+f-string+%)的常见用法

Python,速成心法

敲代码,查资料,问Ai

练习,探索,总结,优化

★★★★★博文创作不易,源码代码的过程中,如有疑问的地方,欢迎大家指正留言交流。喜欢的老铁可以多多点赞+收藏分享+置顶,小红牛在此表示感谢。★★★★★

Python打包教程07:还不会用--add-data参数,添加资源文件吗?

Python打包教程04:UPX安装与使用(减小.exe体积)

Python打包教程03:PyInstaller命令使用指南

Python查询CPU+硬盘+网卡MAC +主板+BIOS序列号

Python教程:PyCharm安装过程中遇到的中英文对照表

和Python编程相关的,中英文对照词汇表

2025年Python和pycharm安装下载教程

Python教程110:单线程和多线程源码演示(threading)

Python教程108:针对面向对象Class类知识要点,源码示例再演示。

Python入门教程04:流程控制语句(if+for+continue等)

Python入门教程10:datetime模块的示例用法

Python入门教程02:常用的内置函数示例演示

200条Python零基础自学指南

Python零基础教程:小白入门自学知识点大纲

Python教程:Py模块导入方法详解

Python零基础系列视频教程(1-10集)

Python零基础系列视频教程(11-20集)

直接运行脚本,会弹出一个窗口,其中以只读滚动文本框的形式展示了三种格式化方式的完整示例。
示例涵盖了:
标点符号:千位分隔符(,)、小数点、百分号(% 字面量)。
运算符:算术运算(*)、比较(>)、三元表达式(if else)、成员测试(in)。
格式说明符:对齐(> < ^)、补零(0)、正负号(+)。
一、f-string(Python 3.6+)—— 最强最直观,f-string 允许在 { } 内直接写任意 Python 表达式(包括运算符、函数调用等),标点符号则通过格式说明符(以 : 开头)控制。
# -*- coding: utf-8 -*-# @Author : 小红牛# 微信公众号:wdPython# 示例数据price = 1234.5678quantity = 3discount = 0.15tax_rate = 0.08completed = 0.78# 1. 标点符号:千位分隔符 + 小数点精度print(f"总价:¥{price * quantity:,.2f}")   # 输出:¥3,703.70# 2. 标点:百分号字面量(用 %% 或直接写 %,但注意 f-string 中 % 不是格式化符)print(f"完成率:{completed:.1%}")          # 输出:78.0%  (自动乘以100并加%)print(f"折扣:{discount:.0%}")            # 输出:15%# 3. 运算符:算术运算print(f"减免金额:{price * quantity * discount:.2f} 元")# 输出:减免金额:555.56 元# 4. 运算符:比较 / 逻辑运算(结果为布尔值)is_expensive = price > 1000print(f"是否昂贵:{is_expensive}")# 输出:是否昂贵:True# 5. 运算符:三元表达式(条件运算)status = "高" if price > 500 else "低"print(f"价格水平:{status}")  # 高# 或者直接写进 f-stringprint(f"价格水平:{'高'if price > 500else'低'}")  # 高# 6. 运算符:成员测试 + 函数调用colors = ["红", "绿", "蓝"]selected = "绿"print(f"选中颜色 {'在列表中'if selected in colors else'不在列表中'}")# 输出:选中颜色 在列表中# 7. 格式说明符中的标点:填充对齐、正负号等num = -42print(f"对齐:|{num:>10}|{num:<10}|{num:^10}|")   # 对齐:|       -42|-42       |   -42    |print(f"正负号:{num:+}{abs(num):+}")   # 正负号:-42  +42print(f"补零:{42:05d}")                  # 00042
二、str.format() 方法:用法类似,但表达式需要放在 format() 参数中,占位符内只能包含索引/字段名和格式说明符,不能写复杂表达式。
price = 1234.5678quantity = 3discount = 0.15# 标点符号print("总价:¥{:.2f}".format(price * quantity))          # 输出 ¥3703.70print("总价:¥{:,}".format(price * quantity))            # Python 3.6+ 支持千位符# 输出:总价:¥3,703.7037 → 没有控制小数位数,需要结合: 总价:¥{:,.2f}print("总价:¥{:,.2f}".format(price * quantity))         # ¥3,703.70# 百分号print("完成率:{:.1%}".format(0.78))                     # 78.0%# 运算符(在参数中计算,不能在 {} 内写)print("减免金额:{:.2f} 元".format(price * quantity * discount))  # 减免金额:555.56 元# 对齐、补零等print("|{:>10}|{:<10}|{:^10}|".format(-42, -42, -42)) # |       -42|-42       |   -42    |

↓ 综合示例源码如下 ↓

# -*- coding: utf-8 -*-# @Author : 小红牛# 微信公众号:wdPython"""常用格式符说明(C / Python 风格)================================本脚本演示 Python 中支持的 C 风格 printf 格式符(% 操作符)以及Python 独有的 format() / f-string 格式说明。修正说明:所有 % 格式化语句中,非格式符的百分号均已转义(%%),确保格式符数量与提供的参数个数严格匹配。"""def c_style_format_demo():    """C 风格 % 格式化演示(Python 支持的部分)"""    print("=" * 50)    print("【C 风格 % 格式化】")    print("=" * 50)    # ----- 整数类 -----    print("\n--- 整数类 ---")    print("%d 有符号十进制 : %d" % (-123, -123))          # -123    print("%i 同 %%d       : %i" % (123, 123))            # 123    print("%u 无符号十进制 : %u" % (255, 255))            # 255    print("%o 无符号八进制 : %o" % (255, 255))            # 377    print("%x 十六进制小写 : %x" % (255, 255))            # ff    print("%X 十六进制大写 : %X" % (255, 255))            # FF    # ----- 浮点数与科学计数法 -----    print("\n--- 浮点数与科学计数法 ---")    print("%%.2f 定点小数   : %.2f" % 3.1416)            # 3.14    # %F 在 Python 中与 %f 相同,不作区分    print("%%.2e 科学小写 e : %.2e" % 1234.56)           # 1.23e+03    print("%%.2E 科学大写 E : %.2E" % 1234.56)           # 1.23E+03    # 修正:将第一个 %g 转义为 %%g,使其成为文字,仅保留第二个 %g 作为格式符    print("%%g 自动选短形式 : %g" % 0.000123)            # 0.000123    print("%%G 自动选短形式 : %G" % 0.000123)            # 0.000123    # %a / %A (十六进制浮点) Python 不支持    # ----- 字符与字符串 -----    print("\n--- 字符与字符串 ---")    print("%c 单个字符 (ASCII) : %c" % (65, 65))         # A    print("%s 字符串           : %s" % ("Hi", "Hi"))     # Hi    # ----- 修饰符 -----    print("\n--- 修饰符示例 ---")    print("%%-5d 左对齐宽度5 : '%-5d'" % 12)            # '12   '    print("%%+d 显示正号     : '%+d'" % 12)             # '+12'    print("%% d 空格占位正数 : '% d'" % 12)             # ' 12'    print("%%05d 零填充宽度5 : '%05d'" % 12)            # '00012'    print("%%5d 最小宽度5    : '%5d'" % 12)             # '   12'    print("%%.2f 精度2小数   : '%.2f'" % 3.1416)        # '3.14'    # 动态宽度/精度:三个格式符(*、*、f),对应三个参数    print("%%*.*f 动态宽/精度: '%*.*f'" % (5, 2, 3.1416))  # ' 3.14'    print("\n常用组合:")    print("%%-10s : '%-10s'" % "Hi")                    # 'Hi        '    print("%%8.2f  : '%8.2f'" % 3.1416)                # '    3.14'    print("%%05X   : '%05X'" % 255)                    # '000FF'    print("%%+d    : '%+d'" % 12)                      # '+12'def python_format_demo():    """Python 的 format() 和 f-string 格式说明"""    print("\n" + "=" * 50)    print("【Python format() / f-string 格式说明】")    print("=" * 50)    # ----- 对齐与填充 -----    print("\n--- 对齐与宽度 ---")    print("{:<10} 左对齐 : '{:<10}'".format("Hi", "Hi"))      # 'Hi        '    print("{:>10} 右对齐 : '{:>10}'".format("Hi", "Hi"))      # '        Hi'    print("{:^10} 居中对齐: '{:^10}'".format("Hi", "Hi"))     # '    Hi    '    print("{:*^10} 填充*居中: '{:*^10}'".format("Hi", "Hi"))   # '****Hi****'    # ----- 数字格式化 -----    print("\n--- 数字格式化 ---")    print("{:.2f} 两位小数    : {:.2f}".format(3.1416, 3.1416))   # 3.14    print("{:.2%} 百分比格式  : {:.2%}".format(0.1234, 0.1234))   # 12.34%    print("{:b} 二进制       : {:b}".format(255, 255))             # 11111111    print("{:X} 十六进制大写 : {:X}".format(255, 255))             # FF    print("{:,} 千位分隔符   : {:,}".format(1234567, 1234567))     # 1,234,567    # ----- f-string 示例(Python 3.6+)-----    print("\n--- f-string 示例 ---")    name = "Alice"    score = 95.678    print(f"{name:>10} 得分 {score:.1f} 分")   # '     Alice 得分 95.7 分'    # ----- 综合示例 -----    print("\n--- 常用组合 ---")    val = 3.1415926    print(f"圆周率:{val:.2f} → 保留两位小数的浮点数")    print(f"百分比:{0.1234:.1%} → 百分号形式")    print(f"十六进制:{255:08X} → 宽度8,左侧补零的十六进制大写")if __name__ == "__main__":    c_style_format_demo()    python_format_demo()    print("\n" + "=" * 50)    print("提示:%p、%n、%a 等 C 特有格式符在 Python 中不支持。")    print("推荐使用 format() 或 f-string,功能更强大且可读性更好。")

完毕!!感谢您的收看

------★★历史博文集合★★------

Python入门篇  进阶篇  视频教程  Py安装

py项目Python模块 Python爬虫  Json

Xpath正则表达式SeleniumEtreeCss

Gui程序开发TkinterPyqt5 列表元组字典

数据可视化   matplotlib   词云图Pyecharts

海龟画图PandasBug处理电脑小知识

自动化脚本编程工具NumPy CSVWeb

Pygame  图像处理  机器学习数据库

最新文章

随机文章