複数のraw_inputおよび検索

プログラミングは私のお気に入りの趣味の一つなので、私は小さなプロジェクトをPythonで始めました。

私は毎日のルーチンのための栄養学の計算機を作ろうとしています、下のコードを見てください:

# Name: nutri.py 
# Author: pyn

my_dict = {'chicken':(40, 50, 10),
        'pork':(50, 30, 20)
         }

foods = raw_input("Enter your food: ")

#explode/split the user input

foods_list = foods.split(',')

#returns a list separated by comma

print foods_list

私がやりたいこと:

  1. ユーザー入力を取得して変数に格納する
  2. ユーザーの入力に基づいて辞書を検索し、キー/食品が存在する場合は関連付けられた値を返します。
  3. これらの値をさまざまな栄養成分で合計して返します。あなたはxタンパク質、y炭水化物およびz脂肪などを食べました。

どんなアイディアも大歓迎です。

0

3 答え

ここに私の解決策があります。それは、食べ物が辞書にあるかどうかをチェックし、食べ物が辞書にないかどうかを確認します。

my_dict = {'chicken':(40, 50, 10),
        'pork':(50, 30, 20)
         }

foods = raw_input("Enter your food: ")

foods_list = foods.split(',')

empty_list = []
for food in foods_list:
    if food in my_dict:
        empty_list.append(list(my_dict[food]))
    else:
        print '%s has no nutritional information and will not be included in the calculation' % food

values = [sum(x) for x in zip(*empty_list)]

print 'Total protein = %d, Total Carbs = %d, Total Fat = %d' % (values[0],values[1],values[2])

これは、

Enter your food: chicken,pork,pizza
pizza has no nutritional information and will not be included in the calculation
Total protein = 90, Total Carbs = 80, Total Fat = 30
0
追加された

このコードは、あなたがしようとしているすべての必要なものを行います:

my_dict = {'chicken':(40, 50, 10),
        'pork':(50, 30, 20)
         }

foods = raw_input("Enter your food: ")

#explode/split the user input

foods_list = foods.split(',')

#returns a list separated by comma

t=[0,0,0]

print foods_list

for i in foods_list:
    if i.strip() in my_dict:
        v=my_dict.get(i.strip())
        t[0]=t[0]+v[0]
        t[1]=t[1]+v[1]
        t[2]=t[2]+v[2]

print t
0
追加された
my_dict = {'chicken':(40, 50, 10),
        'beef':(50, 30, 20)
         }

foods = raw_input("Enter your food: ")

#explode/split the user input

foods_list = foods.split(',')

#returns a list separated by comma

#print foods_list

nuts = [0, 0, 0]

for food in foods_list :
    if food.strip() in my_dict: 
        i = 0
        for value in  my_dict[food.strip()]:
            nuts[i] += value        
            i += 1  
print nuts  

scripts$ python nutrition.py
Enter your food: chicken, pork, beef
[90, 80, 30]


some improvements ;)
0
追加された
ユーザーが間違った入力(食べ物)を入力すると、これは機能しません。私はこれを下に掲載しました。 Uはどのような場合でもうまくいくことをチェックするかもしれません。
追加された 著者 shalki,
それは今働くでしょう。
追加された 著者 shalki,
ユーザがチキンに入った場合、あなたのものは動作しません。[スペース]ポーク:P
追加された 著者 Redian,
それは動作します、ありがとう。
追加された 著者 neuraload,