简介
本文中介绍的字符串一个非常重要的知识点:字符串格式化输出。
格式化怎么理解?简答来说:就是让字符串按照我们设定的格式来输出,达到我们想要的结果。主要是有4种方式:
- %:基于占位符的格式化
- format()函数的格式化:重点掌握
- f-string格式化:重点掌握
- 字符串模板函数
占位符%
常见格式符
格式化符号其实是为真实的值预留出一个空位,而且还可以控制显示的格式。格式符包含一个类型码,用来显示不同的数据类型,比如字符串、二进制、指数等。常见的不同的占位符如下:
- %s: 字符串 (采用str()的显示),常用
- %r: 字符串 (采用repr()的显示)
- %c: 单个字符,格式化字符及其ASCII码
- %b: 二进制整数
- %u: 格式化无符号整数,常用
- %d: 格式化十进制整数,常用
- %i: 十进制整数
- %o: 八进制整数
- %x: 十六进制整数
- %g: 指数(e)或浮点数%f (根据显示长度)
- %G: 指数(E)或浮点数%F (根据显示长度)
- %e: 指数 (基底写为e),用科学计数法格式化浮点数
- %E: 指数 (基底写为E),用法同%e
- %f: 浮点数,格式化浮点数字,可以指定小数点后面的精度,常用
- %F: 浮点数,与%f相同
- %%: 字符“%”,用来显示百分号%
对齐问题
关于对齐问题:
1. ^:居中对齐
2. >:右对齐
3. <:左对齐
4. +、-:显示正负号
语法形式
常用的语法形式为:%[(name)][flags][width].[precision] typecode
- (name):参数的名称,可以省略;如果使用必须加上()
- flags:对齐标志位;可以是+、-、“”、0;+右对齐,-左对齐,""填充一个空格;0表示左侧使用0填充
- width:显示的宽度
- precision:小数点后的精度
多种类型连用
print("%9.3f" % 2.3)
2.300 # 前面4个空格
- 第一个 % 后面的内容为显示的格式说明,9 为显示宽度,3 为小数点位数,f 表示输出为浮点数类型
- 第二个 % 后面为显示的内容来源,输出结果默认为右对齐,2.300 长度为 5,故前面有4个空格
print("%+9.3f" % 2.3) # 带上+符号输出,9表示宽度,3表示小数位
+2.300
print("%-9.3f" % 2.3) # -表示左对齐输出
2.300
print("%-9.3f" % -2.3)
-2.300
# 我们显示声明3个变量
name = "Yule Cottage" # 字符串类型
age = 25 # 整数类型
height = 1.76 # 浮点数类型
# 1、浮点数默认是6位小数
# 2、%f和%F相同
print("我是:%s,年龄: %d,身高是:%f" % (name,age,height))
我是:Yule Cottage,年龄: 25,身高是:1.760000
# 指定浮点数的小数位
print("我是:%s,年龄: %d,身高是:%.3f" % (name,age,height))
我是:Yule Cottage,年龄: 25,身高是:1.760
下面的代码是通过字典对的形式来传入不同的数据类型,字典(后面会介绍python的字典)的值就是待格式的内容。
需要注意的是name、age、height必须写在%号的后面
print("我是:%(name)s,年龄: %(age)d,身高是:%(height).3f" % {"name":name,"age":age,"height":height})
我是:Yule Cottage,年龄: 25,身高是:1.760
输出不同进制
print("八进制:%o,十进制:%i,十六进制:%x" %(age,age,age))
八进制:31,十进制:25,十六进制:19
# print("二进制:%b" %(age)) # 二进制不能使用
bin(age) # 通过bin函数查看
'0b11001'
输出的宽度、精度等设置
number = 1.23456789
# 宽度为10,保留小数点后4位,默认是右对齐
print("%10.4f" % number)
1.2346
print("%-10.4f" % number) # -符号表示左对齐,显示4位小数
1.2346
# 右对齐,保留10位小数,不足的用0补齐
print("%10.10f" % number)
1.2345678900
print("%-10.8f" % number) # 左对齐,保留8位小数
1.23456789
# 左对齐,保留7位小数,会自动地进行四舍五入
print("%-10.7f" % number)
1.2345679
下面是针对字符串的宽度等输出设置:
name
'Yule Cottage'
print("%.10s" % name) # 9个字母+一个空格:左对齐
Yule Cotta
print("%.15s" % name) # 如果位数不够,直接全部输出
Yule Cottage
print("%10.6s" % name) # 右对齐,取出6个字符
Yule C
解释:总长度为10,前面4个空格,加上4+一个空格+C
CSDN_码404_Python 如何字符串格式化使用_占位符%_详解码404
https://www.code404.icu/1078.html