veriler = list()
yazarlar = list()
kitaplar = list()
sayfalar = list()
with open('veriler.csv') as file:
for i in file.readlines():
veriler.append(i[:-1])
for i in veriler:
line = i.split(',')
yazarlar.append(line[0])
kitaplar.append((line[1]))
sayfalar.append((line[2]))
metin = "{:<20} {:<20} {:<4}"
for i in range(len(yazarlar)):
print(metin.format(yazarlar[i], kitaplar[i]), sayfalar[i])
IndexError:替换索引 2 超出位置参数元组的范围
最后一行的括号位置错误。您需要将
sayfarlar[i]
与其他两个值一起传递给 metin.format
,因为您的格式字符串具有三组需要替换的大括号。这就是异常消息所说的内容,第三组括号(索引 2,因为我们从零开始计数)在位置参数中没有相应的项目。
尝试改变:
print(metin.format(yazarlar[i], kitaplar[i]), sayfalar[i])
对此:
print(metin.format(yazarlar[i], kitaplar[i], sayfalar[i]))
看你的打印报表, 正确的说法是:
print(metin.format(yazarlar[i], kitaplar[i], sayfalar[i]))