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

使用for循环调用.upper()后字符串出现异常大写字母问题排查

问题分析与解决

问题根源

你代码里的问题出在输入字符串本身包含大写字母(比如示例里的R和U)。看这段核心逻辑:

word += letter.upper() + (letter * i) + "-"

当letter本身是大写时,letter * i会直接重复大写字母,自然就出现了整段大写的情况。而预期里重复的部分应该是小写,所以不管原字符是大写还是小写,重复的部分都要强制转成小写。

修复后的完整代码

把重复部分改成letter.lower() * i,同时优化末尾去横杠的写法:

def translate(s):
    i = 0
    word = ""
    for letter in s:
        # 首字母保持大写,重复部分强制转小写
        word += letter.upper() + (letter.lower() * i) + "-"
        i += 1
    # 直接用切片去掉末尾的"-",简洁高效
    return word[:-1]

验证结果

输入"ZpglnRxqenU"时,修复后的代码会输出符合预期的结果:
Z-Pp-Ggg-Llll-Nnnnn-Rrrrrr-Xxxxxxx-Qqqqqqqq-Eeeeeeeee-Nnnnnnnnnn-Uuuuuuuuuuu

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 03:25:49