python3 開發面試題(%s和format的區別)5.31
阿新 • • 發佈:2018-06-02
什麽 字符 color 對象屬性 pri arguments 坐標 保留兩位小數 面試題
在格式化字符串中有兩種方法:
1、%s
2、format
大家常用的是哪一種方法?為什麽要用你選的這種方法?
我們先看一個例子:
首先我們定義一個我軍需要擊殺的恐怖分子的地理坐標為 c=(128,128)
# 利用%進行字符串格式化 print("向他開炮:%s" % c) #報錯 TypeError: not all arguments converted during string formatting print("向他開炮:%s" % (c, )) #正確的寫法 # 用format進行字符串的格式化 print("向他開炮:{}".format(c))
format的常見方法:
#通過關鍵字 d1 = {"name": "duoduo", "age": 18} # s = "{name} is {age} years old.".format(d1["name"], d1["age"]) s = "{name} is {age} years old.".format(**d1) print(s) #通過對象屬性 class Person(): def __init__(self, name, age): self.name = name self.age = agedef __str__(self): return "{self.name} - {self.age}".format(self=self) p1 = Person("duoduo", 18) print(p1) #通過下標 l1 = ["duoduo", 18] # s = "{} is {} years old. {} 帥。".format(l1[0], l1[1], l1[0]) # s = "{0} is {1} years old. {0} 帥。".format(l1[0], l1[1]) s = "{0[0]} is {0[1]} years old. {0[0]} 帥。".format(l1) print(s) #填充與對齊 print("duoduo".center(20, "*")) #填充左右 print("{:>10}".format("duoduo")) #左邊空格填充 print("{:0>10}".format("duoduo")) #左邊0填充 print("{:*>10}".format("duoduo")) #左邊*填充 print("{:*^10}".format("duoduo")) #左右填充 print("{:*<10}".format("duoduo")) #右邊用*填充 print("duoduo".zfill(18)) # 0填充 print("{:.2f}".format(3.141592653)) #保留兩位小數 print("{:b}".format(10)) #二進制 print("{:d}".format(10)) #十進制 print("{:o}".format(10)) #八進制 print("{:x}".format(10)) #十六進制 print("{:,}".format(1000000)) # 千分位格式化
python3 開發面試題(%s和format的區別)5.31