遍历字符串中的每个字母,偶数索引为大写,奇数索引为小写

2024-06-24 11:58:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我的家庭作业要求我遍历字符串中的每个字母,偶数索引为大写,奇数索引为小写。它应该保留任何标点符号或数字不变,它应该改变大小写的每个字母在一个均匀的索引。这意味着如果字母最初是大写的,它应该转换成小写。你知道吗

例如:mock(“Abcd。埃夫格。。Ijkl!“)将返回“abCd”。埃夫格。。“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

我们测试了您的代码。埃夫格。。“Ijkl!”。我们希望mock返回str“abCd”。埃夫格。。“IJkL!”。但是,它返回str“aBcD”。埃夫格。。“IjKl!”。你知道吗


Tags: index字母resultmockword偶数小写家庭作业
2条回答

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

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

在每个字符后增加索引,而不是在每个字母后增加索引。包括标点、空格、数字等字符。你知道吗

在使用isalpha()函数递增索引之前,需要添加条件语句:

If letter.isalpha()
  Index += 1

另外,您需要添加另一个条件语句来检查偶数字母是否已经是大写的,以便切换它们的大小写。你知道吗

相关问题 更多 >