首页 > 解决方案 > 如何在不使用 format() 的情况下以简单的表格格式显示值

问题描述

我正在尝试用 python 制作一个简单的程序,我想以简单的表格格式显示我的输出。但是每次对齐都会受到干扰。限制是不要使用format()Python。

我正在尝试在 python 中使用字符串格式打印所需的输出。但我无法获得所需的输出。请帮我。

我试过这个:

def footToMeter(foot):
    Meter = 0.305 * foot
    return Meter


def meterToFoot(meter):
    Foot = meter / 0.305
    return Foot

i = 1.0
j = 20.0

header = ('Feet','Meters    |    ','Meters','Feet')

print("%-14s%-15s%-15s%-15s" % header)

while i<=15:
    print("%s" % i ,"%15.3f" % footToMeter(i),"    |   ",j,"%16.3f" % 
meterToFoot(j))
    i = i + 1
    j = j + 6

实际输出应该是完全左对齐的表格格式(检查下面的输出)。但是我的输出对齐略有干扰。

在此处输入图像描述

标签: pythonstring

解决方案


您可以使用制表符\t并使用空格和格式化字符串来正确显示,一个例子是

def footToMeter(foot): 
    return  0.305 * foot 

def meterToFoot(meter): 
    return meter / 0.305 

i = 1.0
j = 20.0

#Replaced spaces with a mix of tabs and spaces
print('Feet\t\t Meters\t\t|\t\t Meters\t\tFeet')
print()

while i<=15:
    #Played around with format strings
    print("%-4.1f\t\t" % i ,"%-.3f" % footToMeter(i),"\t\t|\t\t",j,"\t\t%-7.3f" %meterToFoot(j))
    i = i + 1
    j = j + 6

这给了我桌子

Feet         Meters     |        Meters     Feet

1.0          0.305      |        20.0       65.574 
2.0          0.610      |        26.0       85.246 
3.0          0.915      |        32.0       104.918
4.0          1.220      |        38.0       124.590
5.0          1.525      |        44.0       144.262
6.0          1.830      |        50.0       163.934
7.0          2.135      |        56.0       183.607
8.0          2.440      |        62.0       203.279
9.0          2.745      |        68.0       222.951
10.0         3.050      |        74.0       242.623
11.0         3.355      |        80.0       262.295
12.0         3.660      |        86.0       281.967
13.0         3.965      |        92.0       301.639
14.0         4.270      |        98.0       321.311
15.0         4.575      |        104.0      340.984

推荐阅读