Marstonliu 发表于 2022-9-11 14:52:55

Python "for" 求助

for n in range(2, 10):
    for x in range(2, n):
            if n % x == 0:

                print(n, '=', x, '*', n//x)
                break
    else:
            print(n, '是一个素数')
                  
哪位大神能给详细讲讲,这个看不懂,主要是嵌套不明白,谢谢!
特别是   for x in range(2, n): 它是怎么运作的?

Twilight6 发表于 2022-9-11 15:09:46


range 函数生成一个整数序列,如下代码打印出序列中的所有元素:

>>>print(list(range(2, 10)))


而 for 循环就是将这个序列中的元素依次取出,进行循环,例如 for i in range(2, 10) 第一次取出 2,第二次 取出 3 ...... 以此类推

而 for 循环嵌套 for 循环,就是外部循环每执行一次,都在 for 内部在进行一次完整的内部 for 循环

例如你的代码,假设当外部循环到 n = 5 时,内部for 循环就要执行 2、3、4 三次循环,

n = 6 时,内部 for 循环要执行 2、3、4、5 四次循环,以此类推

这里 for - else 结构,简单理解就是只要在 for 循环中不遇到 break,那么就会执行 else 的代码

深谙流年 发表于 2022-9-11 15:31:06

debug一下就能看懂了

Marstonliu 发表于 2022-9-11 16:47:05

Twilight6 发表于 2022-9-11 15:09
range 函数生成一个整数序列,如下代码打印出序列中的所有元素:




非常感谢,讲的非常清楚!

Marstonliu 发表于 2022-9-11 17:13:49

深谙流年 发表于 2022-9-11 15:31
debug一下就能看懂了

怎么debug呢?谢谢

深谙流年 发表于 2022-9-11 17:20:44

加断点
页: [1]
查看完整版本: Python "for" 求助