You need to enable JavaScript to run this app. Python 如何实现忽略空格仅对每第二个字母进行大小写切换
优惠活动
大模型
产品
解决方案
定价
更多

Python 如何实现忽略空格仅对每第二个字母进行大小写切换

现有代码的核心问题

原代码将字符串内所有字符(包含空格、数字、标点)都纳入遍历计数,非字母字符也会占用计数序号,直接打乱英文字母的大小写切换节奏,完全不符合“非字母不参与计数、不做任何修改”的需求。

修正实现逻辑
  • 独立维护专门的英文字母计数器,仅当遍历到的字符是英文字母时,才触发计数器累加
  • 对识别到的英文字母,根据计数器的奇偶值决定转换形式:每第二个出现的字母(对应字母序列里第2、4、6…位的字符)转为大写,其余字母转为小写
  • 遍历到的所有非字母字符(空格、数字、标点等)直接原样保留,不做任何格式转换,也不触发计数器变化
修正后可运行代码
def spaces(test_space):
    letter_counter = 0
    result = []
    for char in test_space:
        if char.isalpha():
            # 仅英文字母参与计数与大小写转换
            processed_char = char.upper() if letter_counter % 2 == 1 else char.lower()
            result.append(processed_char)
            letter_counter += 1
        else:
            # 非字母字符直接保留,不参与计数
            result.append(char)
    return ''.join(result)

# 测试场景验证
print(spaces('Ignore spaces and other characters'))
print(spaces('Ignore spaces and 3rd characters!'))
修正后实际运行输出
iGnOrE sPaCeS aNd OtHeR cHaRaCtErS
iGnOrE sPaCeS aNd 3Rd cHaRaCtErS!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.03 08:06:03