Выравнивание в Python

Я пытаюсь выровнять свои результаты. Я использовал функцию табуляции. Но профессор говорит: «Код для этого не должен использовать табуляции или пробелы для выравнивания, а вместо этого должен использовать форматированный вывод».

Я попытался использовать format('10.2f'), чтобы указать количество пробелов, которые я хочу, и где округлить, но я продолжаю получать синтаксическую ошибку.

Я не могу использовать str(), потому что мы еще не изучили их в классе. мы рассмотрели только табуляцию, пробелы и регулировку слева, справа и по центру

Проблема: мне нужно округлить промежуточный итог до копейки, прежде чем продолжить, а затем округлить налог до копейки, прежде чем продолжить. но тогда я делаю

format(Subtotal= subPot + petPri + bagPri, '.1f')

я получил

позиционный аргумент следует за аргументом ключевого слова

и когда я пытаюсь

Tax = Subtotal * TAX_RATE, format(Subtotal, '.1f'), 

Я получил:

неподдерживаемые типы операндов для +: 'float' и 'tuple'

Это мой код:

# Calculations for overall total price
Subtotal = subPot + petPri + bagPri
Tax = Subtotal * TAX_RATE
TOTAL = Subtotal + Tax


# Output
print ("-----------------------------------------------")
print ("Supplies and Pricing for Order", userOrder,)
print ()
print ("Number of small pots: \t",     int(smlPot),)
print ("Number of medium pots: \t",    int(medPot),)
print ("Number of large pots: \t",     int(larPot),)
print ()
print ("Petunias:",                int(totPet), "plants")
print ("Potting soil:",            math.ceil(totBag), "bags")
print ()
print ("Subtotal\t""$""\t",            format(Subtotal, ',.2f'))
print ("Tax\t\t""$""\t",               format(Tax, ',.2f'))
print ("TOTAL\t\t""$""\t" ,            format(TOTAL, ',.2f'))
print ("-----------------------------------------------")

Я хочу выровнять все, не используя табуляцию или пробелы. Это должно выглядеть так:

--------------------------------------------------
Supplies and Pricing for Order 1234
Number of small pots:        5
Number of medium pots:       6
Number of large pots:        7

Petunias:                101 plants
Potting soil:              4 bags

Subtotal    $   123.45
Tax         $   18.56
TOTAL       $   234.78
--------------------------------------------------

person j.davis    schedule 30.06.2016    source источник
comment
Что такое format?   -  person smac89    schedule 30.06.2016


Ответы (1)


Я предполагаю, что вы используете python 3.x. Как вы сказали, вы не можете использовать вкладки и пробелы, вы можете использовать методы для строки. Например, существует множество функций, таких как ljust(), rjust(), center(), также вы можете использовать функцию round(). У вас есть функция str(), чтобы использовать вышеуказанные строковые методы сначала округлить ваше число, затем преобразовать его в строку, а затем применить эти методы. Чтобы узнать, что именно они делают и какие аргументы они приводят, вы можете обратиться к их документации. Это методы для строк. Кроме того, end='' — это разделитель, который говорит, что печатать после печати строки. По умолчанию это новая строка, здесь я использовал end=''. Я взял все значения на 0. Думаю, теперь вы можете понять, что делать. Если нет, то скажи мне. Кроме того, я уже отредактировал ваш полный код, если вы не можете понять отсюда, вы можете сказать мне. Я отредактировал часть вашего кода, и вы можете увидеть результат. Ниже приведен код:

subPotm, petPri, bagPri = 0, 0, 0
smlPot, medPot, larPot = 0, 0, 0
subPot = 0
TAX_RATE = 0
userOrder = 0    

Subtotal = subPot + petPri + bagPri
Tax = Subtotal * TAX_RATE
TOTAL = Subtotal + Tax


print ("-----------------------------------------------")
print ("Supplies and Pricing for Order".ljust(30), end='')
print (userOrder)
print ()
print ("Number of small pots:".ljust(30), end='')
print (smlPot)
print ("Number of medium pots:".ljust(30), end='')    
print (medPot)
person GadaaDhaariGeek    schedule 30.06.2016