字符串格式化輸出


%字符串格式化輸出

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM