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

Python大小写不敏感程序故障:混合大小写输入未触发预期响应

大小写不敏感编辑器判断程序问题排查

需求与问题

需求是编写一个大小写不敏感的Python程序:

  • 持续询问用户使用的编辑器
  • 输入Visual Studio Code(任意大小写组合)时输出“an excellent choice!”并终止程序
  • 输入Word或Notepad(任意大小写组合)时输出“awful”
  • 其他输入输出“not good”

原代码如下:

mystring = 'Visual Studio Code'
mystr2 = 'Notepad'
mystr3 = 'word'
while True:
    usr_input = input('Editor:')
    if mystring in usr_input or mystring.upper() in usr_input or mystring.lower() in usr_input:
        print('an excellent choice!')
        break
    elif mystr2 in usr_input or mystr2.upper() in usr_input or mystr2.lower() in usr_input:
        print('awful')
    elif mystr3 in usr_input or mystr3.upper() in usr_input or mystr3.lower() in usr_input:
        print('awful')
    else:
        print('not good')

运行时发现,输入“viSUal STudiO cODe”或“nOtEpAd”这类混合大小写内容时,程序未触发预期输出,反而输出“not good”。

问题原因

你的判断逻辑存在根本性问题:你是在检查固定大小写的目标字符串是否存在于用户输入中,但混合大小写的输入里既不会包含全小写的目标字符串,也不会包含全大写的目标字符串。比如输入“viSUal STudiO cODe”里,找不到“visual studio code”(全小写)或“VISUAL STUDIO CODE”(全大写),所以条件永远不成立。

正确的思路是把用户输入和目标字符串都转换成统一的大小写(比如全小写或全大写),再进行比较,这样就能彻底忽略大小写差异。

修正后的代码

精确匹配版本(输入需完全等于目标字符串,忽略大小写)

# 定义目标字符串的小写版本
target_excellent = 'visual studio code'
target_awful = {'notepad', 'word'}

while True:
    # 将输入转为小写并去除首尾空格
    usr_input = input('Editor:').strip().lower()
    if usr_input == target_excellent:
        print('an excellent choice!')
        break
    elif usr_input in target_awful:
        print('awful')
    else:
        print('not good')

包含匹配版本(输入包含目标字符串即触发,忽略大小写)

如果需要支持类似“i use Visual Studio Code”的输入也触发对应逻辑,可以改成包含判断:

target_excellent = 'visual studio code'
target_awful = {'notepad', 'word'}

while True:
    usr_input = input('Editor:').strip().lower()
    if target_excellent in usr_input:
        print('an excellent choice!')
        break
    elif any(awful in usr_input for awful in target_awful):
        print('awful')
    else:
        print('not good')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 03:22:02