You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编写待办应用时使用match匹配menu()函数出现Syntax Error的解决方法

问题解决:Python match语句语法错误

核心原因

你的match语句触发Syntax Error,是因为Python版本低于3.10——match(结构模式匹配)是Python 3.10才正式引入的语法特性,低版本Python无法识别该语法,因此报错。

解决方案

有两种可行的解决方式:

1. 升级Python版本

下载并安装Python 3.10及以上版本,升级完成后,你的原有match代码就能正常运行。

2. 替换为兼容低版本的if-elif-else结构

如果无法升级Python版本,将match代码块替换为传统的条件判断结构,同时修复原代码中存在的字典引用问题:

# 替换原有的match代码块
option = menu()
if option == 1:
    os.system("clear")
    print(f"{Fore.GREEN}ADD ITEM TO LIST")
    print(Style.RESET_ALL)
    # 每次新建字典,避免所有列表项指向同一引用
    newItem = {
        "name": input("Item name > "),
        "description": input("Item description > "),
        "date": input("Item date > "),
        "priority": input("Item priority (low/med/high) > ")
    }
    todo.append(newItem)
    print(todo)
    input()
elif option == 2:
    # 补充移除待办项的逻辑
    os.system("clear")
    print(f"{Fore.RED}REMOVE ITEM FROM LIST")
    print(Style.RESET_ALL)
    if not todo:
        print("待办列表为空")
        input()
        return
    for idx, item in enumerate(todo, 1):
        print(f"{idx}. {item['name']}")
    try:
        del_idx = int(input("输入要删除的项编号 > ")) - 1
        if 0 <= del_idx < len(todo):
            removed = todo.pop(del_idx)
            print(f"已删除:{removed['name']}")
        else:
            print("无效的编号")
    except ValueError:
        print("请输入有效的数字")
    input()
elif option == 3:
    # 补充查看待办列表的逻辑
    os.system("clear")
    print(f"{Fore.BLUE}YOUR TO-DO LIST")
    print(Style.RESET_ALL)
    if not todo:
        print("待办列表为空")
        input()
        return
    for idx, item in enumerate(todo, 1):
        print(f"\n{idx}. 名称:{item['name']}")
        print(f"   描述:{item['description']}")
        print(f"   日期:{item['date']}")
        print(f"   优先级:{item['priority']}")
    input()
else:
    print("无效选项,请重新选择")
    time.sleep(1)

补充说明:原代码中newItem是全局字典,每次添加到todo列表时,都是添加同一个字典的引用,后续修改newItem会导致列表里所有项同步变化。上面的代码将newItem放到条件块内,每次新建独立字典,避免了这个问题。

内容的提问来源于stack exchange,提问作者HuskReaper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 02:50:42