python语言格式化_python语言-字符串格式
python3以后,新增了一种格式化字符串的函数str.format(),它增强了字符串格式化的功能。相对于老版的%格式方法,它有很多优点。
1.在%方法中%s只能替代字符串类型,而在format中不需要理会数据类型;
2.单个参数可以多次输出,参数顺序可以不相同;
3.填充方式十分灵活,对齐方式十分强大;
4.官方推荐用的方式,%方式将会在后面的版本被淘汰。
# %格式化是C语言、Java、python都有的传统格式化方法,format是python特有的格式化
实例:
(1)格式化日期
year = 2020
month = 4
day = 26
print('%04d-%02d-%02d' % (year, month, day))
结果: 2020-04-26
解析:%02d:输出2位整数,不足位用补住
(2)格式化% 数字
f = 3.141
print("%06.2f" % f)
结果:003.14
解析:%06.2f保留宽度为6,小数2位的浮点数,不足位用0补足
(3)二进制(o)、16进制(x)的格式化%
print('%o' % 10)
print('%02x' % 10)
结果:12;0a
解析:10的八进制是12; 10的16进制是a, %02是保留2位数。
(4)format 格式化 学生信息
test = "name:%s,age:%d,nick_name:%s" % ("大海", 18, "星翼")
print(test)
test1 = "name:{},age:{},nick_name:{}".format("大海", 18, "星翼")
print(test1)
结果:name:大海,age:18,nick_name:星翼
name:大海,age:18,nick_name:星翼
解析:nick_name 别名或曾用名,用 % 格式化和用 .format 格式化结果是一样的。
test2 = "name:{0},age:{1},nick_name:{0}".format(*["大海", 18])
print(test2)
结果:name:大海,age:18,nick_name:大海
解析:对于前面有3个变量name、age、nick_name,后面只有2个变量大海、18也就是说没有别名的,可以用上面的方法0表示大海,1表示18 ,*表示解包,[]是一个列表形式,列表是通过下标0\1\2等下标数字来取值,列表通过一个*来解包的。
test3 = "name:{name},age:{age},nick_name:{name}".format(**{"name": '李扬名', "age": 18, "height": 168})
print(test3)
结果:name:李扬名,age:18,nick_name:李扬名
解析:{}字典是通过键(key)和值(value)来取值,而字典的键值对是通过**来解包的。
(5).format的三种取值方法
test4 = "numbers: {:b}, {:o}.{:d},{:x},{:X},{:%}".format(10, 10, 10, 10, 10, 10, 10)
print(test4)
test5 = "numbers: {num:b}, {num:o}.{num:d},{num:x},{num:X},{num:%}".format(num=10)
print(test5)
test6 = "numbers: {0:b}, {0:o}.{0:d},{0:02x},{0:X},{0:%}".format(10)
print(test6)
print('{:.2f}'.format(3.1415926))
结果:numbers: 1010, 12.10,a,A,1000.000000%
numbers: 1010, 12.10,a,A,1000.000000%
numbers: 1010, 12.10,0a,A,1000.000000%
3.14
解析:1. b是二进制, o是八进制,d是十进制,x\X是16进制,%是百分号;2.第一种直接取值;第二种通过关键字num制取;第三种通过下标0来取值,这三种取值方法结果都是一样的;3. 最后 .2f是保留2位小数。
编制 by 伟森leung 喜欢本文章的可以关注我和点赞分享