DAY 6

DAY 6

Chapter 5 循环 Loop

 

FOR 循环和循环范围

FOR 循环的特点

基于提供的范围,重复执行特定次数的操作

for x in range(m, n+1)

range(x, y)是左闭右开区间,包含x,不包含y,从m到n遍历赋值给x

如果省略第一个参数会发生什么?

默认起点是0

那如果添加第三个参数呢?

第三个参数代表步长,step

反转函数 for i in reversed(range(0,10,1))

FOR循环的嵌套

例如螺旋矩阵

 

While 循环

当你不知道循环什么时候停下来的时候,为什么不试试 while

Bad Style : 在知道循环范围的情况下使用while

例如:

1 def sumToN(n):

2 #尽管它能正常运行,但是这是非常不推荐的做法!

3 #应该使用 for 循环而不是 while 循环

4 total = 0

5 counter = 1

6 while counter <= n:

7 total += counter

8 counter += 1

9 return total

python的代码应该是符合人类逻辑的

 

break 和 continue 语句

例如:

1 for n in range(200):

2 if n % 3 == 0:

3 continue #跳过这次循环

4 elif n == 8:

5 break #跳出当前整个循环

6 else:

7 pass #啥也不做,占位符(不会被运行)

8 print(n, end=" ")

下划线是黑洞,什么都能吸进去

 

假--死循环

与环境交互后,在特定条件下终止的循环

while True:

......

......

if ......

break

 

判断质数

1 def isPrime(n):

2 if n < 2:

3 return False

4 for factor in range(2, n):

5 if n % factor == 0:

6 return False

7 return True

 

更快的:(减脂)(更少的循环次数)

1 def fasterIsPrime(n):

2 if n < 2:

3 return False

4 if n == 2:

5 return True

6 if n % 2 == 0:

7 return False

8 maxFactor = round(n**0.5)

9 for factor in range(3, maxfactor+1, 2):

10 if n % factor == 0:

11 return False

12 return True

 

总结

  • For 循环用于指定范围的重复操作

  • range()可以生成一个数字范围

  • 在不知道循环什么时间停止的时候,应该试试while循环

  • 循环同样也是可以嵌套的

  • 巧妙地使用 break 和 continue 语句

  • 合理的剪枝,缩小搜索范围/循环范围,可以大幅度提高程序运行效率

  •  
posted @ 2023-12-02 19:10  berber288  阅读(16)  评论(0)    收藏  举报