python - 需要帮助在字典中以小数点后 2 位打印项目以及间距问题。[Python]
问题描述
我目前正在开发一个接收电视订阅的计划。在输出过程中我似乎遇到了问题,因为 sub_price["Sports Group Pack" 似乎以小数点后 1 位输出为 21.4 而不是我想要的 21.40。似乎还有一个输出问题,因为我得到了这样的空间:($ 21.4)
我的目标输出更像(21.40 美元)我也无法让美元符号坚持打印订阅选择的最后 2 个数字。我得到的是 8.56 美元,是否有可能达到 8.56 美元?任何帮助,将不胜感激。
[代码]
def get_subscription():
sub_price = {
"Sports Group Pack":21.40,
"Documentaries Pack":15.32,
"FOX Movies Pack":17.12,
"HBO Pack":13.98,
"Cinema World":9.56,
"Celestial Movies":8.56}
print("Channels available for subscription (price/mth)")
for key, value in sub_price.items():
print("{0:<40}{1:>2}{2:>5.2f}".format(key,"$",value))
sub01 = input("Subscribe to Sports Group Pack? (Y/N):").upper()
sub02 = input("Subscribe to Documentaries Pack? (Y/N):").upper()
sub03 = input("Subscribe to FOX Movies Pack? (Y/N):").upper()
sub04 = input("Subscribe to HBO Pack? (Y/N):").upper()
sub05 = input("Subscribe to Cinema World? (Y/N):").upper()
sub06 = input("Subscribe to Celestial Movies? (Y/N):").upper()
if sub01 =="N" and sub02 == "N" and sub03 == "N" and sub04 == "N" and sub05 == "N" and sub06 == "N":
print()
print("Your selection:")
print(" - None")
print()
print("Total cost $0.00")
sum=0
if sub01 =="Y" or sub02 == "Y" or sub03 == "Y" or sub04 == "Y" or sub05 == "Y" or sub06 == "Y":
print("Your selection:")
if sub01 == "Y":
print(" - Sports Group Pack", "($", sub_price["Sports Group Pack"],")")
sum = sum + sub_price["Sports Group Pack"]
if sub02 == "Y":
print(" - Documentaries Pack", "($", sub_price["Documentaries Pack"],")")
sum = sum + sub_price["Documentaries Pack"]
if sub03 == "Y":
print(" - FOX Movies Pack", "($", sub_price["FOX Movies Pack"],")")
sum = sum + sub_price["FOX Movies Pack"]
if sub04 == "Y":
print(" - HBO Pack", "($", sub_price["HBO Pack"],")")
sum = sum + sub_price["HBO Pack"]
if sub05 == "Y":
print(" - Cinema World", "($", sub_price["Cinema World"],")")
sum = sum + sub_price["Cinema World"]
if sub06 == "Y":
print(" - Celestial Movies", "($", sub_price["Celestial Movies"],")")
sum = sum + sub_price["Celestial Movies"]
if sub01 =="Y" or sub02 == "Y" or sub03 == "Y" or sub04 == "Y" or sub05 == "Y" or sub06 == "Y":
print()
print("Total cost $%.2f"%sum)
get_subscription()
解决方案
AFAIK python 会自动从整数中去除 0,但有一种解决方法。您可以在字典中定义值是一个字符串:
sub_price = {
"Sports Group Pack":'21.40',
"Documentaries Pack":'15.32',
"FOX Movies Pack":'17.12',
"HBO Pack":'13.98',
"Cinema World":'9.56',
"Celestial Movies":'8.56'}
在使用它们进行计算时,使用以下方法即时转换为整数:
int(sub_price['KEY_NAME'])
推荐阅读
- algorithm - Welzl 算法的迭代版本
- php - HTTP/1.1 与 HTTP/2:PHP 7.1 和 Apache 2.4 中的会话锁定
- caching - ASP.NET Core WebAPI:内存缓存与响应缓存
- typescript - 使 vue-resource 与打字稿一起工作
- html - HTML.RenderAction 在哪里执行?
- mysql - MySQL过程无法识别参数
- php - laravel 5.2 总是重定向到 https
- c++ - C++ 应在标头和源代码中包含字符串
- angular - 当应用程序在 X 秒后未能获得当前位置时显示要使用的消息
- python - Python 3:以增量方式将多个字典写入 CSV 文件