这是我的代码:
def mock(s):
ret = ""
i = True
for char in s:
if i:
ret += char.upper()
else:
ret += char.lower()
if char != ' ':
i = not i
return ret
print(mock("abcd efgh ijkl"))
输出:
AbCd EfGh IjKl
但必须是这样的:
AbCd eFgH IjKl
我不知道我做错了什么以及我该怎么做才能解决它。
答案 0 :(得分:3)
您可以使用简单的理解和join()
:
s = 'abcd efgh ijkl'
morph = ''.join([e.upper() if i%2==0 else e for i, e in enumerate(s)])
print(morph)
输出:
AbCd eFgH IjKl
请注意,这并非技术上大写每个其他字母(除非您将空格视为字母),而是将所有其他索引大写,根据您所需的输出,它似乎是您想要的。
要修复当前代码,您需要做的就是替换:
if char != ' ':
i = not i
使用:
i = not i
答案 1 :(得分:1)
def mock(s):
ret = ""
i = True
for char in s:
if i:
ret += char.upper()
else:
ret += char.lower()
i = not i
return ret
print(mock("abcd efgh ijkl"))
输出:
AbCd eFgH IjKl
预期输出不关心空格