2017-09-30 8 views
0

これは私の最初の小さなプロジェクトであり、最初の質問です。レシピ名を文字列として含む2つのリストがあります。私は彼らが望む各リストからどれくらい多くの食事を摂取したかをユーザに尋ね、ランダムな選択をしたいと思う。Pythonで無作為にサンプルをチェック

私は選択した食事が選択されたかどうかをチェックし、変数に保存する食事の価格を表示したいと考えています。

私の考えは、ランダムなサンプルを新しいリストに追加し、if文を使って内容を確認することでした。レシピが新しいリストの中に入っていれば、価格を含む変数が印刷されます。

しかし、レシピの新しいリストをチェックすると、それがリストにあるとは思われません。私が逃したことや、これを行うためのより良い方法がありますか?ありがとうございました。

これまでの私のコード:

import random 
Vegetarian = ["Jungle Curry", "Chickpea Curry", "Dhal", "Buddha Bowl", 
"Chickpea Salad", "Lazy Noodles", "Fry Up"] 
Meat = ["Chilli", "Butter Chicken", "Lamb and Hummus"] 

v = int(raw_input("How many vegetarian meals this week? > ")) 
m = int(raw_input("How many meaty meals? > ")) 

Veg1 = random.sample(Vegetarian, v) 
Meat2 = random.sample(Meat, m) 

veg_week = [] 
meat_week = [] 

veg_week.append(Veg1) 
meat_week.append(Meat2) 

jungle_curry = 10 
chickpea_curry = 10 

if "Jungle Curry" and "Chickpea Curry" in veg_week: 
    print jungle_curry + chickpea_curry 

答えて

0

私が行っているのでしょうか?このように

import random 

Vegetarian = ["Jungle Curry", "Chickpea Curry", "Dhal", "Buddha Bowl", 
      "Chickpea Salad", "Lazy Noodles", "Fry Up"] 
Meat = ["Chilli", "Butter Chicken", "Lamb and Hummus"] 

v = int(raw_input("How many vegetarian meals this week? > ")) 
m = int(raw_input("How many meaty meals? > ")) 

Veg1 = random.sample(Vegetarian, v) 
Meat2 = random.sample(Meat, m) 

veg_week = [] 
meat_week = [] 

veg_week.append(Veg1) 
meat_week.append(Meat2) 

# put the prices of each in the list too 
Vegetarian_price = [10, 10, 10, 10, 10, 10, 10] 
Meat_price = [20, 20, 20] 

v_cost = 0 
m_cost = 0 
for i in range(len(Veg1)): 
    v_cost += Vegetarian_price[Vegetarian.index(Veg1[i])] 

for i in range(len(Meat2)): 
    m_cost += Meat_price[Meat.index(Meat2[i])] 

print v_cost,m_cost 
+0

ありがとう、これは働いた。価格表の値を元のレシピリストに割り当てる方法を説明できますか?私の理解から、それは整数としてVeg1リストの長さを使用し、次にそれが他の2つのリストとどのように相互作用するかは従いません。 –

+0

ベジタリアン・フード・リストとベジタリアン・コスト・リストは、最初のフードの最初の価格を意味するので、ベジタリアン・リストのフード・インデックスを参照し、それを取って価格とその価格を見て、それは複数ある –

1

ちょうどそれはオーケーでなければなりません

veg_week += Veg1 
meat_week += Meat2 

veg_week.append(Veg1) 
meat_week.append(Meat2) 

を変更。

1

あなたはのは、それらを介して行かせ、いくつかのミスを持っている:

  • random.sampleの結果がリストです。あなたはveg_week.append(Veg1' を呼び出すとき、あなたはリストのリストを作成している。この後
  • 、あなたは値に10その後
  • jungle_curryにと chickpea_curryを割り当てる "Jungle Curry""Chickpea Curry"両方がでている場合は、チェックしています選択したサンプル;多分あなたはこれらの今週のメニューに一つずつあるかどうかを確認したい

これは、より良い動作するはず:

import random 

Vegetarian = ["Jungle Curry", "Chickpea Curry", "Dhal", "Buddha Bowl", 
"Chickpea Salad", "Lazy Noodles", "Fry Up"] 
Meat = ["Chilli", "Butter Chicken", "Lamb and Hummus"] 

v = int(input("How many vegetarian meals this week? > ")) 
m = int(input("How many meaty meals? > ")) 

Veg1 = random.sample(Vegetarian, v) 
Meat2 = random.sample(Meat, m) 

if "Jungle Curry" and "Chickpea Curry" in veg1: 
    print(jungle_curry + chickpea_curry) 
+0

ありがとうございます!したがって、レシピごとに変数を設定して価格を設定すると、 jungle_curry = 10 chickpea_curry = 12 など多くのif-in文を使わずにランダムサンプルの合計を追加できますか? –

+0

はい、これはその方法の1つになります。それを試してみてください。それは学ぶ最も良い方法です。あなたが立ち往生した場合、別の質問をするのをためらってください。 –

関連する問題