# 字符串格式化 变量&字符串 python 篇 *python 技术栏* 本文讲解了有关在 `python` 语言中,变量与字符串之间的 拼接 和 格式化 以及 插入 等操作。 ## 目录 [TOC] ## 字符串格式化 - {} & format 在任何编程语言中,输出的字符串中往往都是带有一些数值的,例如“今天 28 度”,这样的字符串中的 “28” 难道是开发人员手写的吗?如果要是手写的话,那么实数是无限的,数值类型也是繁多的,难道每个开发人员都要写 “今天 0 度” “今天 1 度” “今天 xx 度” 吗? 因此编程语言中的变量,起到了这个作用! ### 基本数据类型格式化 `format`函数是一个非常实用的函数,它支持多种格式化操作符,用于控制值的显示方式。下面是一些常用的操作符: `{:d}`:用于格式化整数。 `{:f}`:用于格式化浮点数。 `{:s}`:用于格式化字符串。 `{:o}`:用于格式化八进制的数字。 `{:b}`:用于格式化二进制数字 #### 通用格式化 ##### 任何类型自动基础格式化 这样的格式化操作是非常简单的一种手段,它可以让我们的格式化变量的类型省略掉,下面是一个示例~ ``` number = 1024.123 # 使用格式化操作 将 number 的数值放到一句话中,实现字符串中带有变量的输出 str1 = "这里是一个字符串,我们定义的 number 的值是 【{}】".format(number) # 打印一下 str1 print(str1) ``` #### 整数格式化 ##### 基本使用演示 > 整数格式化,简单来说是一种将整数插入到某句话中的某个部分的手段,下面是一个示例,在示例中,我们将 number 的数值插入到了字符串中! ``` number = 1024 # 使用格式化操作 将 number 的数值放到一句话中,实现字符串中带有变量的输出 str1 = "这里是一个字符串,我们定义的 number 的值是 【{:d}】".format(number) # 打印一下 str1 print(str1) ``` #### 浮点格式化 ##### 基本使用演示 > 浮点格式化,简单来说是一种将浮点插入到某句话中的某个部分的手段,下面是一个示例,在示例中,我们将 number 的数值插入到了字符串中! ``` number = 1024.123 # 使用格式化操作 将 number 的数值放到一句话中,实现字符串中带有变量的输出 str1 = "这里是一个字符串,我们定义的 number 的值是 【{:f}】".format(number) # 打印一下 str1 print(str1) ``` ##### 精确小数位 格式化 经过上面的例子我们知道 针对浮点格式化的操作打印出来的小数位是 6,倘若我们期望打印出来的小数位是 2 只需要使用 `:.小数位f` 的方式进行格式化就可以啦,下面是一个例子! ``` number = 1024.123 # 使用格式化操作 将 number 的数值放到一句话中,实现字符串中带有变量的输出 str1 = "这里是一个字符串,我们定义的 number 的值是 【{:.2f}】".format(number) # 打印一下 str1 print(str1) ``` ### 前缀格式化 #### 基础使用示例 前缀格式化通常情况下是用来进行数值和变量对其的,当我们格式化的变量长度不一样的时候,我们的格式会乱掉,在 python 中,就可以使用前缀格式化的操作来让我们的数值对齐,语法是 `:<变量被格式化之后的整体长度><变量的名称>`,在语法中可以看到它的格式相较于 [基本数据类型格式化](#基本数据类型格式化) 而言,多出来了一个“整体长度”,接下来就是一个示例~ ``` print("这里是一个字符串,我们定义的 number 的值是 【{:10d}】".format(1024)) print("这里是一个字符串,我们定义的 number 的值是 【{:10d}】".format(102400)) print("这里是一个字符串,我们定义的 number 的值是 【{:10d}】".format(10240000)) print("这里是一个字符串,我们定义的 number 的值是 【{:10d}】".format(1024000000)) ``` 下面的图展示的就是格式化`:10d`与非格式化`:d`的情况的区别。   #### 自定义前缀字符 当我们在使用前缀操作的时候,前缀的字符默认是 ` ` 字符,倘若我们期望使用其它的字符来进行前缀的格式化操作,下面是一个示例~ ``` # 使用 format 将字符串变为带有前缀且格式化过的字符 str1 = "|{:15,d}|".format(1024000000) str2 = "|{:15,d}|".format(1024) str3 = "|{:15,d}|".format(102400) # 然后直接将 空格替换为 ’-‘ str1 = str1.replace(' ', '-') str2 = str2.replace(' ', '-') str3 = str3.replace(' ', '-') # 将三个字符串打印出来 print(str1) print(str2) print(str3) ``` ### 千位分隔符 千位分隔符操作属于一个特性,它的语法格式为 `:<变量被格式化之后的整体长度>,<变量的名称>` 相较于 [前缀格式化](###前缀格式化) 章节中多了一个 ",",逗号代表的就是千位分隔符。 ``` print("|{:15,d}|".format(1024)) print("|{:15,d}|".format(102400)) print("|{:15,d}|".format(10240000)) print("|{:15,d}|".format(1024000000)) ```  ### 总结 在 python 中 针对字符串和变量的交叉使用的操作有很多,整体上而言,格式化字符串中的语法可以总结为 `:{整体宽度[,对齐方式][,精度][,类型码]}`,其中对齐方式(如 `<` 左对齐、`>` 右对齐、`^` 居中对齐)和精度(对于浮点数表示小数点后的位数)是可选的。在我们文章的例子中,没有明确指定对齐方式,默认为左对齐。 ## 字符串拼接 - 语法糖 如果我们不期望使用上面的操作来进行占位,而是拼接字符串,在这里您将会学习到相关的知识~ ### 加号拼接 ``` print("这里是第一个字符串," + "这里是第二个字符串。") ``` ### 乘号填充 ``` print('+' * 20) ``` ### 插值表达式 ``` print(f"this is string data 可以在大括号里写变量 {1024}") print(f"还可以在大括号里面写format 的标记 {1024.123:.2f}") ``` ------ ***操作记录*** 作者:[python](https://www.lingyuzhao.top//index.html?search=33 "python") 操作时间:2024-05-10 17:17:09 星期五 事件描述备注:保存/发布 中国 天津 [](如果不需要此记录可以手动删除,每次保存都会自动的追加记录) ------ ***操作记录*** 作者:[python](https://www.lingyuzhao.top//index.html?search=33 "python") 操作时间:2024-05-11 17:40:55 星期六 事件描述备注:保存/发布 中国 天津 [](如果不需要此记录可以手动删除,每次保存都会自动的追加记录)