我正在练习格式语句,但是我不太了解它是如何工作的。我专门尝试使用“ .2f”命令来理解format命令,这是我当前拥有的代码,第二行在返回之前运行并返回错误:
salesTax = 0.08
salesAmount = str(input('Enter the sales amount: '))
print ('The sales amount is', format('$'+salesAmount,
'.2f'))
print ('The sales tax is', format("$"+'.2f'))
print('The total sale is', format("$"+totalSales*salesTax,
'.2f'))
input("\nRun complete. Press the Enter key to exit.")
我正在尝试编写一个脚本,该脚本显示以下示例运行的输出:
//Sample run:
Enter the sales amount: 1234
The sales amount is $ 1,234.00
The sales tax is $ 98.72
The total sale is $ 1,332.72
Run complete. Press the Enter key to exit
答案 0 :(得分:2)
.2f应该在format方法之外。
例如,尝试print("{:.2f}".format(12.345678))
答案 1 :(得分:2)
TL; DR
print('The sales amount is $', format(salesAmount, '.2f'))
打破现状:
将数字转换为带浮点表示形式(.2
部分)的小数点后两位(f
部分)格式的字符串。
format(salesAmount, '.2f')
现在您有了一个字符串,可以通过打印将其连接起来,也可以通过+
或其他任何方式连接到先前的代码。
'The sales amount is $' + the_formatted_number
答案 2 :(得分:1)
format
是一个内置函数,带有两个参数:value
和format_spec
。
format('$' + salesAmount, '.2f')
会给您一个错误,因为它期望数字或数字的字符串表示形式为value
才能应用您提供的格式。您会得到一个错误:
ValueError:类型为'str'的对象的未知格式代码'f'
format(salesAmount, '.2f')
这将正常工作。
注意:如果您使用的是Python 3.6+,则还可以使用f字符串:
f"{12.345678:.2f}"
答案 3 :(得分:1)
语法是
format(value, format_spec)
使用.2f
格式时,该值应为float
,而不是字符串,因此您需要将输入转换为float
(input()
返回一个字符串,不需要在结果上使用str()
。而且在格式化之前无法将$
连接到值,您需要将其连接到结果。
您在totalSales
调用中还使用了不存在的变量print()
,它应该是salesAmount
。
salesTax = 0.08
salesAmount = float(input('Enter the sales amount: '))
print ('The sales amount is', '$' + format(salesAmount, '.2f'))
print ('The sales tax is', '$' + format(salesTax*salesAmount, '.2f'))
print('The total sale is', '$' + format(salesAmount + salesAmount*salesTax, '.2f'))
input("\nRun complete. Press the Enter key to exit.")
也就是说,如今format()
函数的这种用法并不常见。使用f字符串或str.format()
更加容易,它可以让您将格式规范嵌入到带有纯文本的字符串中,并将多个值格式化在一起,例如
print("The sales amount is ${.2f}".format(salesAmount))