Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.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,我有一个用于打印(2,50)范围内所有素数的代码 num=2 对于范围(2,50)内的i: j=2 而(j i/j): print(i,'是素数') 我的疑问是关于if(j>i/j)语句的用法和意义。老实说,理解这类事情的最好方法是自己一步一步地分解它来理解它。举一个较小的例子,比如说范围(2,6),手工写下进度/步骤 提示,为i=39执行此操作 老实说,要理解这类事情,最好的办法就是自己一步一步地去理解它。举一个较小的例子,比如说范围(2,6),手工写下进度/步骤 提示,为i=39执行此操作

我有一个用于打印(2,50)范围内所有素数的代码

num=2
对于范围(2,50)内的i:
j=2
而(j i/j):
print(i,'是素数')

我的疑问是关于
if(j>i/j)
语句的用法和意义。

老实说,理解这类事情的最好方法是自己一步一步地分解它来理解它。举一个较小的例子,比如说
范围(2,6)
,手工写下进度/步骤


提示,为
i=39执行此操作

老实说,要理解这类事情,最好的办法就是自己一步一步地去理解它。举一个较小的例子,比如说
范围(2,6)
,手工写下进度/步骤


提示,为
i=39执行此操作

我以前没有见过有人使用这种算法来寻找素数,你可以这样做来寻找素数:

for i in range(2, 50):
    num, j = 0, 2
    while j <= i:
        if i % j == 0:
            num += 1
        j += 1
    if num == 1:
        print(i, 'is a prime number')
范围(2,50)内的i的
:
num,j=0,2

虽然我以前没有见过有人使用这种算法来寻找素数,但你可以这样做来寻找素数:

for i in range(2, 50):
    num, j = 0, 2
    while j <= i:
        if i % j == 0:
            num += 1
        j += 1
    if num == 1:
        print(i, 'is a prime number')
范围(2,50)内的i的
:
num,j=0,2

而j基于上述,对于所有素数,当代码执行达到if条件时,j将始终等于i,if条件将变为true

让我们一步一步地看素数和非素数

示例1:素数7(假设在for循环中i的值为7)

i=7
j=2
#While语句条件检查
2正确
7%2==0->False
#增量j,现在j=3
7%3==0->False
.
.
#连续增加,当j=7时
7%7==0->True
#如果条件检查(当前值为i=7和j=7)
7>7/7->True
例2:非素数。比如说9点

i = 9
j = 2

# While statement condition check
2 <= 7/2 -> True
9%2 == 0 -> False

# Increment j, now j=3
9%3 == 0 -> True

#If Condition check(Current values are i=9 and j=3)
3 > 9/3 -> False
i=9
j=2
#While语句条件检查
2正确
9%2==0->False
#增量j,现在j=3
9%3==0->True
#如果条件检查(当前值为i=9和j=3)
3>9/3->False

请一步一步地尝试其他示例,以便更好地理解。

基于上述内容,对于代码执行达到if条件时的所有素数,j将始终等于i,if条件将变为true

让我们一步一步地看素数和非素数

示例1:素数7(假设在for循环中i的值为7)

i=7
j=2
#While语句条件检查
2正确
7%2==0->False
#增量j,现在j=3
7%3==0->False
.
.
#连续增加,当j=7时
7%7==0->True
#如果条件检查(当前值为i=7和j=7)
7>7/7->True
例2:非素数。比如说9点

i = 9
j = 2

# While statement condition check
2 <= 7/2 -> True
9%2 == 0 -> False

# Increment j, now j=3
9%3 == 0 -> True

#If Condition check(Current values are i=9 and j=3)
3 > 9/3 -> False
i=9
j=2
#While语句条件检查
2正确
9%2==0->False
#增量j,现在j=3
9%3==0->True
#如果条件检查(当前值为i=9和j=3)
3>9/3->False

请一步一步地尝试其他示例,以便更好地理解。

谢谢您的帮助,但我认为应该是num==1,而不是num==2。顺便说一下,这个例子是在我的学校教科书中给出的,所以我想知道这个代码是如何工作的。@Ucode2是的,我错了,谢谢你提到:)谢谢你的帮助,但我认为应该是num==1而不是num==2。顺便说一下,这个例子是在我的学校教科书中给出的,所以我想知道这个代码是如何工作的。@Ucode2是的,我错了,谢谢你提到:)