Python 字符串中查找字符

发布于 2021-11-28 04:13:43 字数 593 浏览 876 评论 9

不使用string.index()或string.find()函数,要创建一个函数,遍历字符串string,返回要查找字符char的索引。

下面代码哪里出问题了,只返回了字符串首字母判断?

def findchr(string, char):
        for i, j in enumerate(string):
            if char == j:
                print "The index is: "
                return i
        else:
            return -1


print findchr('Alphabeaat', 'a')

结果:-1

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

能否归途做我良人 2021-11-30 20:42:38
def findchr(string, char):
    found = 0
    for i, j in enumerate(string):
        if char == j:
            found = 1
            print "The index includes: %d" % i
    if not found:
        print -1
findchr('Alphabeaat', 'a')

修改如上,满足要求了。如果想要列表输出index,可以按@yak评论的来~

瑾夏年华 2021-11-30 20:29:35

Thanks. 一句话说到点儿上了!另外还有一个问题就是,else没有对应的条件验证,就是说for正常执行完之后,一定会执行else 输出-1。

狠疯拽 2021-11-30 18:44:25

因为你用了return,找到一个就返回,函数就结束了。

复古式 2021-11-30 17:08:19

You're right! 我应该换掉return,而且将else语句换成可验证条件的语句: )

眼泪淡了忧伤 2021-11-30 13:23:46
def findchr(string, char):
        found = 0
        for i, j in enumerate(string):
            if char == j:
                found = 1
                print "The index is: "
                yield i
        if not found:
            yield -1


print list(findchr('Alphabeaat', 'a'))

英雄似剑 2021-11-30 07:41:35

我希望能够返回'Alphabeaat'中'a'的所有index:4 7 8,但是现在才查看了'Alphabeaat'的首字母'A'就结束了。所以想问:为什么没有查个遍?

冷清清 2021-11-30 07:15:49

def findchr(string, char): result=[] for i, j in enumerate(string): if char == j: result.append(i) return result

静谧 2021-11-29 00:41:38

回复
Yep~ thank you. I know this works. But I just wonder what goes wrong with my code, just the reason why only returns the first char's index.

情绪失控 2021-11-28 10:16:08

The index is:

4

index找不到为什么不返回-1或者 非要报异常呢?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文