gpt4 book ai didi

python - 如何在字符串中大写偶数字母和小写奇数字母?

转载 作者:太空宇宙 更新时间:2023-11-04 07:49:50 24 4
gpt4 key购买 nike

我正在创建一个函数,它接受一个字符串并返回一个匹配的字符串,其中每个偶数字母都是大写的,每个奇数字母都是小写的。该字符串只包含字母

我尝试了一个 for 循环,它使用一个 if 语句循环遍历字符串的长度,该语句检查索引是否为偶数以返回该索引的大写字母,如果索引为奇数则返回该索引的小写字母。

def my_func(st):
for index in range(len(st)):
if index % 2 == 0:
return st.upper()
else:
return st.lower()

我希望偶数字母大写,奇数字母小写,但我只得到整个字符串的大写。

最佳答案

您的代码中的一些问题:

  • 当前您正在从第一个索引本身的函数返回,即 index=0 当您执行 return st.lower() 时,因此函数遇到第一个索引就停止执行,跳出for循环

  • 执行 st.lower()st.upper() 以大写/小写整个字符串结束,而不是你想大写/小写单个字符

一种方法是遍历字符串,收集列表中所有修改过的字符,通过str.join将该列表转换为字符串。然后在最后返回结果

您还想通过索引引用每个单独的字符。

def my_func(st):

res = []
#Iterate over the character
for index in range(len(st)):
if index % 2 == 0:
#Refer to each character via index and append modified character to list
res.append(st[index].upper())
else:
res.append(st[index].lower())

#Join the list into a string and return
return ''.join(res)

您还可以使用 enumerate 同时遍历索引和字符

def my_func(st):

res = []
#Iterate over the characters
for index, c in enumerate(st):
if index % 2 == 0:
#Refer to each character via index and append modified character to list
res.append(c.upper())
else:
res.append(c.lower())

#Join the list into a string and return
return ''.join(res)
print(my_func('helloworld'))

输出将是

HeLlOwOrLd

关于python - 如何在字符串中大写偶数字母和小写奇数字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56635540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com