while 循环

死循环

  1. while True:
  2. print("helloworld")

上面的代码将会无限的打印
image.png

while 循环和for 循环的区别:
for 循环的次数是确定,while 可以无限次的循环下去。
使用while 循环也可以指定循环次数。
比如:循环10次,添加对应的条件即可。

  1. # 定义变量 n
  2. n = 0
  3. # n<10 为条件
  4. while n<10:
  5. print("helloword"+str(n))
  6. # 每打印一次 n的值增加1
  7. n = n+1

同样的效果 也可以使用for 循环

  1. # 使用for 循环执行10次
  2. for i in range(10):
  3. print("helloworld"+str(i))

应用

  1. 计算1+2+3+4+5+….+100之和

使用 while 循环
分析:
a. 从1循环到100
b.每循环1次要做1次加法运算

  1. # 定义结果的初始值为0
  2. sum = 0
  3. # 定义数字n
  4. n = 1
  5. while n<=100:
  6. # 每次循环做1次加法
  7. sum = sum+n
  8. # n的值递增1
  9. n = n+1
  10. # 循环结果结束
  11. print(sum)

结果为 5050
使用for循环实现

  1. sum = 0
  2. # 从1开始,到100结束
  3. for i in range(1,101):
  4. # print(i)
  5. sum = sum+i
  6. print(sum)

break 中断循环

正常情况下,循环执行完成之后,会自动停止。 也可以提供条件,停止循环。
比如while True 是会一直执行下去的。在执行体中 设置条件中断循环。

  1. # 导入随机
  2. import random
  3. while True:
  4. # 生成随机值a
  5. a = random.random()
  6. print('生成随机数字'+str(a))
  7. # 条件
  8. if a<0.09:
  9. print('a的大于0.9,结束while 循环')
  10. break

image.png

for 循环也会被中断

  1. import random
  2. # 循环三次
  3. for i in range(3):
  4. a = random.random()
  5. print('生成随机数字'+str(a))
  6. if a>0.5:
  7. print('a的大于0.5,结束while 循环')
  8. break

嵌套循环

可以在一层循环中再嵌套一层循环

  1. # 循环10次
  2. for i in range(10):
  3. # 每次循环的时候再循环3次
  4. for j in range(3):
  5. print("i的值为"+str(i),"j的值为"+str(j))

嵌套循环中的break

break 可以中断循环,但是当在多层循环中执行的时候,break 在那个循环中,会中断对应的循环。

  1. # 循环10次
  2. for i in range(10):
  3. # 每次循环的时候再循环3次
  4. for j in range(3):
  5. print("i的值为"+str(i),"j的值为"+str(j))
  6. break

continue 结束当次循环

在循环体中,执行的循环内容是从上往下
比如下面代码

  1. for i in range(3):
  2. print('hello'+str(i))
  3. print('world'+str(i))

输出结果

  1. hello0
  2. world0
  3. hello1
  4. world1
  5. hello2
  6. world2

如果当i==1的时候,中断整个循环

  1. for i in range(3):
  2. print('hello'+str(i))
  3. if i==1:
  4. break # 结束整个for循环
  5. print('world'+str(i))
  1. hello0
  2. world0
  3. hello1

如果使用 continue 看下效果

  1. for i in range(3):
  2. print('hello'+str(i))
  3. if i==1:
  4. continue # 结束i==1的这次循环,会继续从i==2运行
  5. print('world'+str(i))
  1. hello0
  2. world0
  3. hello1
  4. hello2
  5. world2

可以发现 world1 并没有打印出来。是因为被 continue 终止了。

面试问题

  1. break 和 continue的区别:

break是中断整个循环,
continue中断当次循环。

  1. while 和for 的区别

while循环可以是无限次的,for不可以。

作业

  1. 计算 1+3+5+7+9+…+99 之后。 100之内奇数之和。

for循环

  1. # 1开始,99结束,每次递增2
  2. for i in range(1,100,2):
  3. print(i)
  1. sum = 0
  2. n = 1
  3. s = ""
  4. while n<=99:
  5. s = s + "+" + str(n)
  6. sum = sum+n
  7. n = n+2
  8. print(s+'='+ str(sum))
  1. sum = 0
  2. for i in range(1,100,2):
  3. sum = sum+i
  4. print(sum)