[ create a new paste ] login | about

Link: http://codepad.org/sGSrAUmZ    [ raw code | fork ]

Python, pasted on Mar 12:
# coding: utf-8
from collections import namedtuple


Menu = namedtuple('Menu', ['foods', 'order'])


def ask(menu):
    numbers = '/'.join(str(i) for i, _ in enumerate((menu.foods)))
    print('どれを食べますか ({})'.format(numbers))
    num = input('>')
    try:
        order = menu.foods[int(num)]
    except (IndexError, ValueError):
        print('入力エラー')
        return ask, menu
    else:
        return confirm, menu._replace(order=order)


def confirm(menu):
    print(menu.order, 'で本当にいいですか (Y/N)')
    yn = input('>')
    if yn.lower() == 'y':
        return finish, menu
    elif yn.lower() == 'n':
        return ask, menu._replace(order=None)
    else:
        print('入力エラー')
        return confirm, menu


def finish(menu):
    print(menu.order, 'を注文します')
    return None, menu


def main():
    foods = ['和食', '洋食', '中華']
    menu = Menu(foods, None)
    wait = ask
    while wait is not None:
        wait, menu = wait(menu)
    print('完了')


if __name__ == '__main__':
    main()


Create a new paste based on this one


Comments: