首页 > 解决方案 > 在 python 中打印菜单

问题描述

我被要求创建一个商店的原始版本并创建一个菜单来帮助管理该商店。问题是,在菜单中的每个选项之后,我应该重新打印菜单,如果用户没有给出有效选项,则打印消息“不支持的操作”,但由于某种原因,即使操作也会打印消息有效(程序正确执行任务,但每次仍打印消息)

def main():
    store = dict()
    file = open("store.txt", 'r')  # dont forget to change it so sys.argv[1]
    create_store(store, file)
    print_menu()
    user_choice = input()
    while True:
        if user_choice == '0':
            file.close()
            return
        if user_choice == '1':
            query_by_category(store)
        if user_choice == '2':
            return
        if user_choice == '3':
            return
        if user_choice == '4':
            return
        else:
            print("Error: unrecognized operation.")
        print_menu()
        user_choice = input()

标签: pythonmenu

解决方案


问题是您使用的不是一个if-else块,而是 5 个不同的块:

改变

if user_choice == '0':
    file.close()
    return
if user_choice == '1':
    query_by_category(store)
if user_choice == '2':
    return
if user_choice == '3':
    return
if user_choice == '4':
    return
else:
    print("Error: unrecognized operation.")

到:

if user_choice == '0':
    file.close()
    return
elif user_choice == '1':
    query_by_category(store)
elif user_choice == '2':
    return
elif user_choice == '3':
    return
elif user_choice == '4':
    return
else:
    print("Error: unrecognized operation.")

推荐阅读