首页 > 解决方案 > 遍历字符串中的每个字母,偶数索引为大写,奇数索引为小写

问题描述

我的家庭作业要求我遍历字符串中的每个字母,其中偶数索引为大写,奇数索引为小写。它应该保持任何标点符号或数字不变,并且应该在偶数索引处更改每个字母的大小写。这意味着如果字母最初是大写的,则应将其转换为小写。

例如: mock("Abcd. Efgh.. Ijkl!") 将返回 "abCd. efGh.. IJkL!"。偶数索引字母(A、C、E、g、j、l)改变了大小写,所有其他字符保持不变。

我试图交换它并尝试将它们拆分并重新加入字符串。但我无法让它工作。

def mock(word):
    index = 0
    result = ''
    swap = word.swapcase()

    for letter in swap:
        if index % 2 == 0:
            result += letter.upper()
        else:
            result += letter.lower()
        index += 1
    return result

我们使用 a_str = "Abcd. Efgh.. Ijkl!" 测试了您的代码。我们希望 mock 返回 str "abCd. efGh.. IJkL!"。但是,它返回了 str“aBcD.eFgH..IjKl!”。

标签: pythonpython-3.x

解决方案


您的代码目前使其具有奇数索引的字母将变为小写,而具有偶数索引的字母将变为大写。如果只希望偶数索引上的字母从小写变为大写或从大写变为小写,则应使用以下方法:

def mock(word):
index = 0
result = ''
for letter in word:
    if index % 2 == 0:
        if letter.isupper():
            result += letter.lower()
        else:
            result += letter.upper()
    else:
        result += letter
    index += 1
return result

推荐阅读