【问题标题】:Alignment in Python [duplicate]Python中的对齐[重复]
【发布时间】:2016-11-01 21:51:22
【问题描述】:

我正试图让我的输出对齐。我使用了标签功能。 但是教授说:“此代码不得使用制表符或空格进行对齐,而应使用格式化输出。”

我尝试使用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
--------------------------------------------------

【问题讨论】:

  • 什么是“format”?

标签: python number-formatting text-alignment


【解决方案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)

【讨论】:

    猜你喜欢
    • 2022-01-11
    • 2013-11-21
    • 2018-04-07
    • 2022-11-11
    • 2021-09-18
    • 1970-01-01
    • 2020-10-17
    • 2012-01-29
    • 1970-01-01
    相关资源
    最近更新 更多