如何删除空格以保持平衡?

时间:2019-03-17 02:29:48

标签: python list loops for-loop whitespace

两个半星期前,我刚开始使用Python作为第一语言,因此请记住,我可能走了最长的路来创建此代码。请记住,您对其余代码的任何建议都将不胜感激。

无论如何,我的问题是:无论用户输入的item_name为何,我都试图使所有内容都很好地排列。当然,用户输入的名称越长,则将其余部分推得越远。有没有人建议根据item_name的长度删除一定数量的空格?我以前从未发布过这样的代码,所以我可能做得不好,但是这是我遇到问题的特定打印部分:

for i in range(0, loop_num):
print('Item %d: %s               $%.2f    %d     $%.2f' % (
     item_counter , 
     item_name_list[i] , 
     item_price_list[i] , 
     int(item_quantity_list[i]) , 
     single_item_total[i] 
     ))
item_counter += 1

以下是上面代码的前半部分:

    item_name_list = []
item_price_list = []
item_quantity_list = []
single_item_total = []
loop_num = int(input('Enter how many different unique items you have total \n'))
item_counter = 1

for i in range(0, loop_num):
    item_name = input('Please enter the name of item %d: ' % item_counter)
    item_name_list.append(item_name)
    item_price = float(input('Please enter the price of item %d: ' % item_counter))
    item_price_list.append(item_price)
    item_quantity = float(input('Please enter the quantity of item %d: ' % item_counter))
    item_quantity_list.append(item_quantity)
    item_counter += 1

我不会给出最后的部分,因为那只是我打印小计,税金和总计。这是我在名称中输入3个字符数相同的项时的输出:

RECEIPT                                                                                                                                              

        Name               Price Quantity Total                                                                                                     
Item 1: Milk               $3.99    1     $3.99  
Item 2: Eggs               $2.00    4     $8.00                                                                                                      
Item 3: Soda               $4.00    3     $12.00                                                                                                     

Subtotal    $23.99                                                                                                                                   
Sales tax   $1.20                                                                                                                                    
Grand Total $25.19 

如果我输入与其他字符不同的任何字符,则价格和数量都会变动。如果太复杂了,那就告诉我。我只是讨厌让他们无法排队。

1 个答案:

答案 0 :(得分:0)

与旧的format()格式相比,%函数及其format string syntax是格式化字符串的更好方法。

在这种情况下,对齐字符<>可以提供帮助,并且输出代码如下所示:

print('Item {}: {:<15} ${:.2f} {:>4}     ${:.2f}'.format(...)