私は教室外で学習するために、自動販売機をPythonで作成しようとしています。私は現在、自動販売機の飲み物や軽食のオプションを印刷しようとしています。関数choose()を追加する前に、リストオプションを完全に出力しました。選択()関数を追加すると、リストの最初の項目だけが出力されます。次の関数に行く前に完全に印刷されていないリスト
import time
drinkPairs=[("Apple Juice", 1.50), ("Monster", 3.75), ("Red Bull", 3.75), ("Sprite", 2.00), ("Water", 1.00)]
drinkDict, drinkPrice = zip(*drinkPairs)
snackPairs=[('Pringles', 3.50), ('Doritos', 3.15), ('Chocolate Donuts', 2.50), ('Honey Bun', 3.75), ('Cinnamon Roll', 3.50)]
snackDict, snackPrice = zip(*snackPairs)
def select():
if 'drink' in answer.lower():
drink()
elif 'snack' in answer.lower():
snack()
else:
error()
#give selection of items and costs of items
def drink():
print('Here are the drink options:\n')
for i, p in enumerate(drinkDict):
print('{}: ${:.2f}\n'.format(p,drinkPrice[i]))
#choose()
def snack():
print('Here are the snack items')
for i, p in enumerate(snackDict):
print('{}: ${:.2f}\n'.format(p,snackPrice[i]))
choose()
def error():
print("I'm sorry, I don't understand. Please try again.\n")
time.sleep(2)
select()
def choose():
selection=input('Which item would you like?\n')
if 'apple' in selection.lower():
amountDue= amountDue + 1.50
selectTwo=input('Would you like anything else?\n')
if selectTwo.lower().startswith('n'):
amountDue()
elif any(x in selectTwo.lower() for x in options):
choose()
else:
chooseError()
elif 'monster' in selection.lower():
amountDue= amountDue + 3.75
selectTwo=input('Would you like anything else?\n')
if selectTwo.lower().startswith('n'):
amountDue()
elif any(x in selectTwo.lower() for x in options):
choose()
else:
chooseError()
elif 'bull' in selection.lower():
amountDue= amountDue + 3.75
selectTwo=input('Would you like anything else?\n')
if selectTwo.lower().startswith('n'):
amountDue()
elif any(x in selectTwo.lower() for x in options):
choose()
else:
chooseError()
elif 'sprite' in selection.lower():
amountDue= amountDue + 2.00
selectTwo=input('Would you like anything else?\n')
if selectTwo.lower().startswith('n'):
amountDue()
elif any(x in selectTwo.lower() for x in options):
choose()
else:
chooseError()
elif 'water' in selection.lower():
amountDue= amountDue + 1.00
selectTwo=input('Would you like anything else?\n')
if selectTwo.lower().startswith('n'):
amountDue()
elif any(x in selectTwo.lower() for x in options):
choose()
else:
chooseError()
elif 'pringles' in selection.lower():
amountDue= amountDue + 3.50
selectTwo=input('Would you like anything else?\n')
if selectTwo.lower().startswith('n'):
amountDue()
elif any(x in selectTwo.lower() for x in options):
choose()
else:
chooseError()
elif 'doritos' in select.lower():
amountDue= amountDue + 3.15
selectTwo=input('Would you like anything else?\n')
if selectTwo.lower().startswith('n'):
amountDue()
elif any(x in selectTwo.lower() for x in options):
choose()
else:
chooseError()
elif 'chocolate' in select.lower():
amountDue= amountDue + 2.50
selectTwo=input('Would you like anything else?\n')
if selectTwo.lower().startswith('n'):
amountDue()
elif any(x in selectTwo.lower() for x in options):
choose()
else:
chooseError()
elif 'honey' in select.lower():
amountDue= amountDue + 3.75
selectTwo=input('Would you like anything else?\n')
if selectTwo.lower().startswith('n'):
amountDue()
elif any(x in selectTwo.lower() for x in options):
choose()
else:
chooseError()
elif 'roll' in select.lower():
amountDue= amountDue + 3.50
selectTwo=input('Would you like anything else?\n')
if selectTwo.lower().startswith('n'):
amountDue()
elif any(x in selectTwo.lower() for x in options):
choose()
else:
chooseError()
else:
chooseError()
def chooseError():
print("I'm sorry ,I don't understand. Please try again {}.".format(name))
time.sleep(2)
choose()
#welcome user to vending machine
name=input('Welcome to Vending 2.0. What is your name?\n')
answer= input('Okay {}, would you like a drink or snack?\n'.format(name))
select()
choose'ブロッキング(私たちは、コードを持っていない)とあなたのループ内でなければなりません 'ので... –
は、私は不要な場合は、全体のコードを追加したくありませんでした。私はそれを追加して残りを見せます。 –
選択を求めるプロンプトを表示する前にすべてを印刷したい場合は、 'choose()'を1つのインデントレベルから移動してください。今はfor-loop内にあるので、1つの項目を印刷してプロンプトを表示します。移動すると、すべての項目が印刷され、プロンプトが表示されます。 –