140 lines
6.8 KiB
Markdown
140 lines
6.8 KiB
Markdown
### 占位符
|
||
|
||
| 符 号 | 描述 |
|
||
| :----: | :----------------------------------: |
|
||
| `%c` | 格式化字符及其ASCII码 |
|
||
| ` %s` | 格式化字符串 |
|
||
| `%d` | 格式化整型 |
|
||
| `%u` | 格式化无符号整型 |
|
||
| ` %o` | 格式化无符号八进制数 |
|
||
| `%x` | 格式化无符号十六进制数 |
|
||
| `%X` | 格式化无符号十六进制数(大写) |
|
||
| ` %f` | 格式化浮点数字,可指定小数点后的精度 |
|
||
| ` %e` | 用科学计数法格式化浮点数 |
|
||
| `%E` | 作用同`%e`,用科学计数法格式化浮点数 |
|
||
| `%g` | `%f`和`%e`的简写 |
|
||
| `%G` | `%f `和` %E` 的简写 |
|
||
| `%p` | 用十六进制数格式化变量的地址 |
|
||
|
||
### 格式化辅助指令
|
||
|
||
| 符号 | 功能 |
|
||
| :---: | :----------------------------------------------------------: |
|
||
| * | 定义宽度或者小数点精度 |
|
||
| - | 用做左对齐 |
|
||
| + | 在正数前面显示加号( + ) |
|
||
| <sp> | 在正数前面显示空格 |
|
||
| # | 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X') |
|
||
| 0 | 显示的数字前面填充'0'而不是默认的空格 |
|
||
| % | '%%'输出一个单一的'%' |
|
||
| (var) | 映射变量(字典参数) |
|
||
| m.n. | m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |
|
||
|
||
|
||
|
||
### str.format
|
||
|
||
- 通过 {} 和 : 来代替以前的 %
|
||
- 用大括号来转义大括号
|
||
|
||
```python
|
||
>>> print ("{} 对应的位置是 {{0}}".format("school"))
|
||
school 对应的位置是 {0}
|
||
>>>
|
||
```
|
||
|
||
- format 函数可以接受不限个参数,位置可以不按顺序
|
||
|
||
```python
|
||
>>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序
|
||
'hello world'
|
||
>>> "{0} {1}".format("hello", "world") # 设置指定位置
|
||
'hello world'
|
||
>>> "{1} {0} {1}".format("hello", "world") # 设置指定位置
|
||
'world hello world'
|
||
```
|
||
|
||
- 为format设置参数
|
||
|
||
```python
|
||
#!/usr/bin/python
|
||
# -*- coding: UTF-8 -*-
|
||
print("网站名:{name}, 地址 {url}".format(name="w3cschool教程", url="www.w3cschool.cn"))
|
||
# 通过字典设置参数
|
||
site = {"name": "w3cschool教程", "url": "www.w3cschool.cn"}
|
||
print("网站名:{name}, 地址 {url}".format(**site))
|
||
site = {"name": "w3cschool教程", "url": "www.w3cschool.cn"}
|
||
print("网站名:{0[name]}, 地址 {0[url]}".format(site))
|
||
# 通过列表索引设置参数
|
||
my_list = ['w3cschool教程', 'www.w3cschool.cn']
|
||
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必须的
|
||
```
|
||
|
||
- 向str.format传递对象,利用对象的属性进行格式化
|
||
|
||
```python
|
||
#!/usr/bin/python
|
||
# -*- coding: UTF-8 -*-
|
||
class AssignValue(object):
|
||
def __init__(self, value):
|
||
self.value = value
|
||
|
||
my_value = AssignValue(6)
|
||
print('value 为: {0.value}'.format(my_value)) # "0" 是可选的
|
||
print('value 为: {.value}'.format(my_value))
|
||
```
|
||
|
||
|
||
|
||
### f-string格式化
|
||
|
||
- f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去
|
||
|
||
```python
|
||
>>> name = 'W3Cschool'
|
||
>>> print(f'Hello {name}') # 替换变量
|
||
Hello W3Cschool
|
||
>>>
|
||
>>> print(f'{1+2}') # 使用表达式
|
||
3
|
||
>>>
|
||
>>> w = {'name': 'W3Cschool', 'url': 'www.w3cschool.cn'}
|
||
>>> print(f'{w["name"]}: {w["url"]}')
|
||
W3Cschool: www.w3cschool.cn
|
||
>>>
|
||
```
|
||
|
||
- 在 Python 3.8 的版本中可以使用 = 符号来拼接运算表达式与结果
|
||
|
||
```python
|
||
>>> x = 1
|
||
>>> print(f'{x+1=}') # Python 3.8
|
||
x+1=2
|
||
>>>
|
||
```
|
||
|
||
|
||
|
||
### 数字格式化
|
||
|
||
| 数字 | 格式 | 输出 | 描述 |
|
||
| :--------- | :----------------------------------------------------------- | :--------------------------------------- | :--------------------------- |
|
||
| 3.1415926 | {:.2f} | 3.14 | 保留小数点后两位 |
|
||
| 3.1415926 | {:+.2f} | +3.14 | 带符号保留小数点后两位 |
|
||
| -1 | {:+.2f} | -1.00 | 带符号保留小数点后两位 |
|
||
| 2.71828 | {:.0f} | 3 | 不带小数 |
|
||
| 5 | {:0>2d} | 05 | 数字补零 (填充左边, 宽度为2) |
|
||
| 5 | {:x<4d} | 5xxx | 数字补x (填充右边, 宽度为4) |
|
||
| 10 | {:x<4d} | 10xx | 数字补x (填充右边, 宽度为4) |
|
||
| 1000000 | {:,} | 1,000,000 | 以逗号分隔的数字格式 |
|
||
| 0.25 | {:.2%} | 25.00% | 百分比格式 |
|
||
| 1000000000 | {:.2e} | 1.00e+09 | 指数记法 |
|
||
| 13 | {:10d} | 13 | 右对齐 (默认, 宽度为10) |
|
||
| 13 | {:<10d} | 13 | 左对齐 (宽度为10) |
|
||
| 13 | {:^10d} | 13 | 中间对齐 (宽度为10) |
|
||
| 11 | '{:b}'.format(11)<br/>'{:d}'.format(11)<br/>'{:o}'.format(11)<br/>'{:x}'.format(11)<br/>'{:#x}'.format(11)<br/>'{:#X}'.format(11) | 1011<br/>11<br/>13<br/>b<br/>0xb<br/>0XB | 二进制 |
|
||
|
||
- ^, <, > 分别是居中、左对齐、右对齐,后面带宽度
|
||
- : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充
|
||
- \+ 表示在正数前显示 +,负数前显示 -; (空格)表示在正数前加空格
|
||
- b、d、o、x 分别是二进制、十进制、八进制、十六进制 |