python - 我在 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```
解决方案
我假设您对编程很陌生,因此请使用以下 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 开始,并且c
是name
.
如果您对代码感觉更舒服,您可以使用列表推导并加入结果,如下所示:
>>> ''.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()
推荐阅读
- python - TypeError:如果浅结构是一个序列,输入也必须是一个序列。将 tensorflow 2.0 升级到 tensorflow 2.6 时输入的类型为 xx
- google-apps-script - 当邮递员工作正常时,应用程序脚本发布请求返回 405 代码错误
- d3.js - 如何在 D3 的力有向图中突出显示选定节点
- node.js - 创建一个基于Param名称的JOI模式验证,有条件地确定对应的Schema
- firebase - 没有为“Double”类型定义运算符“/”。尝试定义运算符'/'
- python - Python中错误的正则表达式匹配
- node.js - 在使用 socket.io 房间扩展 node.js 服务器时遇到问题
- php - 如何正确显示 HTML 标签
- c# - 配置 VS 代码 IDE 的设置以执行、调试和构建 C#.Net 代码
- vue.js - nuxtjs 中的 Vuex-presistedstate 错误,我使用的是 vuex-presistedstate 4.00 版和 nuxtjs 2.15.3