Python简单的分割器

我正在尝试计数,直到它找到一个“@”符号,然后计算找到它需要多少个字母,这样我就可以使用我尝试过这个简单的代码,但似乎找不到它有什么问题我期待@ 6在这种情况下,但它根本没有输出


email = "email@gmail.com"

length = len(email)

count = 0

counter = email[count]

counter

for i in range(length):

    if counter == "@":

        print(counter)

        print(count)

        i  = 0

    else:

        count = count + 1


宝慕林4294392
浏览 139回答 3
3回答

冉冉说

如果您只想要 @ 所在的字符串索引,为什么不使用 string.index()>>> email = "email@gmail.com">>> email.index('@')5

慕神8447489

您需要在循环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给您提供的函数来简化代码:icounteremail = "email@gmail.com"for i, counter in enumerate(email):    if counter == "@":        print(counter)        print(i+1)        break

眼眸繁星

问题是您没有在循环内设置计数器的值,它被设置为第一个值,然后再也不会设置。您还需要设置 email[i] 的计数器,因为 i 是递增的变量。以下代码有效:email = "email@gmail.com"length = len(email)count = 0for 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”的输出。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python