如何解决在 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()
解决方法
问题是您使用的不是一个 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.")
,
您调用 print_menu() 两次,因此尝试通过调用它来启动 while 语句,而不是这种冗余操作,这样您可以删除 2 行代码。你也使用空的 return 语句,这真的不需要。即将到来的代码的占位符是“pass”。
def main():
store = dict()
file = open("store.txt",'r') # dont forget to change it so sys.argv[1]
create_store(store,file)
while True:
print_menu()
user_choice = input()
if user_choice == '0':
file.close()
elif user_choice == '1':
query_by_category(store)
elif user_choice == '2':
pass
elif user_choice == '3':
pass
elif user_choice == '4':
pass
else:
print("Error: unrecognized operation.")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。