%字符串格式化輸出
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