打印时,如何格式化输出以在python中的两个变量之间创建空间?
我正在尝试创建一个如下所示的输出: 如图所示,左栏空间从左侧排列,右栏从右侧排列。但对于我的输出,我将左栏排列到右侧,右栏排列到左侧。我想反之亦然。下面是我从第二段代码中实际得到的输出,我尝试使用format函数: 它可以工作,但我只是想学习在字符串输出移动时调整和格式化间距。 如果我有3个以上的变量,知道怎么做也很好打印时,如何格式化输出以在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
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()
awidth
作为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()
awidth
作为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