我有一个任务是用python创建一个“简单”的杂货店列表,在这个列表中,用户需要输入食品的名称和价格,然后输入他们实际购买的商品和数量,然后显示总价格。最初询问时,食品杂货必须放入词典,第二部分则是询问用户购买的商品和价格,而不是在第一个循环中简单地询问“你买了多少钱”。以下是我目前所掌握的情况:
item = {}
choice = 0
while True:
x = input('enter item: ')
if x =='done':
break
y = float(input('enter price: '))
item[x] = (y)
while True:
x=input('enter item: ')
对于第二个“while true”语句,我尝试了以下方法,但没有奏效:
^{pr2}$它带着一个
type error, can't multiply sequence by non-int of type 'float'
如有任何帮助,我将不胜感激,因为如果我提前提交这篇文章,我将在星期五的早课中逃课。谢谢!在
所以第一个循环应该得到项目列表和它们的价格。在
然后第二部分要问你买的是哪种商品,数量是多少
^{pr2}$所以第三部分是如果你有两个字典,一个是输入item name的price值,另一个输入item name的数量值。我将把最后的实现细节留给您,但将在这里提供一些提示:
some_dictionary[key]
将给出存储在该键上的值KeyError
some_dictionary.get(key)
也会这样做,但是如果密钥不存在,它将给出None
,而不是引发错误some_dictionary.get(key, any_value)
将执行相同的操作,但对于不存在的密钥,它将返回any_value
。在sum(any_collection_of_numbers)
将给出这些数字的总和编辑:我在下面说的一些东西,实际上是在我写作的时候被OP删掉的。在
变量
choice
未使用,因此我们将其删除。据我所知,最后两行没有用,所以我放弃了。所有东西都可以与一个数据成员连接,所以为了方便起见,我将它作为一个类来编写。在具有以下输入:
^{pr2}$和
.get_totals()
grocer.items
将是:在第二个while循环中,您将得到错误。在
因为你将一个字符串与浮点变量相乘。
^{pr2}$当您编写
z=input("enter amount you want to purchase: ")
时,Python将其存储为“str”类型。您应该执行类型转换,只需在input()之前写入所需的类型。
对于您的情况,只需更改这一行。
z=(input("enter amount you want to purchase: "))
进入。在你的计划会成功的。在
相关问题 更多 >
编程相关推荐