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)
我正在尝试让我的输出对齐。我使用了选项卡功能。 但是教授说:"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)