我在python中遇到字符串和for循环问题

时间:2019-09-19 21:21:52

标签: python python-3.x

我有一个字符串,并将其保存在变量中。 我想更改字符以大写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```

1 个答案:

答案 0 :(得分:0)

我假设您是编程的新手,所以请使用以下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),其中i是从0开始的索引,而cname的字符。 / p>

如果您对代码更满意,可以使用列表推导并按以下方式加入结果:

>>> ''.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()