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流程控制的主要内容,如果未能解决你的问题,请参考以下文章

python流程控制while和if

python语言的流程控制

Python基础-python流程控制之顺序结构和分支结构

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程

Python学习-第三周:流程控制