Python(メニュー)

python

今回は受講生(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

python
スポンサーリンク
シェアする
mjpurinをフォローする

コメント

タイトルとURLをコピーしました