本篇内容主要讲解“Python3字符串的格式化方法怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python3字符串的格式化方法怎么用”吧!
一 介绍
Tips:
1、尽量少使用 + 号进行字符串并接,大量使用会耗费系统资源(大量申请及清理内存)
2、使用%并接时,尽量使用对应的数据类型,以提高代码可读性。
%百分号方式(定义与传参都需要使用%进行标识)
定义:%[(name)] [flags] [width] [.precision] type
(name):指定字典的key
flags:
+:右对齐,正数前加正号
空格:右对齐,正数前无符号
0:右对齐,正数前加0
-:左对齐
width:占用宽度
.percision:字符串或浮点数保留多少位
type:(必须参数)
s:传入的值为字符类型
d:传入的值为整数类型
f:传入的值为浮点数
%%:输出百分号字符
等等
format 方式
定义:{ [field_name] [ !conversion] [ :format_spec] }
field_name:class Person:
name = '' age = 22 def __init__(self, n): self.name = n el = Person('elsa') ka = Person('kate') print("I am {0.name}, my friend is {1.name}".format(el, ka)) # I am elsa, my friend is kateprint("I am {friend[0]}, my friend is {friend[1]}".format(friend=['elsa', 'kate'])) # I am elsa, my friend is kate
conversion:r | s | a
r:Calls repr() on the argument first。将变量的值转换为str的定义格式。
s = '{name!r}'.format(name='elsa') print(s) # 'elsa' a = eval(a) # elsa
s:Calls str() on the argument first。将变量转为字符串。
s = '{name!s}'.format(name=1234) print(s, type(s)) # 1234 <class 'str'>
a:Calls ascii() on the argument first。
format_spec:[ [ fill ] align ] [sign] [#] [0] [width] [grouping_option] [.precision] [type]
fill:空白处填充字符
align:对齐方式
<:内容向左对齐
>:内容向右对齐
=:对数字右对齐(符号+填充字符+数字)
^:内容居中
sign:数值的符号显示。(+ | - | 空格)
+:显示所有正负符号
-:只显示负数符号
空格:显示所有正负符号,但正号被空格取代。可以理解为正常显示的方式。
#:对于二进制、八进制、十六进制,如果加上#,会显示 0b/0o/0x,否则不显示
0:
width:占用宽度
grouping_option:
,| _:对数字的千分位分隔符
print("{:,}".format(123456.78)) # 123,456.78 print("{:_}".format(123456.78)) # 123_456.78
precision:小数点保留位数
type:格式化类型(与传入参数的数据类型匹配)
s:字符串
无:默认字符串
d:整数
f:浮点
%:自动计算,并输出百分号
等等
二 %百分号 常用方式
顺序对应模式(定义的顺序要与参数一致)
name = 'elsa li' age = 18 money = 98765.987654 meg = 'I am %s ' % name print(meg) # I am elsa li meg = 'I am %.4s , age is %d ,money is %015.2f' % (name, age, money) print(meg) # I am elsa , age is 18 ,money is 000000098765.99
字典模式
person = {'name': 'elsa li', 'age': 18, 'money': 98765.987654} meg = 'I am %(name)s ' % person print(meg) # I am elsa li meg = 'I am %(name).4s , age is %(age)d ,money is %(money) 15.2f' % person print(meg) # I am elsa , age is 18 ,money is 98765.9877
添加颜色
name = 'elsa' percent = 80.8867 meg = 'I am