千家信息网

Python字符串怎么格式化

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍了Python字符串怎么格式化的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python字符串怎么格式化文章都会有所收获,下面我们一起来看看吧。什么是格式
千家信息网最后更新 2026年11月02日Python字符串怎么格式化

这篇文章主要介绍了Python字符串怎么格式化的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python字符串怎么格式化文章都会有所收获,下面我们一起来看看吧。

    什么是格式化?

    定义:一个固定字符串中有部分成员(元素)会根据变量的值的改变而改变的字符串,这就是字符串格式化。

    举一个生活中的小栗子:比如我们的书包,我们的书包是固定变的。但是我们可能每天会往书包里放入我们每天需要携带的不同物品。这里的书包就好比 "固定的字符串" ,而每天书包里方的不同物品就好比是 "会根据变量的值的改变而改变的字符串"。

    下面我们再结合代码示例更直观的理解什么是格式化字符串,示例如下:

    # 今天是 Date ,星期 Week # 这里的 Date ,我们换成 '2000年1月1日' ; Week 我们换成 '一'Date = '2000年1月1日'Week = '一'print('今天是 ' + str(Date) + ' 星期' + Week)# Date 与 Week 两个变量会随着值的改变输出今天的日期与星期几; 这个就是字符串的格式化。

    使用格式化的场景和目的

    • 发送邮件的时候

    • 发送短信的时候

    • APP推送新闻消息的时候

    • 对于重复性很多的信息,通过格式化的方式我们可以大大减少代码的书写量

    我们思考一下上面的这些场景,当我们处于上述场景的时候。可能接收的邮件、短信、新闻等信息的内容是一样的。但是它发送给很多不同的人,这里的我们只需要编辑一个统一的内容模板,然后进行格式化操作,只需要将接收人进行格式化的操作,就可以让不同的人接收到同样的内容。

    格式化的三种方式

    根据类型定义的格式化 - %s

    字符串格式化使用操作符 % 来实现, 示例 'my name is %s,my age is %s % ('neo', 18)'

    格式符: %s

    连接符:格式化字符串与格式符变量之间用一个 % 连接, % 两边各有一个空格

    附:当我们字符串中只有一个变量时,不需要使用元组进行包裹;超过一个时,就需要使用元组进行包裹。

    示例如下:

    info_01 = 'My name is %s , age is %s ' % ('Neo', 19)print(info_01)# >>> My name is Neo , age is 19info_02 = 'My name is %s , age is %s 'name_01 = 'Neo'age_01 = 18name_02 = 'Jack'age_02 = 17print(info_02 % (name_01, age_01))print(info_02 % (name_02, age_02))# >>> My name is Neo , age is 18# >>> My name is Jack , age is 17

    关于整数的输出

    • %o:oct 八进制

    • %d:dec 十进制

    • %x:hex 十六进制

    print("整数:%d,%d,%d" % (1, 2.2, 345))print("整数不足5位,左边补空格   %5d   " % 11)print("整数不足5位,左边补0     d   " % 11)print("整数不足5位,右边补空格  %-5d   " % 11, "end")print("八进制 %o" % 222)print("十六进制 %x" % 12)

    执行结果如下:

    >>> 整数:1,2,345
    >>> 整数不足5位,左边补空格 11
    >>> 整数不足5位,左边补0 00011
    >>> 整数不足5位,右边补空格 11 end
    >>> 八进制 336
    >>> 十六进制 c

    包含知识点:

    • 当你有多个参数需要格式化输出的时候,需要用元组 (1,2,3) ;注意不能用列表因为列表是可变的

    • 若传入的是浮点数如 2.2 ,最后输出的是2,只会取整不会四舍五入

    • 若传入了字符串 ‘2.2’ ,是会报错滴!

    关于浮点数的输出

    print("浮点数:%f,%f " % (1, 22.22))print("浮点数保留两位小数:%.2f  " % 22.222)print("浮点数保留两位小数,宽5位,不足补0:.5f " % 2.222)

    执行结果如下:

    # >>> 浮点数:1.000000,22.220000
    # >>> 浮点数保留两位小数:22.22
    # >>> 浮点数保留两位小数,宽5位,不足补0:02.22

    包含知识点:

    • 默认保留6位小数,可通过 .2f 这种形式指定小数位,2代表保留两位

    关于字符串的输出

    print("字符串:%s,%s,%s" % (1, 22.22, [1, 2]))print("字符串不足5位,左边补空格   %5s   " % '2')print("字符串不足5位,右边补空格   %-5s   " % '2', "end")print("字符串宽10位,截取两位      .2s " % "hello.world")# 执行结果如下:# >>> 字符串:1,22.22,[1, 2]# >>> 字符串不足5位,左边补空格       2   # >>> 字符串不足5位,右边补空格   2        end# >>> 字符串宽10位,截取两位              he

    包含知识点:

    • 可以传入任意类型的数据,譬如整数、浮点数、列表、元组甚至字典,他都会自动转成字符串类型

    字符串格式化函数 - format()

    format() 函数格式化字符串是目前最常用的一种格式化方式

    • string.format() 函数也可以用来格式化字符串

    • 使用 format() 函数的字符主体使用 {} 大括号来替代格式符

    • 用法是 string.format(data, data, data…)

    • 不带编号,即 {}

    • 带数字编号,可调换顺序,即 {1} 、 {2}

    • 带关键字,即{a} 、 {b}

    示例如下:

    print("今天是{},{}的{}岁生日会".format("2020年1月1日", "Neo", 18))print("今天是{0},{1}的{2}生日会".format("2020年1月1日", "Neo", 18))print("今天是{today},{name}的{age}生日会".format(today="2020年1月1日", name="Neo", age=18, hight="175"))print("今天是{name}的{key}生日会,他在尝试{}".format("喝酒", name="Neo", key=18))# 以下会报错#print("今天是{0}的{}生日会".format("Neo", 18))#print("今天是{name}的{key}生日会,他在尝试{}".format( name="Neo", key=18,"喝酒"))#执行结构如下:# >>> 今天是2020年1月1日,Neo的18岁生日会# >>> 今天是2020年1月1日,Neo的18生日会# >>> 今天是2020年1月1日,Neo的18生日会# >>> 今天是Neo的18生日会,他在尝试喝酒

    需要注意:

    • 当你只写了 {} 时,默认按传入的值的顺序读取

    • 当你写了数字编号 {1} ,则可以读取对应位置上的值,从0开始

    • 当你指定了关键字 {name} ,如果不指定 name=xxx ,则会报错

    • 当你指定了关键字,又只写了 {} 时,你传入带有关键字指定的值必须写在后面,类似函数(形参在前,实参在后)

    • {} 和 {1} 是不能共存的

    关于format()函数总结

    当用到format时,一个字符串里面的格式化输出只用一种方式,不要混合使用,容易出问题且没有必要

    format()函数 - 指定数据类型输出

    print("整数{:d}".format(123))print("浮点数{:5.2f}".format(123.19))print("字符串{:s}".format('123'))print("八进制{:o}".format(12))print("十六进制{:x}".format(13))# 执行结果如下# >>> 整数123# >>> 浮点数123.19# >>> 字符串123# >>> 八进制14# >>> 十六进制d

    知识点

    • 指定了 :s ,则只能传字符串值,如果传其他类型值不会自动转换

    • 当你不指定类型时,你传任何类型都能成功,如无特殊必要,可以不用指定类型

    • 如果要结合数字编号和关键字使用可以如下

    print("关键字 {num:d}".format(num=123))print("数字编号 {0:d},{1:s}".format(123, "123"))# 执行结果如下# >>> 关键字 123# >>> 数字编号 123,123

    format()函数 - 位数补齐

    print('默认左对齐,宽度为10,不足补空格:{:10}'.format("123"), "end")print('左对齐,宽度为10,不足补空格:{:<10}'.format("123"), "end")print('右对齐,宽度为10,不足补空格:{}{:>10}'.format("start", "123"))print('右对齐,宽度为10,取两位小数,不足补0:{:0>10.2f}'.format(22.22555))# 执行结果如下:# >>> 默认左对齐,宽度为10,不足补空格:       123 end# >>> 左对齐,宽度为10,不足补空格:123        end# >>> 右对齐,宽度为10,不足补空格:start       123# >>> 右对齐,宽度为10,取两位小数,不足补0:0000022.23

    知识点

    • 默认左对齐可以不用就加 <

    • 当你不指定数据类型时,传什么类型的值都能成功格式化输出

    format()函数 - 拓展

    print("总是显示符号:{:0>+8.2f},{:0>+8.2f}".format(3.14, -3.14))print("百分数:{:%} {:.2%}".format(3 / 7, 3 / 7))print("逗号分隔,一般用在金钱 {:,}".format(12345678)      # 执行结果如下:# >>> 总是显示符号:000+3.14,000-3.14# >>> 百分数:42.857143% 42.86%# >>> 逗号分隔,一般用在金钱 12,345,678

    知识dian

    • + 的意义在于,当我们输出的是正数也能看到符号

    • 百分数是真的百分数,不是单单加个 % ;譬如 0.25667 ,变成百分数就是 25.67%

    • , 固定隔三位数字;传入字符串会报错

    新格式化方法 :f-strings

    • 首先需要先定义一个变量

    • 在字符串主体前加一个 f 符号

    • 在需要格式化的位置使用 {变量名}

    示例如下:

    name = "Neo"age = 18message = f"Hello,{name}"print(message + "!")info = f"my name is {name}, and age is {age}"print(info + ".")# 执行结果如下:# >>> Hello,Neo!# >>> my name is Neo, and age is 18.

    关于"Python字符串怎么格式化"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"Python字符串怎么格式化"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

    字符 字符串 格式 空格 整数 点数 生日 生日会 类型 输出 函数 知识 小数 结果 关键 关键字 变量 宽度 数字 示例 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 重生之互联网科技帝国 互联网科技公司怎么样 远拓互联网科技 互联网科技的未来发展 深圳艾佳互联网科技 互联网公司会议桌创意科技软装饰 互联网科技实习生岗位职责 现代互联网科技股 互联网科技与管理 阿大互联网科技有限公司 成都互联网科技公司工作好不好 中国互联网十大科技股排名 中国科技创新与世界互联网大会 互联网科技和法律行业 深圳市罗太互联网科技有限公司 工业互联网科技创业 广州智享互联网科技 互联网金融金融科技 数字科技和互联网金融哪个好 互联网科技创业计划的风险分析 深圳齐家互联网科技 善班互联网科技有限公司 厦门比较好的科技互联网公司 互联网科技和信息 用友工业互联网科技发展 城市宝互联网科技有限公司 美国互联网科技公司 厦门江牛科技互联网 广州有谷有贝互联网科技有限公司 东营紫格互联网科技
    0