【已解決ValueError:Invalid format specifie】format()函式輸出格式問題
阿新 • • 發佈:2018-12-21
在上一例Python爬蟲例項中出現:format()函式格式錯誤——ValueError:Invalid format specifie
下列程式碼正確顯示:
tplit = "{0:^10}\t{1:{3}^10}\t{2:^10}"
print(tplit.format("排名","學校名稱","總分",chr(12288)))
for i in range(num):
u = Ulist[i]
print(tplit.format(u[0],u[1],u[2],chr(12288)))
而下面程式碼顯示 ValueError:Invalid format specifie:
tplit = "{0:^10}\t{1:{3}^10}\t{2:^10}\t{3:^10}" print(tplit.format("排名","學校名稱","總分","省市",chr(12288))) for i in range(num): u = Ulist[i] print(tplit.format(u[0],u[1],u[2],u[3],chr(12288)))
原因分析:
第二行改為#這裡添加了tplit = "{0:^10}\t{1:{3}^10}\t{2:^10}" ;{3:^10}”你添加了地區,相應的作為填充不足10個字元長度的chr(12288)已經不是3了,而是4。
在這裡很多同學肯定會問{1:{3}^10},填充為什麼是填充3個或4個,為什麼是在1號位填充:
第一,中英文全半形造成不對齊的原因產生在1號位;
第二,分析例項【Python爬取中國前20強大學】前20大學的結果,為排名、學校名稱、總分,3個地方需填充,即為3;
第三:後面加入省市,為排名、學校名稱、總分、省市,4個地方需要填充,即為4;