如何在 Python 中为用户字符串输入分配数值



我有一个学校作业,它请求许多用户输入,确定用户是否需要牛奶、果汁及其大小 例如,牛奶的价格为 4.00 美元,升级到大牛奶的成本为 0.40 美元。最后,输出应读取 ex。

大牛奶,成本:4.55 美元

我的问题是,如何为每个相应的字符串输入分配一个值?在以下代码的末尾,成本只是吐出字符串的总和,而不是实际将每个字符串的成本相加并吐出总数值。我似乎不知道我应该在这里做什么。

在计算成本的最后一行中:

subtotal=(askSize + askBeverage + askFlav)

您不会对在文件顶部定义的变量求和(含成本(,而是连接用户键入的字符串。例如askSize可以是字符串"small"。所以,你在这里所做的可以写成:

subtotal=("small" + "tee" + "lemon")

在 Python 中,在字符串之间使用+将连接它们。这意味着它将一个接一个地添加字符串以制作更大的字符串。示例:"foo" + "bar" = "foobar".

如果要引用每个选项的成本,一种解决方案(但还有其他解决方案(是使用字典来存储成本,而不是像您那样使用多个变量:

# Dictionary of costs
costs = {"tea": 1.50,
"coffee": 1.50,
"small": 0,
"medium": 0.75,
"large": 1.75,
"mint": 0.50,
"lemon": 0.25,
"chocolate": 0.75,
"vanilla": 0.25,
"none": 0
}

然后,要获取与字符串对应的数字,您可以从字典中获取项目:

tea_cost = costs["tea"]  # tea_cost will be equal to 1.50
ask_size_cost = costs[askSize]  # ask_size_cost will be equal to the cost of the asked size

现在,很容易获得您的总成本:

total_cost = costs[askSize] + costs[askBeverage] + costs[askFlav]

当然,请注意字符串大小写,在我的示例中,所有内容都必须是小写的。

希望对您有所帮助!

注意:你可以对其余代码进行许多改进,不要犹豫,在互联网上阅读一些Python代码以使其更好。

你需要一个从未声明过的subtotal变量,然后在每次选项选择后+=递增它:

subtotal = 0
askName = str(input("What is your name?")).title()
askBeverage = str(input("What type of beverage would you like?")).title()
if askBeverage.lower() in ("t", "tea"): #ensures any variation of upper/lowercase will work
subtotal += 1.50
askSize = str(input("Would you like a small, medium, or large Tea?")).title() # SIZE
if askSize.lower() in ("small", "s"):
subtotal += 0
elif askSize.lower() in ('medium', 'm'):
subtotal += .75
elif askSize.lower() in ('large', 'l'):
subtotal += 1.75
else:
print("Invalid size specified.")
sys.exit()
askFlav =str(input("Any flavourings for your Tea? Your options are mint, lemon, or none")).title() # FLAVOURING
if askFlav.lower() in ("m", "mint"):
subtotal += .50
elif askFlav.lower() in ("l", "lemon"):
subtotal += .25
elif askFlav.lower() in ('none', 'n'):
subtotal += 0
else:
print("Invalid flavour specified.")
sys.exit()

你的askSize,askDrink,askFlav是字符串,所以你不能在不变成数字的情况下添加它们。最直接的解决方案是将它们更改为浮点数。 subtotal=float(askSize) + float(askBeverage) + float(askFlav) print("For {}, a {} {}, with {:.2f} flavoring, cost: {}".format(askName,askSize,askBeverage,askFlav, subtotal)) 看来你刚刚开始学习编程。Python是一个很好的语言。请享受!

相关内容

  • 没有找到相关文章

最新更新