python - 遍历字符串中的每个字母,偶数索引为大写,奇数索引为小写
问题描述
我的家庭作业要求我遍历字符串中的每个字母,其中偶数索引为大写,奇数索引为小写。它应该保持任何标点符号或数字不变,并且应该在偶数索引处更改每个字母的大小写。这意味着如果字母最初是大写的,则应将其转换为小写。
例如: mock("Abcd. Efgh.. Ijkl!") 将返回 "abCd. efGh.. IJkL!"。偶数索引字母(A、C、E、g、j、l)改变了大小写,所有其他字符保持不变。
我试图交换它并尝试将它们拆分并重新加入字符串。但我无法让它工作。
def mock(word):
index = 0
result = ''
swap = word.swapcase()
for letter in swap:
if index % 2 == 0:
result += letter.upper()
else:
result += letter.lower()
index += 1
return result
我们使用 a_str = "Abcd. Efgh.. Ijkl!" 测试了您的代码。我们希望 mock 返回 str "abCd. efGh.. IJkL!"。但是,它返回了 str“aBcD.eFgH..IjKl!”。
解决方案
您的代码目前使其具有奇数索引的字母将变为小写,而具有偶数索引的字母将变为大写。如果只希望偶数索引上的字母从小写变为大写或从大写变为小写,则应使用以下方法:
def mock(word):
index = 0
result = ''
for letter in word:
if index % 2 == 0:
if letter.isupper():
result += letter.lower()
else:
result += letter.upper()
else:
result += letter
index += 1
return result
推荐阅读
- javascript - 计算在由 javascript 动态创建的 HTML 字段中不起作用
- php - 按自定义日期在 laravel 中制作报告
- java - 使用 Eclipselink 在 entityManager.clear() 上的字段异常的多个可写映射
- angular - 角度路由正确的方法来为相同的路径使用不同的组件
- jquery - .load 没有按预期重新加载 div
- android - 显示UserHeadingIndicator在android上没有改变方向
- c++ - 如何找到标记器的大小
> - neo4j - cypher Neo4J 中的推荐引擎
- jenkins - Groovy 脚本,用于从一项特定作业中检索所有成功的 Jenkins 构建
- wordpress - woocoomerce 替换结帐页面和我的帐户页面中的课程?