如何创建一个函数来检测字符串中的字符并返回它在字符串中的位置?Python 3.2版

2024-05-13 10:27:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我要修一门程序设计课程,明天就要期末考试了。我要参加一个练习期末考试,我被这个问题困住了:

给出以下函数标题

定义首次发生(ch,s):

编写一个方法,返回字符串s中存储在ch中的第一个字符。如果在字符串中找到该字符,则函数应返回其位置。因此,如果s='abcdefg',ch的值是'd',您的程序将返回3。如果在字符串中找不到该字符,则程序应返回-1。在

我试了一下,但运气不好。我在这里:

def firstOccur(ch, s):
    b = len(s)
    n = 0
    for c in range(b):
        d = ch[0]
        e = s[c]
        if d != e:
            return(-1)
        else:
            while d != e:
                n = n+1
            return(n)
def main():
    a = firstOccur('d', 'abcdefg')
    print(a)
main()

主要功能只是测试firstOccurse函数。我不知道该怎么办,也不知道我走的路是否正确。帮忙吗?在


Tags: 函数字符串程序标题return定义maindef
3条回答

好吧,让我们把这个分解一下。你会得到一个字符列表,也就是一个字符串。因此,任务是在这个列表上迭代(=循环),直到找到列表中第一个出现的搜索键。一旦你击中了事件,返回它的位置,这也打破了循环。如果在没有找到搜索键的情况下完成循环,则返回-1(BTW;None在Python中更有意义)。在

Python提供了一个名为enumerate的内置函数,该函数接受一个列表并返回一个元组列表,其中包含元素索引和元素本身。i、 e

['a', 'b', 'c', 'd']

或者 “abcd”

变成

^{pr2}$

这是个无名小卒。在

def firstOccur(key, string):
    for i, c in enumerate(string):
        if key == c:
            return i
    return -1

如果不允许使用enumerate,那么还有一条“漫长”之路:

def firstOccur(key, string):
    for i in range(len(string)):
        if key == string[i]:
            return i
    return -1

这基本上和字符串。查找()方法:) 预计除了Python基础知识之外,不允许使用任何其他方法来解决这个问题。。。在

for x in range(len(s)):
    if ch == s[x]:
        return x
return -1

您可以尝试这样的方法;它将返回索引为零的位置(即,第一个字符为0,第二个字符为1,等等)。Enumerate可以为您跟踪当前位置。在

def firstOccur(ch,s):
    for pos, char in enumerate(s):
        if char == ch:
            return pos

    return -1

a = firstOccur('d', 'abcdefg')
// a = 3

相关问题 更多 >