Python流程控制
Posted zzzzy09
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python流程控制相关的知识,希望对你有一定的参考价值。
Python 同样提供了现代编程语言都支持的两种基本流程控制结构,分支结构和循环结构:
- 分支结构用于实现根据条件来选择性地执行某段代码;
- 循环结构用于实现根据循环条件重复执行某段代码;
Python 使用 if 语句提供分支支持,提供了 while、 for-in 循环,也提供了 break 和 continue 控制程序的循环结构。
if 判断语句:
[root@kube control]# cat demo.py #coding:utf-8 s_age = input(‘you age number:‘) age = int(s_age) if age > 20: # : 分号表示一个代码块的开始,代码块必须有内容否则报错 print(‘you age > 20,you know‘) #缩进是标识python 代码块的非常重要的东西,不能随意缩进 [root@kube control]# py demo.py you age number:22 you age > 20,you know [root@kube control]# py demo.py you age number:11 [root@kube control]#
if else 判断语句:
[root@kube control]# cat demo.py #coding:utf-8 s_age = input(‘you age number:‘) age = int(s_age) if age > 20: print(‘you age > 20,you know‘) else: # else也要用 : 起始 print(‘you age <20 ,you know‘) [root@kube control]# py demo.py you age number:22 you age > 20,you know [root@kube control]# py demo.py you age number:11 you age <20 ,you know [root@kube control]#
if 表达式真假值的判断方法
从前面的示例可以看到,Python 执行 if 语句时,会判断 if 表达式的值是 True 还是 False 。那么是不是只能使用 bool 类型的表达式呢?
不是。表达式可以是任意类型,当下面的值作为 bool 表达式时,会被解释器当作 False 处理:
False、None、0、""、()、[]、{}
从上面介绍可以看出,除了 False 本身,各种代表“空”的 None、空字符串、空元组、空列表、空字典都会被当成 False 处理。
[root@kube control]# cat demo1.py a = ‘‘ if a : print(‘a is not none string‘) else: print(‘a is none string‘) b = {} if b : print(‘b is not none string‘) else: print(‘b is none string‘) [root@kube control]# py demo1.py a is none string b is none string [root@kube control]#
if 语句嵌套:
[root@kube control]# cat demo2.py #coding:utf-8 num = int(input(‘you test score:‘)) if num > 80: print(‘you Good!!!‘) else: if 60 < num < 80 : #if 语句嵌套最重要的就是缩进,确认每个代码块的分界 print(‘you Bad!!!!‘) else: print(‘you so bad!!!‘) [root@kube control]# py demo2.py you test score:88 you Good!!! [root@kube control]# py demo2.py you test score:78 you Bad!!!! [root@kube control]# py demo2.py you test score:56 you so bad!!! [root@kube control]#
很多程序都提供了“空语句”支持,Python 也不例外,Python 的 pass 语句就是空语句。
有时候程序需要占一个位、放一条语句,但又不希望这条语句做任何事情,此时就可通过 pass 语句来实现。通过使用 pass 语句,可以让程序更完整。
如下程序示范了 pass 作为空语句的用法:
[root@kube control]# cat demo3.py #coding:utf-8 num = int(input(‘you test score:‘)) if num > 80 : pass else: print(‘you so bad‘) [root@kube control]# py demo3.py you test score:88 [root@kube control]# py demo3.py you test score:55 you so bad [root@kube control]#
Python assert断言函数及用法
assert 断言语句和 if 分支有点类似,它用于对一个 bool 表达式进行断言,如果该 bool 表达式为 True,该程序可以继续向下执行;否则程序会引发 AssertionError 错误。
有读者可能会问,明明 assert 会令程序崩溃,为什么还要使用它呢?这是因为,与其让程序在晚些时候崩溃,不如在错误条件出现时,就直接让程序崩溃。通常,assert 语句用在检查函数参数的属性(是参数是否是按照设想的要求传入),或者作为初期测试和调试过程中的辅助工具。
[root@kube control]# cat demo4.py #coding:utf-8 s_age = int(input(‘you age num:‘)) assert 20 < s_age < 80 #assert 的作用就是出现不符合预期的情况就中断程序的执行 print(‘you age is range 20 - 80‘) [root@kube control]# py demo4.py you age num:56 you age is range 20 - 80 [root@kube control]# py demo4.py you age num:11 Traceback (most recent call last): File "demo4.py", line 5, in <module> assert 20 < s_age < 80 AssertionError [root@kube control]#
[root@kube control]# cat demo5.py #coding:utf-8 #price 为原价,discount 为折扣力度 def apply_discount(price, discount): #定义一个价格和折扣力度的函数 updated_price = price * (1 - discount) #计算折扣后的价格 assert 0 <= updated_price <= price #assert 判断是否在合理区间,合理就就继续执行,返回折扣价格,不合理就assert 退出 #‘折扣价应在 0 和原价之间‘ return updated_price print(apply_discount(100,0.2)) print(apply_discount(100,1.1)) [root@kube control]# py demo5.py 80.0 Traceback (most recent call last): File "demo5.py", line 11, in <module> File "demo5.py", line 7, in apply_discount AssertionError [root@kube control]#
Python while ,for 循环语句详解
Python中for循环和while循环本质上是没有区别的,但是在实际应用上,针对性不太一样。
while循环适用于未知循环次数的循环,for循环适用于已知循环次数的循环 。
while 语句执行的具体流程为:首先判断条件表达式的值,其值为真(True)时,则执行代码块中的语句,当执行完毕后,再回过头来重新判断条件表达式的值是否为真,若仍为真,则继续重新执行代码块...如此循环,直到条件表达式的值为假(False),才终止循环。
以上是关于Python流程控制的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段15——git命令操作一个完整流程