为了账号安全,请及时绑定邮箱和手机立即绑定

Python简单的分割器

Python简单的分割器

宝慕林4294392 2023-08-08 17:56:22
我正在尝试计数,直到它找到一个“@”符号,然后计算找到它需要多少个字母,这样我就可以使用我尝试过这个简单的代码,但似乎找不到它有什么问题我期待@ 6在这种情况下,但它根本没有输出email = "email@gmail.com"length = len(email)count = 0counter = email[count]counterfor i in range(length):    if counter == "@":        print(counter)        print(count)        i  = 0    else:        count = count + 1
查看完整描述

3 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

如果您只想要 @ 所在的字符串索引,为什么不使用 string.index()


>>> email = "email@gmail.com"

>>> email.index('@')

5


查看完整回答
反对 回复 2023-08-08
?
慕神8447489

TA贡献1780条经验 获得超1个赞

您需要在循环counter 内设置变量。您也不需要该count变量,因为您已经有了i,它是迭代次数(从 0 开始)。根据您的描述,当您找到一个@标志时,您还需要从循环中中断,以防有多个标志(即使对于电子邮件地址来说不应该有)。


所以你可以这样做:


email = "email@gmail.com"

length = len(email)

for i in range(length):

    counter = email[i]

    if counter == "@":

        print(counter)

        print(i+1)

        break

您还可以在迭代电子邮件时使用enumerate给您提供的函数来简化代码:icounter


email = "email@gmail.com"

for i, counter in enumerate(email):

    if counter == "@":

        print(counter)

        print(i+1)

        break


查看完整回答
反对 回复 2023-08-08
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

问题是您没有在循环内设置计数器的值,它被设置为第一个值,然后再也不会设置。您还需要设置 email[i] 的计数器,因为 i 是递增的变量。


以下代码有效:


email = "email@gmail.com"

length = len(email)

count = 0

for i in range(length):

    counter = email[i] # This is the line I changed!

    if counter == "@":

        print(counter)

        print(count)

        i  = 0

    else:

        count = count + 1

请记住,由于索引从 0 开始,因此您将得到“@ 5”的输出。


查看完整回答
反对 回复 2023-08-08
  • 3 回答
  • 0 关注
  • 138 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信