今回は受講生(N氏)の作成したお題を作成してみよう
注文画面作成
●所持金は1000円~2000円以内でランダムで決まる。
●番号を入力すると所持金から注文した料理の値段が引かれる。
●注文した料理はpopを使いメニュー表から消えるようにする。
●全ての料理を注文すると「全て売り切れました」と表示される、
●注文した料理が所持金より高い金額だと「お金が足りません」と表示する
実行例
所持金 1983 円
メニュー表
0 うどん 200 円
1 ペペロンチーノ 280 円
2 かつ丼 320 円
3 味噌ラーメン 300 円
購入したいメニュー番号を入力してください(e:終了)>>0
うどん を購入しました
所持金 1783 円
メニュー表
0 ペペロンチーノ 280 円
1 かつ丼 320 円
2 味噌ラーメン 300 円
購入したいメニュー番号を入力してください(e:終了)>>1
かつ丼 を購入しました
所持金 1463 円
メニュー表
0 ペペロンチーノ 280 円
1 味噌ラーメン 300 円
購入したいメニュー番号を入力してください(e:終了)>>0
ペペロンチーノ を購入しました
所持金 1183 円
メニュー表
0 味噌ラーメン 300 円
購入したいメニュー番号を入力してください(e:終了)>>0
味噌ラーメン を購入しました
全て売り切れましたLet’s challenge!
作成してみよう
解答例
import random
menu={'うどん':200,'ペペロンチーノ':280,'かつ丼':320,'味噌ラーメン':300}
menu_keys=list(menu.keys())
money=random.randint(1000,2000)
while len(menu_keys) > 0:
print('メニュー表')
for i in range(len(menu_keys)):
print(i,menu_keys[i],menu[menu_keys[i]],'円')
print('\n所持金',money,'円')
if min(menu.values()) > money:
print('お金がなくなりました')
break
idx=int(input('購入したいメニュー番号を入力してください>>'))
item_key=menu_keys[idx]
if menu[item_key] > money:
print('お金が足りません')
continue
print(item_key,'を購入しました\n')
menu_keys.remove(item_key)
price=menu.pop(item_key)
money-=price
else:
print('全て売り切れました')
import random
money = random.randint(1000,2001)
menus=[
('うどん',200),
('ペペロンチーノ',280),
('カツ丼',320),
('味噌ラーメン',300),
]
while True:
print(f'\n所持金{money}円')
print('メニュー表')
for i,menu in enumerate(menus):
print(f'{i} {menu[0]} {menu[1]} 円')
select = input('購入したいメニュー番号を入力してください(e:終了)>>')
if select.lower() == 'e':
break
idx= int(select)
if idx >= len(menus):
print('不正な番号です')
continue
if menus[idx][1] > money:
print('お金が足りません')
continue
menu = menus.pop(idx)
print(f'{menu[0]}を購入しました')
money -= menu[1]
if len(menus) == 0:
print('全て売り切れました')
break
コメント