[python]-循环语句

while循环

while循环语句

  1. 只要条件满足会无限循环执行
  1. while的条件需得到布尔类型,True表示继续循环,False表示结束循环
  2. 需要设置循环终止的条件,如 i +=1 配合 i < 100,就能确保100次后停止,否则将无限循环
  3. 空格缩进和 if 判断一样,都需要设置

嵌套循环

  1. 表白100天每一天都会送10朵玫瑰花
  2. 同判断语句的嵌套一样,循环语句的嵌套,要注意空格缩进。
  3. 基于空格缩进来决定层次关系
  4. 注意条件的设置,避免出现无限循环 (除非真的需要无限循环)

补充知识

print输出不换行

  1. 默认print()语句输出内容会自动换行
  1. 添加方法参数, 是内容不换行

在字符串中,有一个特殊符号: \t

  1. 它可以让我们的多行字符串进行对齐。
  2. \t 制表符 相当于键盘按tab键,默认按4个宽度补齐空格

while循环的嵌套案例

通过while循环,输出如下九九乘法表内容

  1. 外层循环控制打印行 (row)

  2. 内层循环控制打印列 (col0

  3. 控制条件是 col <= row

    打印九九乘法表

    row = 1

    while row <= 9:
    col = 1
    print()
    while col <= row:
    print(f"{col} * {row} = {row * col}", end="\t")
    col += 1
    row+=1

for循环

除了while循环语句外,Python同样提供了for循环语句。

  1. 两者能完成的功能基本差不多,但仍有一些区别:
  2. while循环的循环条件是自定义的,自行控制循环条件
  3. for循环是一种"轮询"机制,是对一批内容进行"逐个处理"
  1. 语法

遍历字符串

  1. 运行结果
  1. 可以看出,for循环是将字符串的内容: 依次取出
  2. 所以,for循环也被称之为: 遍历循环
  3. 同while循环不同,for循环是无法定义循环条件的。只能从被处理的数据集中,依次取出内容进行处理。
  4. 所以,理论上讲,Python的for循环无法构建无限循环 (被处理的数据集不可能无限大)

range() 语句

  1. 语法中的: 待处理数据集,严格来说,称之为: 可迭代类型
  2. 可迭代类型指,其内容可以一个个依次取出的一种类型,包括:
  • 字符串
  • 列表
  • 元组
  1. 目前我们只学习了字符串类型,其余类型在后续章节会详细学习它们

  2. for循环语句,本质上是遍历: 可迭代对象。

  3. 尽管除字符串外,其它可迭代类型目前没学习到,但不妨碍我们通过学习range语句,获得一个简单的数字序列 (可迭代类型的一种)。

  4. 语法

    语法1

    获取一个从0开始, 到num结束的数字序列 (不含num本身)(包前不包后)

    如range(5) 得到的数据是 [0,1,2,3,4]

    range(num)

    语法2

    获取一个从num1开始, 到num2结束的数字序列 (不含num2本身)

    如range(5, 10) 得到的数据是 [5,6,7,8,9]

    range(num1, num2)

    语法3

    获取一个从num1开始, 到num2结束的数字序列 (不含num2本身)

    数字之间的步长, 以setup为准 (setup默认1)

    如range(5, 10, 2) 得到的数据是 [5,7,9]

    range(num1, num2, setup)

  5. for循环遍历range序列

    range的用途很多,多数用在for循环场景

    for i in range(5):
    print(i)

变量作用域

  1. 回看for循环的语法,我们会发现,将从数据集(序列)中取出的数据赋值给临时变量
  2. 临时变量,在编程规范上,作用范围(作用域),只限定在for循环内部
  3. 如果在for循环外部访问临时变量,
  • 在python中是可以访问到的, 其他语言会报错
  • 在编程规范上,是不允许、强烈不建议这么做的
  1. 如果实在需要在循环外访问循环内的临时变量,可以在循环外预先定义
  1. 变量的作用域受到缩进层级的控制, 外层程序不能访问内层变量, 内层程序可以访问外层变量

for循环的嵌套

同while一样,for循环也支持嵌套使用

while循环和for循环。这两类循环语句是可以相互嵌套的,如

使用for循环打印九九乘法表

复制代码
# 使用for循环打印九九乘法表
for i in range(1, 10):
    print()
    for j in range(1, i + 1):
        print(f"{j} * {i} = {i * j}", end="\t")

循环中断

无论是while循环或是for循环,都是重复性的执行特定操作, 在这个重复的过程中,会出现一些其它情况

  1. 暂时跳过某次循环,直接进行下一次
  2. 提前退出循环,不在继续

continue关键字用于: 中断本次循环,直接进入下一次循环

  1. continue可以用于for循环和while循环,效果一致
  2. 在循环内,
  • 遇到continue就结束当次循环,进行下一次
  • 所以,语句2是不会执行的。
  1. continue关键字只可以控制它所在的循环, 外层循环不受影响

break关键字用于: 直接结束循环

  1. break可以用于for循环和while循环,效果一致
  2. 在循环内,
  • 遇到break就结束循环了
  • 所以,执行了语句1后,直接执行语句3了
  1. break关键字同样只可以控制它所在的循环结束
相关推荐
摘星编程6 分钟前
深入理解CANN ops-nn BatchNormalization算子:训练加速的关键技术
python
魔芋红茶8 分钟前
Python 项目版本控制
开发语言·python
lili-felicity14 分钟前
CANN批处理优化技巧:从动态批处理到流水线并行
人工智能·python
一个有梦有戏的人17 分钟前
Python3基础:进阶基础,筑牢编程底层能力
后端·python
摘星编程34 分钟前
解析CANN ops-nn中的Transpose算子:张量维度变换的高效实现
python
Liekkas Kono41 分钟前
RapidOCR Python 贡献指南
开发语言·python·rapidocr
一方热衷.1 小时前
在线安装对应版本NVIDIA驱动
linux·运维·服务器
玄同7651 小时前
Python 后端三剑客:FastAPI/Flask/Django 对比与 LLM 开发选型指南
人工智能·python·机器学习·自然语言处理·django·flask·fastapi
m0_694845571 小时前
tinylisp 是什么?超轻量 Lisp 解释器编译与运行教程
服务器·开发语言·云计算·github·lisp
*小海豚*1 小时前
在linux服务器上DNS正常,但是java应用调用第三方解析域名报错
java·linux·服务器