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

Python奇数索引字母大小写转换函数异常,如何修正?

问题修正方案

修正后的代码

def mock(string):
    result = []
    for idx, char in enumerate(string):
        if char.isalpha():
            # 针对0开始的偶数索引(对应1开始的奇数位置)转换大小写
            if idx % 2 == 0:
                char = char.swapcase()
            result.append(char)
        else:
            # 非字母字符直接保留
            result.append(char)
    return ''.join(result)

print(mock("Abcd. Efgh.. Ijkl!"))  # 输出: abCd. efGh.. IJkL!

原代码的错误点

  • 索引维护错误:原代码手动维护index变量时,在if index % 2 == 0分支内执行index +=1,分支结束后又执行一次index +=1,导致每次循环index增加2,跳过大量索引的处理,且非偶数索引的字符未被添加到结果字符串中,直接引发输出混乱。
  • 非字母字符判断冗余:用ord范围判断标点和空格的方式繁琐且遗漏数字处理,直接用char.isalpha()判断字母字符更简洁准确。
  • 逻辑覆盖不全:原代码未处理数字字符(需求要求保留数字,但原代码的判断逻辑未包含数字范围),修正后的代码通过else分支直接保留所有非字母字符,包括数字、标点和空格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 00:10:37