我的作业要求我遍历字符串中的每个字母,偶数索引为大写,奇数索引为小写。它应保留所有标点符号或数字不变,并应以偶数索引更改每个字母的大小写。这意味着,如果该字母最初是大写字母,则应将其转换为小写字母。
例如: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!”测试了您的代码。我们期望模拟返回str“ abCd。efGh .. IJkL!”。但是,它返回了str“ aBcD。eFgH .. IjKl!”。
答案 0 :(得分:0)
您在每个字符而不是每个字母之后增加索引。其中包括标点符号,空格,数字之类的字符。
在使用isalpha()函数递增索引之前,需要添加条件语句:
If letter.isalpha()
Index += 1
此外,您需要添加另一个条件语句来检查偶数字母是否已经大写,以便您切换大小写。
答案 1 :(得分:0)
您的代码当前已实现,因此具有奇数索引的字母将变为小写,而具有偶数索引的字母将变为大写。 如果只希望偶数索引上的字母从小写变为大写,或从大写变为小写,则应使用以下方法:
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