我怎样才能修复我的代码,以便我可以继续添加索引的总和而不是只返回一个索引?

How can I fix my code so that I can keep on adding the sum of the indices instead of it just returning one index?

我是 python 的新手,正在学习 class,我的一项作业要求编写一个函数,该函数将一个字符串和一个字符作为参数。如果该字符在字符串中,则 return 该字符出现的索引之和。否则,return 错误。我们不能使用 find() 或 index() 内置函数。

到目前为止,这是我的代码

def addIndices(myString, myChar):
    summy= 0
    for i in myChar:
        if i not in myString:
            return False 
    else:
        for i in myString:
            if i in myString:
                summy += 1
    return summy

您需要的是如下内容:

def addIndices(myString, myChar):
  sum = 0
  for i, ch in enumerate(myString):
    if ch == myChar:
      sum += i
  if sum == 0: return False
  return sum
addIndices("hiii", "o")

如果您的作业表明指数从 0 开始,请将 sum += i 行更改为 sum +=i+1

这是一个示例代码。注意你说的是 return 索引之和,所以你需要添加每个匹配字符的索引(从 0 开始),而不仅仅是为每个匹配字符添加 1。

#!/usr/bin/env python

def addIndices(myString, myChar):
    summy = 0
    if not myChar in myString:
         return False
    else:
        i = 0
        for ch in myString:
            if myChar == ch:
                summy += i
            i += 1
    return summy

sum = addIndices('it is a test', 'i')

print(sum)