Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python简单拆分器_Python_Python 3.x - Fatal编程技术网

Python简单拆分器

Python简单拆分器,python,python-3.x,Python,Python 3.x,我试图数数,直到它找到一个“@”符号,然后数数需要多少个字母才能找到,这样我就可以使用它了 我尝试了这个简单的代码,但似乎找不到它有什么问题 我期待着 @ 6. 在这种情况下,它完全没有输出 email = "email@gmail.com" length = len(email) count = 0 counter = email[count] counter for i in range(length): if counter == "@":

我试图数数,直到它找到一个“@”符号,然后数数需要多少个字母才能找到,这样我就可以使用它了 我尝试了这个简单的代码,但似乎找不到它有什么问题 我期待着 @ 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

问题是您没有在循环内设置计数器的值,它被设置为第一个值,然后再也不会设置。您还需要将计数器设置为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”。

问题在于您没有在循环内设置计数器的值,它被设置为第一个值,然后再也不会设置。您还需要将计数器设置为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”的输出。

如果您只希望字符串索引位于@的位置,为什么不使用string.index()


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


您需要在循环内设置变量
计数器
。您也不需要
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
您还可以使用
枚举
功能简化代码,在迭代电子邮件的同时为您提供
i
计数器

email = "email@gmail.com"
for i, counter in enumerate(email):
    if counter == "@":
        print(counter)
        print(i+1)
        break

您需要在循环内设置变量
计数器
。您也不需要
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
您还可以使用
枚举
功能简化代码,在迭代电子邮件的同时为您提供
i
计数器

email = "email@gmail.com"
for i, counter in enumerate(email):
    if counter == "@":
        print(counter)
        print(i+1)
        break

请说明输出与您期望/想要的不同。在这种情况下,我期望@6,但它完全没有输出。请将此添加到问题中。您没有得到任何输出,因为您从未更新
计数器的值
使用
计数器调用它是否足够?请说明输出与您期望/想要的不同。在这种情况下,我期望@6,但它根本没有输出。请将此添加到问题中。您没有得到任何输出,因为您从未更新
计数器
的值。使用
计数器
调用它还不够吗?我想这是编写显式循环的编程练习,但你当然是绝对正确的。我这样做不是为了一个项目,我这样做只是为了确保我掌握到目前为止所学的所有知识,但我会确保我记得在未来使用它我想这是为了编写显式循环的编程练习,但你当然是绝对正确的。我这样做不是为了一个项目,我这样做只是为了确保我掌握了迄今为止所学的所有知识,但我会确保我记得在将来使用它