Python印出字串與字串的對齊
num = 70.8
print(“01-海洋佔了地球表面的%.2f百分比” % num)
print(“02-海洋佔了地球表面的%.3f百分比” % num)
print(“03-海洋佔了地球表面的%.4f百分比” % num)
“””
三個 ” 或 ‘ 為多行註解
” “之後沒有.也沒有,直接%num,
有空格的話沒關係
百分比也不能用%,程式會混淆
需用%%
print(“01-海洋佔了地球表面的%.2f”%num +”%” )
因為%剛好在句末,這樣可以
“””
print(“04-海洋佔了地球表面的{:8.2f}%“.format(num))
# {:8.2f} 是python語法,8個字元 小數點下2位 未指定預設靠右
print(“05-海洋佔了地球表面的|{:<8.2f}%|”.format(num))
# <靠左
print(“06-海洋佔了地球表面的|{:^8.2f}%|”.format(num))
# ^置中
print(“07-海洋佔了地球表面的|{:>8.2f}%|”.format(num))
# >靠右
print(“海洋佔了地球表面{:8.2f}百分比“.format(num))
print(“海洋佔了地球表面{:<8.2f}百分比“.format(num))
print(“海洋佔了地球表面{:>8.2f}百分比“.format(num))
print(“海洋佔了地球表面{:^8.2f}百分比“.format(num))
用Anaconda的Spyder
執行結果:
num=70.8
print(“03-海洋佔了地球表面的%.4f百分比”% num)
print(“03-海洋佔了地球表面的%.4f%%” % num)
執行結果:
num = 70.8
print(“01-海洋佔了地球表面的%8.2f百分比” % num)
print(“04-海洋佔了地球表面的{:8.2f}百分比”.format(num))
print(“01-海洋佔了地球表面的%.2f百分比” % num)
print(“04-海洋佔了地球表面的{:.2f}百分比”.format(num))
# 8.2f 改為 .2f 字元數自動調整到剛好
print(“01-體積縮小{:.3f}%“.format(33.45678))
print(“02-體積縮小{:.4f}%“.format(33.45678))
print(“03-氮氣佔空氣體積{:.0f}%,氧氣佔{:.2f}%。“ .format(78.08, 20.95))
print(“04-氮氣佔空氣體積{0:.0f}%,氧氣佔{1:.2f}%。“.format(78.08, 20.95))
print(“|{:}|{:^8}|{:5d}|”.format(12,34,56))
#{:5d} 5個字元,未指定預設靠右,d是數字格式
print(“{:=<5}“.format(“”))
# print(“{:<}“.format(“=”*5)) 效果相同,
# “=”印5次,靠左對齊
print(“{:=^40s}“.format(“傳說中的分隔線”))
print(“{:=^40s}”.format(“傳說中的分隔線”))
執行結果:
.format() 與 前綴f:
print(“{strr:=^40s}”.format(strr))
出現KeyError
原因是在使用 str.format()
方法时,
需要在括号内指定键和值。
在代码中,键是 'strr'
(作为字符串格式中的一部分),
但没有正确地传递这个键的值。
print(“氮氣佔空氣體積{:.0f}%,氧氣佔{:.2f}%”.format(78.08,20.95))
print(“氮氣佔空氣體積%.0f百分比,氧氣佔%.2f百分比”%(78.08,20.95))
#百分比無法用%,程式會混淆
執行結果:
print(“04-氮氣佔空氣體積{0:.0f}%,氧氣佔{1:.2f}%。”.format(78.08, 20.95))
print(“04-氮氣佔空氣體積{:.0f}%,氧氣佔{:.2f}%。”.format(78.08, 20.95))
num = 70.8
print(“04-海洋佔了地球表面的{:.2f}百分比”.format(num))
print(“04-海洋佔了地球表面的{:’^9.2f}百分比”.format(num))
#70.80有5個字元,置中,剩下9-5=4字元,以’填滿
執行結果:
print(“|{:}|{:^10}|{:10.2f}|”.format(12,34,56))
print(“|{:}|{:^10}|{:10d}|”.format(12,34,56))
執行結果:
print(“{:=<5}”.format(“”))
print(“{:<}”.format(“=”*5))
#都是印5次”=”,靠左
print(“{:<5}”.format(“=”))
#只有一個”=”靠左,共5字元
print(“{:>5}”.format(“=”))
#只有一個”=”靠右,共5字元
print(“{:^5}”.format(“=”))
#只有一個”=”置中,共5字元
print(“{:=^10s}”.format(“傳說中的分隔線”))
#”傳說中的分隔線”有7個字
# “=”在:之後
執行結果:
print(“{:=<10s}”.format(“傳說中的分隔線”))
#傳說中的分隔線有7個字,靠左對齊,共10字元
print(“{:=>10s}”.format(“傳說中的分隔線”))
print(“{:=^10s}”.format(“傳說中的分隔線”))
print(“{:*<10s}”.format(“傳說中的分隔線”))
#傳說中的分隔線有7個字,靠左對齊,共10字元
print(“{:*>10s}”.format(“傳說中的分隔線”))
print(“{:*^10s}”.format(“傳說中的分隔線”))
執行結果:
f-string 可以做到同樣的事情:
{:} :的右邊放格式,如:10s .2f
.format 跟前綴f 都一樣
前綴f將變數放在:左邊
若使用.format(變數)
:左邊則不放變數
前綴f顯然比.format()短得多
num=12
score=86
print(“座號:”+str(num)+”,成績:”+str(score))
print(“座號:“,num,“,成績:“,score)
執行結果:
id=17
name=”小李飛刀,例不虛發”
print(“姓名1:%s”%name)
#簡單架構是: print(“%s”%name)
print(“姓名2:%s” % name)
#” “之外 %name的空格不影響列印結果
print(“姓名3: %s” % name)
#” “內的姓名3:之後有一個空格
print(“姓名4: %s ” % name)
#” “內的姓名4:之後有一個空格
print(“姓名5:%s=>” % name)
print(“姓名6:%s-座號:%d”%(name,id))
# %s字串 %d數字
#簡單架構為: print(“%s %d”%(name,id))
print(“姓名7: %s-座號: %d”%(name,id))
#格式化字串 %s表字串(string)、%d表整數(digit)、%f表浮點數字(float)
推薦hahow線上學習python: https://igrape.net/30afN