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

Python 3.10+如何实现不区分大小写的字符串匹配?

解决Python match-case不匹配任意大小写指令的问题

要让match-case语句匹配任意大小写的指令(比如add、Add、ADD),最健壮的方案是将用户输入统一转换为小写(或大写)后再进行匹配,具体实现如下:

核心思路

在对用户输入做空格清理后,调用lower()方法将输入转为全小写,后续match语句仅用小写指令作为匹配条件,就能覆盖所有大小写组合的输入场景。

修改后的完整代码

todos = []

while True:
    user = input('Enter add, show, edit, complete or exit to finish. : ')
    user = user.strip().lower()  # 先去除首尾空格,再统一转为全小写

    match user:
        case 'add':
            todo = input('Add an item: ')
            todos.append(todo)
        case 'show' | 'display':
            list_length = len(todos)
            for i, item in enumerate(todos):
                item = item.title()  # 首字母大写格式化输出待办项
                print(f'{i + 1}-{item}\n')
            # 处理单复数语法
            print(f'You have {list_length} item{"s" if list_length != 1 else ""} in your to do list.\n')
        case 'exit':
            break
        case _:
            print("Invalid command, please try again.")

方案优势

  • 无需枚举所有大小写组合(比如case 'add' | 'Add' | 'ADD'),代码更简洁易维护
  • 覆盖所有大小写混合的输入场景,比如aDd、AdD都能正确匹配
  • 你之前尝试的capitalize()无效,是因为它仅将首字母转为大写、其余小写,无法覆盖全大写等场景(比如ADD转后是Add,依然不匹配case 'add')

内容的提问来源于stack exchange,提问作者Weverson Goncalves Muciarone

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 12:57:10