%字符串格式化输出
Python字符串格式化操作符(%)只适用于字符串类型,非常类似于C 语言里面的printf()函数的字符串格式化,甚至所用的符号都一样,都用百分号(%),并且支持所有printf()式的格式化操作。
name = input("Name:") age = input("Age:") job = input("Job:") hobbie = input("Hobbie:") info = ''' ------------ info of %s ----------- #这里的每个%s就是一个占位符,本行的代表 后面拓号里的 name Name : %s #代表 name Age : %s #代表 age job : %s #代表 job Hobbie: %s #代表 hobbie ------------- end ----------------- ''' %(name,name,age,job,hobbie) # 这行的 % 号就是 把前面的字符串 与拓号 后面的 变量 关联起来 print(info)
Python中字符串格式化占位符:
占位符 | 说明 |
%s | 字符串 (采用str()的显示) |
%r | 字符串 (采用repr()的显示) |
%c | 单个字符 |
%b | 二进制整数 |
%d | 十进制整数 |
%i | 十进制整数 |
%o | 八进制整数 |
%x | 十六进制整数 |
%e | 指数 (基底写为e) |
%E | 指数 (基底写为E) |
%f | 浮点数 |
%F | 浮点数,与上相同 |
%g | 指数(e)或浮点数 (根据显示长度) |
%G | 指数(E)或浮点数 (根据显示长度) |
%% | 字符"%" |
format
自从Python2.6引入了format这个格式化字符串的方法
在Python3.6中加入了f-strings:
name = "QQ" age = 18 print(f"My name is {name}.I'm {age}") # My name is QQ.I'm 18 print("My name is {}.I'm {}".format(name, age)) # My name is QQ.I'm 18
常用的format用法
通过位置
data = ["QQ", 18] print("Name:{0}, Age:{1}".format(*data)) # Name:QQ, Age:18
通过关键字
data = {"name": "QQ", "age": 18} print("Name:{name}, Age:{age}".format(**data)) # Name:QQ, Age:18
通过对象属性
class Person(object): def __init__(self, name, age): self.name = name self.age = age def __str__(self): return "This guy is {self.name}, {self.age} years old.".format(self=self) p = Person("QQ", 18) print(str(p)) # This guy is QQ, 18 years old.
通过下标
data = ["QQ", 18] print("{0[0]} is {0[1]} years old.".format(data)) # QQ is 18 years old.
填充与对齐
填充常跟对齐一起使用
^、<、>分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充。
print("{:>10}".format('18')) # 18 print("{:0>10}".format('18')) # 0000000018 print("{:A>10}".format('18')) # AAAAAAAA188
补充一个字符串自带的zfill()方法:
Python zfill()方法返回指定长度的字符串,原字符串右对齐,前面填充0。
zfill()方法语法:str.zfill(width)
参数width指定字符串的长度。原字符串右对齐,前面填充0。
返回指定长度的字符串。
print("18".zfill(10)) # 0000000018
精度与类型f
精度常跟类型f一起使用。
print("{:.2f}".format(3.1415926)) # 3.14
其中.2表示长度为2的精度,f表示float类型。
其他进制
主要就是进制了,b、d、o、x分别是二进制、十进制、八进制、十六进制。
print("{:b}".format(18)) # 10010 print("{:d}".format(18)) # 18 print("{:o}".format(18)) # 22 print("{:x}".format(18)) # 12
千位分隔符
print("{:,}".format(1234567890)) # 1,234,567,890