2

我最近在 conda 上安装了表格,我正在尝试使用打印语法将我的结果制成表格来源:将列表打印为表格数据 ,但我收到“TypeError:'headers' is an invalid keyword argument for print()”

我试过“打印(制表([['Alice', 24], ['Bob', 19]], headers=['Name', 'Age'], tablefmt='orgtbl'))”

from tabulate import tabulate
i: int
with open("incre.txt", "w") as file:

    for i in range(1, 100,5):
        mol = int((i*50)/(i+50))
        file.write(str(i)+ " " +str(mol) + "\n")
    print(tabulate([[i], [mol]]), headers=['i' , 'mol'], tablefmt='orgtbl')
    file.close()

预期结果将是

预期输出示例

我收到类型错误,我在这里缺少什么?

4

1 回答 1

3

您编写括号的方式有误,请尝试使用该行:

print(tabulate([[i], [mol]], headers=['i' , 'mol'], tablefmt='orgtbl'))

你所做的就像这样做:

x = tabulate([[i], [mol]]
print(x, headers=['i' , 'mol'], tablefmt='orgtbl')

如您所见,您尝试使用and关键字调用该print方法,这导致了错误:headerstablefmt'headers' is an invalid keyword argument for print()

更新:

我不确定,但我认为你试图实现的是:

from tabulate import tabulate

values = []

for i in range(1, 100,5):
    mol = int((i*50)/(i+50))
    values.append([i, mol])

print(tabulate(values, headers=['i' , 'mol'], tablefmt='orgtbl'))

在您的代码中,您正在打印i并且mol在退出 while 循环后,您将只打印它们的最后一个值......

于 2019-09-06T15:07:03.107 回答