我正在创建一个函数,它接受一个字符串并返回一个匹配的字符串,其中每个偶数字母都是大写的,每个奇数字母都是小写的。该字符串只包含字母
我尝试了一个 for 循环,该循环使用 if 语句循环遍历字符串的长度,该语句检查索引是否为偶数以返回该索引的大写字母,如果索引为奇数则返回该索引的小写字母。
def my_func(st):
for index in range(len(st)):
if index % 2 == 0:
return st.upper()
else:
return st.lower()
我希望偶数字母大写,奇数字母小写,但我只得到整个字符串的大写字母。
原文由 didikimoiny225 发布,翻译遵循 CC BY-SA 4.0 许可协议
您的代码中的一些问题:
当前,您正在从第一个索引本身的函数返回,即
index=0
当您执行return st.lower()
时,该函数将在遇到第一个索引并跳出 for 后停止执行环形做
st.lower()
或st.upper()
结束大写/小写整个字符串,而不是你想要大写/小写单个字符一种方法是遍历字符串,收集列表中所有修改的字符,通过 str.join 将该列表转换为字符串,然后在最后返回结果
您还想通过索引引用每个单独的字符。
您还可以使用 枚举 同时遍历索引和字符
输出将是