python中的交替字母

新手上路,请多包涵
def myfunc(word):
    result = ""
    index = 0
    for letter in word:
        if index % 2 == 0:
            result += letter.lower()
        else:
            result += letter.upper()
    return result
    index +=1

我试图返回一个匹配的字符串,其中每个偶数字母都是大写的,每个奇数字母都是小写的。但是代码没有显示这个确切的结果,有什么解决办法吗?

原文由 Bijay Gurung 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 320
1 个回答

问题是你只是在循环 之后 递增 index ,而不是每次都递增。因此,在循环内部,它始终为 0。最小的修复是:

 def myfunc(word):
    result = ""
    index = 0
    for letter in word:
        if index % 2 == 0:
            result += letter.lower()
        else:
            result += letter.upper()
        index += 1
    return result

但是这种错误很容易犯(有时调试起来不像这样容易)——这正是 Python 有像 enumerate 这样的好工具的原因,这使得它不可能出错:

 def myfunc(word):
    result = ""
    for index, letter in enumerate(word):
        if index % 2 == 0:
            result += letter.lower()
        else:
            result += letter.upper()
    return result

原文由 abarnert 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏