python格式问题,试图打印,但出现问题
执行此操作的我的代码:python格式问题,试图打印,但出现问题,python,Python,执行此操作的我的代码: print(count,"\t",monthlyPayment,"\t",interest,"\t",loanAmount) 我不知道为什么它们没有对齐,如何才能使它更整洁、更干净?请导游?希望以表格形式使用。例如: print('{:7d} {:10d} {:15.2f} {:15.2f}'.format(count, monthlyPayment, interest, loanAmount)) 这里d代表十进制整数,f代表浮点数。数字就是宽度。例如
print(count,"\t",monthlyPayment,"\t",interest,"\t",loanAmount)
我不知道为什么它们没有对齐,如何才能使它更整洁、更干净?请导游?希望以表格形式使用。例如:
print('{:7d} {:10d} {:15.2f} {:15.2f}'.format(count, monthlyPayment, interest, loanAmount))
这里d代表十进制整数,f代表浮点数。数字就是宽度。例如,7d生成一个七位宽的整数:
3000
和15.2f总宽度为15和2位小数的浮点数:
1000.00
以下内容的输出示例:
print('{:7d} {:10d} {:15.2f} {:15.2f}'.format(1, 300, 416.67, 99915.67))
是:
按制表符格式化在历史上是很棘手的。一旦其中一个字段的长度超过tabstep,整个格式就会中断。在这种情况下,该字段是标题付款 您可以不使用制表符,而是以字符为单位计算列宽,并创建匹配的str.format格式。我假设你有这样的数据
data = [(1, 500, 416.67, 99916.67),
(2, 500, 416.32, 99832.99),
...]
header = [("month", "payment", "interest", "balance")]
并正在打印:
for line in header + data:
print("\t".join(line))
相反,您需要额外运行一次数据。一次确定列宽,然后一次打印
colwidths = []
for column in zip(*(header + data)):
colwidths.append(len(str(max, column, key=lambda s: len(str(s)))) + 1)
# the `+ 1` in this case being the column margin
formatting = "".join(r"{{:{}}}".format(width for width in colwidths))
for line in header + data:
print(formatting.format(*line))
或者,你也可以用表格为你做这项工作。这是保存在pypi包管理器中的第三方模块。安装它与
pip install tabulate
然后使用如下代码:
import tabulate
data = [(1, 500, 416.67, 99916.67),
(2, 500, 416.32, 99832.99),
...]
header = [("month", "payment", "interest", "balance")]
print(tabulate.tabulate(data, headers=*header))
单词payment足够长,可以突破下一个tabstep,通常为8个字符。使用空格代替制表符。如果你不想写自己的制表逻辑,你可以顺便来帮你写。pip安装表格你能解释一下使用的不同的格式化数字吗?谢谢你干净完美!
import tabulate
data = [(1, 500, 416.67, 99916.67),
(2, 500, 416.32, 99832.99),
...]
header = [("month", "payment", "interest", "balance")]
print(tabulate.tabulate(data, headers=*header))