2016-04-05 2 views
1

Это перекрестное сообщение от reddit (Указано в этом направлении моим SO) Любая помощь была бы высоко оценена.Цитирование по нескольким индексам в Python

Я работаю в середине домашней работы, и у меня было несколько вопросов о чтении нескольких индексов. Результат, который я ищу, состоит в том, чтобы создавать списки, которые питаются друг с другом. В этом случае нужно составить список фруктов, а затем спросить, насколько дороги плоды, а затем спросить, сколько у клиента осталось показ общей суммы для каждого клиента, зацикливаясь на каждом клиенте, пока вы не нажмете. Это интро к классу программирования письма в 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

Ну, Heres некоторые идеи, чтобы вы начали, не делая задание для вас:

  • Учитывая вашу конечная цель, чтобы распечатать список клиентов, содержащий какие плоды они имеют и клиенты всего, вам вероятно, должны хранить все эти данные вместе, а не в отдельных списках. Поэтому подумайте над тем, чтобы использовать что-то вроде словаря, где ваши ключи являются именами клиентов, а значение - это дополнительный словарь, содержащий количество каждого фрукта и другую соответствующую информацию. Если вы сохраните все эти данные вместе, становится намного проще распечатать одну информацию о клиентах

  • Возможно, первое, что вы хотите сделать, это попросить имя клиента. Затем вы можете установить это для первого ключа в словаре.

  • Когда вы Переберите имена фруктов, вы можете использовать их в качестве дополнительных клавиш для этого одного клиента, где значение имеет число каждого плода

  • Вы хотите другой ДИКТ держать цены для каждого плода

После того, как у вас есть такой тип структуры вы можете сделать что-то подобное, чтобы напечатать все из:

#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) 

W он вернет что-то вроде:

bob 
orange (1.2), Quantity: 3 
apple (1.1), Quantity: 1 
Total: 4.7 
Смежные вопросы