Python 对齐

Alignment in Python

我正在尝试让我的输出对齐。我使用了选项卡功能。 但是教授说:"The code for this must not use tabs or spaces for alignment, but should instead use formatted output. "

我尝试使用 format('10.2f') 来指示我想要的空格数和四舍五入的位置,但我一直收到语法错误。

我不能使用 str(),因为我们还没有在 class 中学到这些。我们只介绍了制表符、空格以及左、右和居中调整

问题:我需要在继续之前将小计四舍五入到最接近的便士,然后在继续之前将税四舍五入到最接近的便士。但后来我

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

我得到

positional argument follows keyword argument

当我尝试时

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

我得到:

unsupported operand type(s) for +: 'float' and '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
--------------------------------------------------

我假设您使用的是 python 3.x。正如您所说,您不能使用制表符和空格,您可以使用字符串方法。例如有ljust()rjust()center()等多种函数,也可以使用round()函数。您有 str() 函数,以便首先使用上述字符串方法对您的数字进行四舍五入,然后将其转换为字符串,然后应用这些方法。对于他们到底做什么以及他们采取什么论据,您可以去他们的文档。它们是 strings.Also 的方法,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)