2016-04-05 5 views
1

これはredditのクロスポストです(この方向で私のことを指摘しています)。助けがあれば幸いです。Pythonで複数のインデックスをループしています

私は中途半端な宿題プロジェクトで、複数のインデックスを読むことについていくつか質問がありました。私が探している結果は、お互いに食い込むリストを作ることです。この場合は、フルーツリストを作成し、フルーツがどれだけ高価であるかを尋ねてから、顧客の数を尋ねる前に、各顧客の合計を表示します。これまでのところ、私は(多かれ少なかれ)果物のリストを構築することができ、プログラムを構築しました

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 

:これは2.7

正しい出力は次のようになります。Pythonでプログラミングクラスの書き込みにイントロです以下のように、 価格を求める、との合計を計算するが、私はかなり最後の「顧客リスト」を統合する方法を見つけ出すことはできません私のコードは次のとおりです。

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 
関連する問題