软工博客25

python作业:
def calculate_expression(expression, variable_assignments):
variables = {}
for assignment in variable_assignments.split(','):
var, value = assignment.split('=')
variables[var] = float(value)

for var, value in variables.items():
    expression = expression.replace(var, str(value))

try:
    result = eval(expression)
    return result
except Exception as e:
    print(f"计算出错: {e}")
    return None

expression = input()
variable_assignments = input()

result = calculate_expression(expression, variable_assignments)
if result is not None:
print(int(result) if result.is_integer() else result)

from pypinyin import pinyin, Style

定义菜单结构

menu = {
"水果": {
"苹果": {"红富士": "甜脆可口", "蛇果": "色泽鲜艳"},
"香蕉": {"芭蕉": "口感软糯", "皇帝蕉": "香甜细腻"}
},
"蔬菜": {
"白菜": {"娃娃菜": "清甜鲜嫩", "大白菜": "营养丰富"},
"萝卜": {"胡萝卜": "富含维生素", "白萝卜": "清热去火"}
}
}

def get_pinyin(text):
"""将中文转换为拼音"""
return ''.join([item[0] for item in pinyin(text, style=Style.NORMAL)])

def display_menu(menu_level, level=0):
"""显示菜单"""
indent = " " * level
for key in menu_level:
print(f"{indent}{key}")
if isinstance(menu_level[key], dict):
display_menu(menu_level[key], level + 1)

def navigate_menu(menu_level):
"""导航菜单"""
while True:
display_menu(menu_level)
choice = input("请输入选项(输入 '返回' 回到上一级,输入 '退出' 结束程序):").strip()
if choice == "退出":
break
elif choice == "返回":
return
elif choice in menu_level:
if isinstance(menu_level[choice], dict):
navigate_menu(menu_level[choice])
else:
print(f"{choice}: {menu_level[choice]}")
else:
# 尝试使用拼音匹配
pinyin_choice = get_pinyin(choice)
for key in menu_level:
if get_pinyin(key) == pinyin_choice:
if isinstance(menu_level[key], dict):
navigate_menu(menu_level[key])
else:
print(f"{key}: {menu_level[key]}")
break
else:
print("无效的选项,请重新输入。")

if name == "main":
navigate_menu(menu)

posted @ 2025-04-15 18:06  Thanatos。syts  阅读(13)  评论(0)    收藏  举报