我试图创建一个看起来像这样的输出:
从这里可以看到,左列空间排列在左侧,右列排列在右侧。但是对于我的输出,我的左列排列在右侧,右列排列在左侧。我想做反之亦然。这是我实际从第二个代码中获取的输出,我尝试使用格式函数:
它有效但我只是在字符串输出移动时学习调整和格式化间距。 如果我有超过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的新手,所以仍然是一个完整的菜鸟。我真的很感激如何处理格式或天气有其替代品的解释。 谢谢! 代码:
答案 0 :(得分: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
# ...
粗糙的印刷只是因为我试图参数化所有东西。给定固定的列名称和间距,您可以这样做:
print('{kg:<9} {lb:>6}'.format(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"))
答案 1 :(得分:1)
你可以使用这个。
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))
使用format
可以使值3动态化,%
比@interface FoodMeal : NSObject<NSCoding,NSCopying>
@property (nonatomic,strong) NSString *mealType;
@property (nonatomic,strong) NSString *mealName;
@property (nonatomic,strong) NSArray *mealItems;
@property (nonatomic,strong) NSDate *mealDate;
@end
构建更灵活。
答案 2 :(得分:1)
查看The Docs第7.1.3.1节
您可以将format()
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