? 字符串格式化 变量&字符串 python 篇
本文讲解了有关在 `python` 语言中,变量与字符串之间的 拼接 和 格式化 以及 插入 等操作。
# 字符串格式化 变量&字符串 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 星期六
事件描述备注:保存/发布
中国 天津
[](如果不需要此记录可以手动删除,每次保存都会自动的追加记录)