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

字符串交替大写功能输出不符合预期,请求代码错误排查与修复

问题分析与修复

你的代码逻辑是只有遇到非空格字符时才切换大小写状态,这就是导致结果不符合预期的核心原因。咱们拆解下执行流程就能明白:

处理到第一个单词末尾的d时,状态i会从False切换为True;接着遇到空格,因为是空格,代码不会切换i的状态,所以i仍然保持True,下一个字符e就被转为了大写——但你的预期里e是小写,这说明你实际想要的是每个字符(包括空格)都参与状态交替的切换,只是空格本身不需要改变大小写。

修复后的代码

def mock(s):
    ret = ""
    i = True
    for char in s:
        if i:
            ret += char.upper()
        else:
            ret += char.lower()
        # 移除原有的空格判断,每个字符处理后都切换状态
        i = not i
    return ret

print(mock("abcd efgh ijkl"))

修复逻辑说明

现在不管当前字符是不是空格,每次处理完一个字符后都会切换i的状态:

  • 处理完d后i变为True,遇到空格时,添加空格后i切换为False;
  • 接下来的e会以i=False的状态转为小写,之后i切换为True,f转为大写,以此类推;
  • 最终运行结果正好是你预期的:AbCd eFgH IjKl。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:14:23