打印时,如何格式化输出以在python中的两个变量之间创建空间?

打印时,如何格式化输出以在python中的两个变量之间创建空间?,python,python-3.x,spacing,Python,Python 3.x,Spacing,我正在尝试创建一个如下所示的输出: 如图所示,左栏空间从左侧排列,右栏从右侧排列。但对于我的输出,我将左栏排列到右侧,右栏排列到左侧。我想反之亦然。下面是我从第二段代码中实际得到的输出,我尝试使用format函数: 它可以工作,但我只是想学习在字符串输出移动时调整和格式化间距。 如果我有3个以上的变量,知道怎么做也很好 print("Kilograms Pounds") for kg in range(0, 199): kg += 1 lb = 2.2

我正在尝试创建一个如下所示的输出:

如图所示,左栏空间从左侧排列,右栏从右侧排列。但对于我的输出,我将左栏排列到右侧,右栏排列到左侧。我想反之亦然。下面是我从第二段代码中实际得到的输出,我尝试使用format函数:

它可以工作,但我只是想学习在字符串输出移动时调整和格式化间距。 如果我有3个以上的变量,知道怎么做也很好

print("Kilograms    Pounds")

for kg in range(0, 199): 
    kg += 1 
    lb = 2.2   
    lb = kg * lb   
    lb = round(lb, 2)
    print(format(kg, "4d"), end = '')

    for i in range(1, 2):
        print("        ", lb, end = '')
    print()
这是我的初始代码,我试图这样做,但间距是错误的,但在这里的左栏是非常好的,但间距可以看到右侧后,输出增加到两位数

print("Kilograms    Pounds")

for kg in range(0, 199):
    kg += 1 
    lb = 2.2  
    lb = kg * lb   
    print(kg, '          ', round(lb, 2)) 
输出:

我对python还不熟悉,所以仍然是个十足的傻瓜。如果能解释一下如何处理格式或天气,我将不胜感激。 非常感谢。 代码:

您可以使用这个

print("Kilograms    Pounds")

for kg in range(0, 100):
    kg += 1 
    lb = 2.2  
    lb = kg * lb 
    space_filler = " " * 10  
    print("%3d %s %.2f" % (kg, space_filler, lb))
值3也可以通过使用
格式
进行动态设置,该格式比
%
构造更灵活。

您可以使用此格式

print("Kilograms    Pounds")

for kg in range(0, 100):
    kg += 1 
    lb = 2.2  
    lb = kg * lb 
    space_filler = " " * 10  
    print("%3d %s %.2f" % (kg, space_filler, lb))
值3也可以通过使用
格式
进行动态设置,该格式比
%
构造更灵活。

尝试一下:

between = ' '*4
print('Kilograms{between}Pounds'.format(between=between))

for kg in range(199):
    kg += 1 
    lb = 2.2   
    lb = kg * lb   
    lb = round(lb, 2)

    print('{kg:<{kg_width}}{between}{lb:>{lb_width}}'.format(
        kg=kg, kg_width=len('Kilograms'),
        between=between,
        lb=lb, lb_width=len('Pounds')))

# Output:
# Kilograms    Pounds
# 1               2.2
# 2               4.4
# 3               6.6
# 4               8.8
# 5              11.0
# 6              13.2
# 7              15.4
# 8              17.6
# 9              19.8
# 10             22.0
# 11             24.2
# ...
between=''*4
打印('kg{between}磅'。格式(between=between))
对于范围(199)内的kg:
千克+=1
磅=2.2
磅=千克*磅
磅=圆形(磅,2)
打印({kg:{lb_width}})。格式(
kg=kg,kg_宽度=len('kg'),
中间,
lb=lb,lb_宽度=len('lb'))
#输出:
#公斤磅
# 1               2.2
# 2               4.4
# 3               6.6
# 4               8.8
# 5              11.0
# 6              13.2
# 7              15.4
# 8              17.6
# 9              19.8
# 10             22.0
# 11             24.2
# ...
大而粗糙的打印只是因为我试图将所有内容参数化。给定固定的列名和间距,您可以执行以下操作:

print('{kg:<9}    {lb:>6}'.format(kg=kg, lb=lb))
print({kg:6})。格式(kg=kg,lb=lb))
编辑

更接近您的原始代码:

print("Kilograms    Pounds")

for kg in range(0, 199):
    kg += 1 
    lb = 2.2   
    lb = kg * lb   
    lb = round(lb, 2)
    print(format(kg, "<4d"), end = '')
    print("        ", end = '')
    print(format(lb, ">7.1f"))
打印(“千克-磅”)
对于范围(0199)内的kg:
千克+=1
磅=2.2
磅=千克*磅
磅=圆形(磅,2)
打印(格式(kg,“7.1f”))
尝试一下:

between = ' '*4
print('Kilograms{between}Pounds'.format(between=between))

for kg in range(199):
    kg += 1 
    lb = 2.2   
    lb = kg * lb   
    lb = round(lb, 2)

    print('{kg:<{kg_width}}{between}{lb:>{lb_width}}'.format(
        kg=kg, kg_width=len('Kilograms'),
        between=between,
        lb=lb, lb_width=len('Pounds')))

# Output:
# Kilograms    Pounds
# 1               2.2
# 2               4.4
# 3               6.6
# 4               8.8
# 5              11.0
# 6              13.2
# 7              15.4
# 8              17.6
# 9              19.8
# 10             22.0
# 11             24.2
# ...
between=''*4
打印('kg{between}磅'。格式(between=between))
对于范围(199)内的kg:
千克+=1
磅=2.2
磅=千克*磅
磅=圆形(磅,2)
打印({kg:{lb_width}})。格式(
kg=kg,kg_宽度=len('kg'),
中间,
lb=lb,lb_宽度=len('lb'))
#输出:
#公斤磅
# 1               2.2
# 2               4.4
# 3               6.6
# 4               8.8
# 5              11.0
# 6              13.2
# 7              15.4
# 8              17.6
# 9              19.8
# 10             22.0
# 11             24.2
# ...
大而粗糙的打印只是因为我试图将所有内容参数化。给定固定的列名和间距,您可以执行以下操作:

print('{kg:<9}    {lb:>6}'.format(kg=kg, lb=lb))
print({kg:6})。格式(kg=kg,lb=lb))
编辑

更接近您的原始代码:

print("Kilograms    Pounds")

for kg in range(0, 199):
    kg += 1 
    lb = 2.2   
    lb = kg * lb   
    lb = round(lb, 2)
    print(format(kg, "<4d"), end = '')
    print("        ", end = '')
    print(format(lb, ">7.1f"))
打印(“千克-磅”)
对于范围(0199)内的kg:
千克+=1
磅=2.2
磅=千克*磅
磅=圆形(磅,2)
打印(格式(kg,“7.1f”))
查看第7.1.3.1节

您可以将
format()
a
width
作为int传递,这将解决您的空白问题

在文档示例中:

>>> for num in range(5,12):
 for base in 'dXob':
     print('{0:{width}{base}}'.format(num, base=base, width=width),end=' ')
产生:

 5     5     5   101
 6     6     6   110
 7     7     7   111
 8     8    10  1000
 9     9    11  1001
10     A    12  1010
11     B    13  1011
查看第7.1.3.1节

您可以将
format()
a
width
作为int传递,这将解决您的空白问题

在文档示例中:

>>> for num in range(5,12):
 for base in 'dXob':
     print('{0:{width}{base}}'.format(num, base=base, width=width),end=' ')
产生:

 5     5     5   101
 6     6     6   110
 7     7     7   111
 8     8    10  1000
 9     9    11  1001
10     A    12  1010
11     B    13  1011

您是否尝试过阅读文档(从开始)?您当然可以使用
格式
对值进行右对齐,并使用它进行舍入。您是否尝试过阅读文档(从开始)?当然,您可以使用
格式
对值进行右对齐,并使用它进行舍入。我在java中使用了非常类似的方法,但那是很久以前的事了。你能解释一下%是怎么工作的吗?知道格式也很方便。我已经阅读了文档,但是当它是我的代码时,它更容易理解。谢谢大家!<代码>%几乎类似于C格式说明符。您有许多%格式说明符(例如上面的%3d),然后给tuple指定了那么多要解释的值,中间有
%
sigin。例如,在上面的代码中,kg将被格式化为“%3d”,空格_填充为%s,lb为%.2f。@smarx谢谢,我只需要一个例子来理解它是如何被格式化的works@DurgaDatta我明白了,当我现在将%3d增加到%4d时,它将与1000的数字对齐。@Dmitry Ya。使用str.format更加灵活和动态。你可以阅读更多关于这方面的内容
%
是更灵活、更全面的
string.format
的一个方便子集。我在java中使用了非常类似的方法,但那是很久以前的事了。你能解释一下%是怎么工作的吗?知道格式也很方便。我已经阅读了文档,但是当它是我的代码时,它更容易理解。谢谢大家!<代码>%几乎类似于C格式说明符。您有许多%格式说明符(例如上面的%3d),然后给tuple指定了那么多要解释的值,中间有
%
sigin。例如,在上面的代码中,kg将被格式化为“%3d”,空格_填充为%s,lb为%.2f。@smarx谢谢,我只需要一个例子来理解它是如何被格式化的works@DurgaDatta我明白了,当我现在将%3d增加到%4d时,它将与1000的数字对齐。@Dmitry Ya。使用st