Как мне удалить пробелы для баланса? - PullRequest
1 голос
/ 17 марта 2019

Я только начал Python как мой первый язык две с половиной недели назад, поэтому, пожалуйста, помните, что я, вероятно, выбрал самый длинный путь для создания этого кода.Помните, что любые ваши советы по остальной части кода очень приветствуются.

В любом случае, на мой вопрос: я пытаюсь сделать так, чтобы все выстраивалось правильно, независимо от того, какое имя_пункта вводится пользователем.Конечно, чем длиннее имя, которое вводит пользователь, тем дальше оно толкает остальную часть строки.Есть ли у кого-нибудь совет удалить определенное количество пробелов в зависимости от длины 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 голосов
/ 17 марта 2019

Функция format() и ее синтаксис строки формата являются лучшим способом форматирования строк, чем старое форматирование %.

В этом случае символы выравнивания < и> может помочь, и выходной код становится примерно таким:

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