这是来自reddit的交叉帖子(我的SO指向这个方向)任何帮助都会非常感激。
我是家庭作业的中间项目,我有几个关于阅读多个指数的问题。我正在寻找的结果是建立相互馈送的列表。在这种情况下,建立一个水果清单,然后询问水果的价格是多少,然后在显示每个客户的总数之前询问一个客户有多少,为每个客户循环,直到你完成。这是在Python 2.7中编写类编程的简介
正确的输出如下所示:
Enter a fruit name (or done): Mango
Enter a fruit name (or done): Strawberry
Enter a fruit name (or done): Kiwi
Enter a fruit name (or done): done
Enter the price for Mango: 2.54
Enter the price for Strawberry: 0.23
Enter the price for Kiwi: .75
Enter customer name (or done): Bob
Mango($2.54) Quantity: 3
Strawberry($0.23) Quantity: 10
Kiwi($0.75) Quantity: 2
Bob's total purchase is $11.42
Enter customer name (or done): Lisa
Mango($2.54) Quantity: 10
Strawberry($0.23) Quantity: 40
Kiwi($0.75) Quantity: 20
到目前为止,我已经构建了一个程序,可以(或多或少)构建一个水果列表,询问价格,并计算总数,但我无法弄清楚如何整合最终的“客户列表” 我的代码如下:
flist = []
print "Enter a fruit name (or done): " ,
fruit_name = raw_input()
while fruit_name != 'done':
flist.append(fruit_name)
print "Enter a fruit name (or done): ",
fruit_name = raw_input()
print " "
price_list = []
for p in flist:
print "Enter the price for " + p + ":",
price = float(raw_input())
price_list.append(price)
qlist = []
for q in range(len(flist)):
print "How many " + str(flist[q]) + ' (' + '$' + str(price_list[q]) + ')' ":",
quantity = raw_input()
qlist.append(quantity)
total = 0
for i in range(len(flist)):
total += float(price_list[q]) * int(qlist[q])
print "Your total purchase is $ " + str(total)
我不确定如何从这里继续。任何帮助将不胜感激。非常感谢你提前。
答案 0 :(得分:0)
嗯,有一些想法可以让你在没有为你做任务的情况下开始:
鉴于您的最终目标是打印出一个客户列表,其中包含他们拥有的成果和客户总数,您应该将所有这些数据存储在一起,而不是存储在单独的列表中。因此,请考虑使用类似字典的内容,其中您的密钥是客户名称,值是包含每个水果的数量的子字典,以及其他相关信息。如果将所有这些数据存储在一起,则打印单个客户信息变得更加容易
您可能要做的第一件事就是询问客户名称。然后你可以用它来设置字典中的第一个键。
当您遍历水果名称时,您可以将这些用作该客户的附加键,其中值是每个水果的数量
你想要另一个字典来保存每种水果的价格
一旦你拥有了这种类型的结构,你就可以做这样的事情来打印出来:
#Get these values with loops like you're currently doing
customerDict = {"bob": {"orange": 3,"apple": 1},
"alice": {"orange": 2,"apple": 1}}
priceDict = {"orange": 1.2, "apple": 1.1}
#get this from user input
customerName = "bob"
total = 0
print customerName
for k,v in customerDict[customerName].items():
print "%s (%s), Quantity: %s" % (k, str(priceDict[k]), str(v))
total += (priceDict[k] * v)
print "Total: " + str(total)
将返回类似的内容:
bob
orange (1.2), Quantity: 3
apple (1.1), Quantity: 1
Total: 4.7