python - 在 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.")
推荐阅读
- perl - Perl Dancer 和 Mason2
- python - 正则表达式匹配数字字符串中的 3 个零
- css - 如何将不同的 CSS 样式应用于具有相同类名的 2 个不同元素?
- data-structures - 为什么人们不关心更新图形数据结构?
- java - 向 Jackson 反序列化器添加自定义参数
- wpf - SkiaSharp 中线条的宽度呈现不同
- android - 尝试从 Firebase 实时数据库中删除数据时出现致命错误
- javascript - 掷几个骰子 (JavaScript)
- python - AZURE 函数从 AZURE BLOB 读取 XLSX
- node.js - Sequelize 不会在钩子中创建关联