1. 程式人生 > >【已解決ValueError:Invalid format specifie】format()函式輸出格式問題

【已解決ValueError:Invalid format specifie】format()函式輸出格式問題

在上一例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;