字符串中的每个其他字母都大写

2024-04-27 03:21:15 发布

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

这是我的代码:

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"))

输出:

^{pr2}$

但必须是这样的:

AbCd eFgH IjKl

我不知道我做错了什么,也不知道该怎么做才能改正。在


Tags: 代码intrueforreturnifdefnot
2条回答

您可以使用简单的理解和join()

s = 'abcd efgh ijkl'
morph = ''.join([e.upper() if i%2==0 else e for i, e in enumerate(s)])
print(morph)

输出:

^{pr2}$

请注意,这并不是技术上的每一个字母都大写(除非您将空格视为字母),而是将所有其他索引都大写,这似乎是您根据所需输出想要的。在

要修复当前代码,只需替换:

if char != ' ':
    i = not i

有:

i = not i
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"))

输出:

^{pr2}$

预期输出不关心空间

相关问题 更多 >