6.8 KiB
6.8 KiB
占位符
符 号 | 描述 |
---|---|
%c |
格式化字符及其ASCII码 |
%s |
格式化字符串 |
%d |
格式化整型 |
%u |
格式化无符号整型 |
%o |
格式化无符号八进制数 |
%x |
格式化无符号十六进制数 |
%X |
格式化无符号十六进制数(大写) |
%f |
格式化浮点数字,可指定小数点后的精度 |
%e |
用科学计数法格式化浮点数 |
%E |
作用同%e ,用科学计数法格式化浮点数 |
%g |
%f 和%e 的简写 |
%G |
%f 和 %E 的简写 |
%p |
用十六进制数格式化变量的地址 |
格式化辅助指令
符号 | 功能 |
---|---|
* | 定义宽度或者小数点精度 |
- | 用做左对齐 |
+ | 在正数前面显示加号( + ) |
在正数前面显示空格 | |
# | 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X') |
0 | 显示的数字前面填充'0'而不是默认的空格 |
% | '%%'输出一个单一的'%' |
(var) | 映射变量(字典参数) |
m.n. | m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |
str.format
- 通过 {} 和 : 来代替以前的 %
- 用大括号来转义大括号
>>> print ("{} 对应的位置是 {{0}}".format("school"))
school 对应的位置是 {0}
>>>
- format 函数可以接受不限个参数,位置可以不按顺序
>>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序
'hello world'
>>> "{0} {1}".format("hello", "world") # 设置指定位置
'hello world'
>>> "{1} {0} {1}".format("hello", "world") # 设置指定位置
'world hello world'
- 为format设置参数
#!/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传递对象,利用对象的属性进行格式化
#!/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 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去
>>> 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 的版本中可以使用 = 符号来拼接运算表达式与结果
>>> 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) '{:d}'.format(11) '{:o}'.format(11) '{:x}'.format(11) '{:#x}'.format(11) '{:#X}'.format(11) |
1011 11 13 b 0xb 0XB |
二进制 |
- ^, <, > 分别是居中、左对齐、右对齐,后面带宽度
- : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充
- + 表示在正数前显示 +,负数前显示 -; (空格)表示在正数前加空格
- b、d、o、x 分别是二进制、十进制、八进制、十六进制