私はPythonを初めて使っています。最近、私はPythonを学ぶためにオンラインのPythonコースに従います。それ自身の中で関数を呼び出そうとします
が入力としてためという名前の文字列を取り item_order という関数を記述します。ここではコースからの簡単な質問です。文字列には、顧客が1つのスペースで区切って注文できるアイテムの単語のみが含まれています。関数は、各項目の数を数えた文字列を返します。
サラダ:[#サラダ]ハンバーガー:[#ハンバーガー]水:[水]。
結果の例がある:2ハンバーグ:2水:order = "salad water hamburger salad hamburger"
は、関数が
サラダ返す場合、1
を私は何の問題もなく、質問を自分自身を終えました。コードは次のとおりです。
def item_order (order):
num_sa = 0
num_wa = 0
num_ha = 0
new_order = order.split(' ')
for item in new_order:
if item == 'salad':
num_sa += 1
elif item == 'water':
num_wa += 1
elif item == 'hamburger':
num_ha += 1
group = 'salad:'+str(num_sa)+' '+'hamburger:'+str(num_ha)+' '+'water:'+str(num_wa)
return group
print('Please enter the order.')
order = raw_input('')
group = item_order(order)
print(group)
しかし、単に好奇心入力「順序」はどのように私はそのような状況のために自分のコードを変更することができ、その後、いくつかのミスを持っている場合。だから、私のコードを次のように変更します:
def item_order (order):
num_sa = 0
num_wa = 0
num_ha = 0
flag = 0
new_order = order.split(' ')
for item in new_order:
if item == 'salad':
num_sa += 1
elif item == 'water':
num_wa += 1
elif item == 'hamburger':
num_ha += 1
else:
flag = 1
break
if flag == 1:
print('There is something wrong on the order you insert, please re-enter.')
fix_order = raw_input('')
item_order(fix_order)
group = 'salad:'+str(num_sa)+' '+'hamburger:'+str(num_ha)+' '+'water:'+str(num_wa)
return group
print('Please enter the order.')
order = raw_input('')
group = item_order(order)
print(group)
しかし、どこにコードがバグを含んでいるのかわかりません。
例:"salad water hamburger salad hamburge"
を入力「注文」として入力すると、 'hamburge'が間違っているため、もう一度入力し直すことができます。
"サラダ:2ハンバーガー:1水:1"
しかし、ハンバーガーの数
私はそうした後、正しい順序"salad water hamburger salad hamburger"
を再入力し、それは私に結果が得られます私はそれ自身の中で関数item_order()
を呼び出そうとすると問題があると思う。
誰かがこのバグを見つけるのを手助けできますか?
ワウ。私は今、私の問題を理解しています。どうもありがとうございました。 @mrwyattにもあなたのコメントに感謝します。 –