首页 > 解决方案 > 我在 python 中遇到字符串和 for 循环的问题

问题描述

我有一个字符串,我把它保存在一个变量中。我想更改偶数字符以使用 for 循环大写。所以我给我的偶数字符并大写。但我不能把它们带上奇怪的字符。有人能帮我吗?

这是我的代码:

name = "mohammadhosein"
>>> for even in range(0, len(name), 2):
...     if(even % 2 == 0):
...        print(name[even].title(), end=' ')
...
M H M A H S I >>>
>>> ###### I want print it like this:MoHaMmAdHoSeIn```

标签: pythonpython-3.x

解决方案


我假设您对编程很陌生,因此请使用以下 for 循环:

name = "mohammadhosein"
output = ''
for i, c in enumerate(name):
    if i % 2 == 0:
        output += c.upper()
    else:
        output += c

# output will be 'MoHaMmAdHoSeIn'

enumerate将为您提供一对(i, c)wherei是索引,从 0 开始,并且cname.

如果您对代码感觉更舒服,您可以使用列表推导并加入结果,如下所示:

>>> ''.join([c.upper() if i % 2 == 0 else c for i, c in enumerate(name)])
'MoHaMmAdHoSeIn'

正如@SimonN 所建议的,您只需要对代码进行一些小改动:

for index in range(0, len(name)):
    if(index % 2 == 0):
        print(name[index].upper(), end='') # use upper instead of title it is more readable
    else:
        print(name[index], end='')
print()


推荐阅读