ThankNeko's Blog ThankNeko's Blog
首页
  • 操作系统

    • Linux基础
    • Linux服务
    • WindowsServer笔记
    • Ansible笔记
    • Shell笔记
  • 容器服务

    • Docker笔记
    • Kubernetes笔记
    • Git笔记
  • 数据库服务

    • MySQL笔记
    • ELK笔记
    • Redis笔记
  • 监控服务

    • Zabbix笔记
  • Web服务

    • Nginx笔记
    • Tomcat笔记
  • 数据处理

    • Kettle笔记
  • Python笔记
  • Bootstrap笔记
  • C笔记
  • C++笔记
  • Arduino笔记
  • 分类
  • 标签
  • 归档
  • 随笔
  • 关于
GitHub (opens new window)

Hoshinozora

尽人事,听天命。
首页
  • 操作系统

    • Linux基础
    • Linux服务
    • WindowsServer笔记
    • Ansible笔记
    • Shell笔记
  • 容器服务

    • Docker笔记
    • Kubernetes笔记
    • Git笔记
  • 数据库服务

    • MySQL笔记
    • ELK笔记
    • Redis笔记
  • 监控服务

    • Zabbix笔记
  • Web服务

    • Nginx笔记
    • Tomcat笔记
  • 数据处理

    • Kettle笔记
  • Python笔记
  • Bootstrap笔记
  • C笔记
  • C++笔记
  • Arduino笔记
  • 分类
  • 标签
  • 归档
  • 随笔
  • 关于
GitHub (opens new window)
  • Python笔记

    • 基础知识

      • 常见规范与运行方式
      • 变量与垃圾回收机制
      • 输入与格式化输出
      • 运算符
      • 流程控制语句
        • 流程控制
        • if语句定义
        • while语句定义
        • for语句定义
        • "pass"和"..."语法
      • 浅拷贝和深拷贝
      • 常用数据类型与分类
      • 数据类型方法
      • 字符编码
      • 文件操作
      • 函数与参数
      • 命名空间与作用域
      • 闭包函数与装饰器
      • 迭代器与生成器
      • 三元表达式与生成式
      • 函数递归
      • 面向过程式和函数式编程
      • 模块与包
      • 程序设计目录参考
      • 常用内置模块或函数
      • 序列化和猴子补丁
      • 日志模块-logging
    • 类与面向对象

    • 并发编程

    • Web编程

    • 模块笔记

    • 其他

  • C笔记

  • C++笔记

  • Arduino笔记

  • Dev
  • Python笔记
  • 基础知识
Hoshinozora
2023-02-15
目录

流程控制语句

# 流程控制

# 介绍

流程控制是用来控制程序中各语句的执行顺序,在Python中可以使用if、while、for、break、continue、pass做流程控制。

# 流程控制语句

**if:**条件语句。

根据给定的条件的判断结果,决定是否执行,或者应该执行哪个分支。

**while:**循环语句。

如果给定的条件成立,则会循环代码块中的代码。

**for:**循环语句。

for循环会将可迭代对象中的值,一个一个取出,然后赋值给变量,每循环一次就迭代一次,变量也就变一次,知道迭代对象的值被迭代完。

注意迭代对象只能是有序类型:列表、字典、元组、字符串等。

**break:**结束语句所在处的循环。

**continue:**跳过当前循环,直接进行下一次循环。

**pass和...:**空语句,用于占位。

# if语句定义

# 单分支

if ... 如果条件成立则执行。

if [条件]:
    代码1
    代码2
    代码3
1
2
3
4

# 双分支

if ... else ... 如果条件成立则执行代码块1,否则执行else下的代码块2。

一个if判断中else最多只有一个。

if [条件]:
    代码1
    代码2
    代码3
else:
    代码1
    代码2
1
2
3
4
5
6
7

# 多分支

if ... elif ... else ... 如果条件1成立则执行代码块1,否则判断条件2,如果条件2成立则执行代码块2,否则执行else下的代码块3。

一个if判断中elif可有多个。

if [条件1]:
    代码1
    代码2
    代码3
elif [条件2]:
    代码1
    代码2
elif [条件3]:
    代码1
    代码2
else:
    代码1
    代码2
1
2
3
4
5
6
7
8
9
10
11
12
13

# while语句定义

写程序时要避免重复代码,也就是代码冗余,能用循环就用循环。

# 普通循环

如果条件成立则会循环,代码块执行完后,会再次判断,如果仍然成立,则会继续循环,直到条件判断为假。

while [条件]:
    代码1
    代码2
    ... ...
1
2
3
4

# 嵌套循环

循环可以嵌套多层,如果需要一个循环结束,另一个也结束,可以使它们都用一个循环控制变量,一个循环使条件满足,所以循环都结束。

tag=True
while tag:
    while tag:
        代码1
        代码2
    ... ...
1
2
3
4
5
6

# while-else语法

else中的代码,会在while循环正常结束后运行。

如果是由break打断的循环,则不会运行else中的代码,也就是可以针对没有break退出的,执行某些代码。

while [条件]:
    代码1
    代码2
    ... ...
else:
    代码1
    代码2
    ... ...
1
2
3
4
5
6
7
8

# while对象迭代

while也可用于迭代可迭代对象,但一般是使用for循环迭代对象,while方式了解即可。

list = ["我是","一头","猪"]
a = iter(list) # 转换成迭代对象
while True:
    try:
        print(next(a))
    except StopIteration:
        break
1
2
3
4
5
6
7

# 循环的控制

方式一:使循环条件为假。

# tag之后的代码仍然会执行,直到下次循环判断为不成立后,才会结束循环。
tag=True
while tag:
    tag=False
    print("test")
1
2
3
4
5

方式二:使用break语句跳出循环。

# break语句执行后,会立刻跳出循环,之后的代码都不会再执行。
while True:
break
print("test")
1
2
3
4

方式三:使用continue语句跳过本次循环。

# continue语句执行后,会立刻跳过本次循环,直接进入下次循环,continue后面的代码不会执行。
while True:
print("123")
continue
print("test")
1
2
3
4
5

# 循环注意事项

死循环问题,死循环即一直循环,并且无法跳出循环。死循环会不停运行导致大量调用CPU资源,如数学运算,会带来致命的效率问题。但是对于有等待的死循环,则不会带来这种问题,比如Input需要用户输入才会继续执行。

修改迭代对象问题,对于循环时使用的迭代对象,在循环中一定不能修改迭代对象的值,可能会导致代码逻辑混乱。

# for语句定义

# 普通循环

for [变量名] in [可迭代对象]:
    代码1
    代码2
    代码3
    ... ...
1
2
3
4
5

嵌套循环等,也是和while一样的。

# for-else语法

同while一样,针对非break退出的正常结束循环,会执行else下的代码。

for [变量] in [可迭代对象]:
    代码1
    代码2
    ... ...
    else:
    代码1
    代码2
    ... ...
1
2
3
4
5
6
7
8

# 解压赋值迭代

for k,v in ... 可以k,v...解压赋值的形式循环。

a = [[1,2],[3,4]]
for k,v in a:
    print(k,v)
1
2
3

# 可迭代对象

可迭代对象可以是:列表、字典、字符串、元组、集合。

# "pass"和"..."语法

pass和...代表什么都不做,只是一个占位符。一般用于事先定义函数,使用占位符留空等后续再写。

#流程控制#if判断#while循环#for循环
运算符
浅拷贝和深拷贝

← 运算符 浅拷贝和深拷贝→

最近更新
01
二〇二五年四月十七日随笔
04-17
02
二〇二五年四月十六日随笔
04-16
03
二〇二五年四月九日随笔
04-09
更多文章>
Theme by Vdoing | Copyright © 2022-2025 Hoshinozora | MIT License
湘ICP备2022022820号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式