当前位置:   article > 正文

python学习--循环结构_python循环结构

python循环结构

循环结构:for,in,while,break,continue,else

循环的类型:for-in循环,while循环,嵌套循环,for-else循环(不常用),while-else循环(鲜少使用)

一、for-in循环

案例:计算1-100的和

'''
for 变量(不一定是一个变量,大部分场景下是一个) in 容器:
代码块

执行顺序:
for-in循环执行次数取决于容器中元素个数,每循环一次,
按照容器元素的顺序从头到尾依次获取一个元素给变量
然后代码块执行,代码块执行完进入下一次循环,每次循环执行完再回到for-in,
判断是否还有介意获取的元素

'''
total = 0
for i in range(1, 100):
# print(i)
total += i
print(total)

二、range方法

  • 作用:可以生成组成等差数列的整数

  • 语法: range(start,end,step)

  • 1.range是左闭右开区间;[start,end)

  • 2.start可以省略不写,默认为0

  • 3.step默认不写,默认为1

  • 4.下一次获取的数字=当前获取的数字+step

  • 5. step是整数,不能为0,step如果是>=1,start需要小于end,step<=-1,start需要大于end

  • 6.如果写了step,start坚决不能省略

    1. for i in range(1,10,2):
    2. #规则4
    3. for i in range(1,10):
    4. #规则13
    5. for i in range(100,3):
    6. #如果100start,3end,不符合规则6
    7. #如果100start,3end,不符合规则5
    8. for i in range(5):
    9. #规则2
    10. print(i)

输出-2,-4,-6,-8

  1. for i in range(-2,-9,-2):
  2. print(i)

练习:找到1-1000所有的偶数求和

  1. a = 0
  2. for i in range(1001):
  3. if i % 2 == 0:
  4. a += i
  5. print(a)
  6. b = 0
  7. c = 0
  8. while b <= 1000:
  9. c += b
  10. b += 2
  11. print(c)
  12. print(sum([i * 2 for i in range(501)]))
  13. print(sum([i for i in range(0, 1001, 2)]))
  14. e = [i % 2 == 0 for i in range(1001)]
  15. print(sum([i for i, j in enumerate(e) if j]))

for-in循环适合循环确定的循环

while循环

while循环一般用来不确定循环次数的问题中

from random import randint 

random:随机模块

randint:从指定范围(闭区间)中随机返回一个整数

  1. number = randint(1,100)
  2. print(number)
  3. while i:
  4. x=int(input('输入:'))
  5. if x>number:
  6. print('猜大了')
  7. elif x<number:
  8. print('猜小了')
  9. else:
  10. print('猜中了')
  11. i=0

九九乘法表

外层循环控制行

  1. for row in range(1,10):
  2. # 内层循环控制每行公式列数
  3. for col in range(1,row+1):
  4. result=f'{row}*{col}={row*col:>2}'
  5. print(result,end=' ')
  6. # 无论任何时候,print中end永久生效
  7. print()

break:break一旦被触发,立刻结束当前所在的循环

continue:continue一旦被触发,立即结束掉所在循环的本次循环进入下一次循环

break和continue只能用于循环内

如果for循环中的变量没有用到,可以用到下划线代替

  1. ptrhon
  2. for _ in range(3):
  3. for i in range(1,6):
  4. if i==4:
  5. print('=====')
  6. # break
  7. continue
  8. print('****')
  9. else:
  10. print(i)'''
  11. # 一次循环结束的标志位该循环内部代码块测地执行完
  12. # 练习:使用while循环计算1-100的阶乘
  13. i = 100
  14. k = 1
  15. while i > 0:
  16. k *= i
  17. i -= 1
  18. print(k)
  19. a = 0
  20. c = []
  21. while a < 100:
  22. a += 1
  23. b = 1
  24. d = a
  25. while d > 0:
  26. b *= d
  27. d -= 1
  28. c.append(b)
  29. print(c)
  30. '''
  31. 语法:
  32. while 条件:
  33. 代码块
  34. 执行流程:
  35. while每次执行,先判断条件是否为真,条件为真,代码块执行;代码块执行完,再回到while继续
  36. 判断条件是否仍然为真,如果为真,继续,反之结束循环
  37. '''

素数:判断100以内哪些数字是素数

  1. for num in range(1, 100):
  2. if num == 2:
  3. print('2是素数')
  4. elif num == 1:
  5. continue
  6. else:
  7. # 排除1和本身,检查其他数字是否有因子存在
  8. for i in range(2, num):
  9. if num % i == 0:
  10. break
  11. else:
  12. print(f'{num}是素数')

for-else:

  • for循环正常循环结束,触发else语句

  • for循环非正常结束,else语句不会触发

  • for-else应用场景

  • 必须将所有可能性考虑到以后才能下结论时可以使用for-else语句

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/527476
推荐阅读
相关标签
  

闽ICP备14008679号