python流程控制语句

计算机在解决某个问题的时候,通常有三种情形,一种是顺序执行所有语句,一种是选择执行部分语句,还有一种是循环执行部分语句,如图:

在python中选择语句有三种形式,分别为if语句、if…else语句、if…elif…else多分支语句。python中没有switch语句。

语法格式如下:

if  表达式:
    语句块

其中表达式可以是布尔值或者变量,也可以是比较表达式或者逻辑表达式,如果表达式为真,则执行语句块,如果为假的,则跳过语句块,继续执行后面的语句

例如:使用if语句判断一个数除以3余2,除以5余3,除以7余2,从键盘输入,如下:

number=int(input("请输入你认为符合的数字"))
if number%3==2 and number%5==3 and number%7==2
    print(number)

编写文件number.py,写入内容如下:

注意:上图中的if命令以及else命令后都有一个冒号,这个是固定语法,在print语句里,如果有两部分内容,此时之间使用逗号分隔开

下面这个例子也是通过if…else来进行判断var的值,其中包含if嵌套,如图:

下面使用if…elif…else进行多分支语句判断,如图:

如果要判断字符串的内容是否为空,此时可以使用如下命令,如下:

#result为字符串
#第一种方式,直接通过字符串与空字符串做对比
if result == " ":
    print("字符串result为空")
#第二种,可通过字符串的长度是否为0做判断,如下:
if len(result) == 0:
    print("字符串result为空")

注:python中并不要求if-elif-elif后一定要有else,没有也是可以的,根据需求定义

如果列表为空,那么在使用 if 判断的时候将返回false,如图:

if…else语句还可以进行简写,原始的写法如图:

简写后的语句为如下(括号非必须):

while循环:

语法格式如下:

while 表达式:
     循环体

上述语法中,只要表达式为真,那么执行循环体,直到表达式为假的时候,循环体结束。

例如:通过while循环来判断一个数,除以3余下2,除以5余下3,除以7余下2,如图:

上图中的代码中,一定不能缺少最后一行代码,否则将产生死循环。

注:上述例子中使用了”标志”,即首先设置none=True,满足一定条件后设置none为False从而退出循环

while循环和for循环都有一个可选的else语句,当循环体执行完成后才会执行else,如果因为break导致循环中断,那么else不会执行,如图:

注:如果将上面注释打开,那么执行break中止循环后,else不会执行

for循环

for循环是一个依次重复执行的循环,适用于枚举或者遍历序列,以及迭代对象中的元素,语法格式如下:

for 迭代变量 in 对象:
    循环体

其中,迭代变量用于保存读取出来的值,对象为要遍历或者迭代的对象,对象可以是任何有序的序列,如字符串、列表、元祖,循环体为一组被重复执行的语句。

1、进行数值循环:

上图中使用了range()函数,该函数是python的内置函数,用于生成一系列连续整数,多用于for循环中,语法格式如下:

range(start,end,step)

参数说明:

  1. start: 用于指定计数的起始值,可以忽略,如果忽略则从0开始。
  2. end:用于指定计数的结束之,但不包括该值,如range(8),得到的值为0-7,不包括8。
  3. step:用于指定步长,即两个数之间的间隔,如果不指定,默认步长为1,例如range(1,8),那么得到为1、2、3、4、5、6、7,如果是range(1,8,2)则得到1、3、5、7,step也可以为一个负值,用来调整生成范围的方向

在使用range()的时候,如果只有一个参数,此时表示end,如果有两个参数,此时表示start,end,如果有三个参数,第三个参数才是指定的步长。

例如:打印1到10之内的奇数,使用了end进行分隔,如图:

在python2中如果想要输出结果在一行中显示,需要在i后面加上一个逗号,在Python3中,不可以直接加逗号,需要加上,end=’ ‘,其中end后面的单引号之间可以放一个空格,这样输出的内容可以用空格分开。

下面通过for与if共同判断一个数,除以3余2,除以5余3,除以7余2,如图:

for循环也可以用来遍历字符串,如图:

2、循环遍历列表内容

循环嵌套

在Python中允许一个循环体中嵌套另一个循环体,while和while、while和for、for和for之间都可以进行嵌套。

例如:通过嵌套for循环,打印九九乘法表,如图:

第一个for循环可以看作是对乘法表行数的限制,第二个可以看成是对列数的限制,列数的最大值应等于行数,因此第二个循环条件是在第一个基础上建立的。

跳转语句

当循环条件一直满足的时候,程序会一直执行下去,如果希望在满足某一条件的时候停止循环,此时可以使用break或者continue来中止循环,有两种方法可以做到:

  1. continue:结束当前循环,继续执行后面的循环。
  2. break:完全终止循环。

1、break语句:

终止当前循环,一般情况下与if语句结合使用,表示在某种条件下跳出循环,如果是嵌套循环,break跳出最内层循环。

例如:判断一个数除以3余2,除以5余3,除以7余2,当找到这个数的时候,跳出循环,如图:

2、continue语句:

终止本次循环而提前进入到下一循环·,一般情况下与if语句配合使用,表示在某种条件下跳出当前循环,继续下一轮循环,如果是嵌套循环,则跳出最内层循环的剩余语句。

例如:通过在for循环中使用continue语句实现计算拍腿次数,即计算从1到100(不包括100)中,有多少尾数为7或7的倍数这样的数,当尾数为7或者7的倍数的时候,不报该数,只是拍腿,程序如图:

如果要打印这些数字,只需要在对应的continue上加上打印语句即可,如图:

上图中的endswith()用于判断是否以数字7结尾。

pass空语句

在python中还有一个pass空语句,它不做任何事情,一般起到占位的作用。

例如:打印1到10之间的偶数,通过pass进行占位,如图:

使用and连接条件的选择语句

在实际工作中,经常需要同时满足两个或者两个以上条件的时候才能执行if后面的语句,此时可以使用and逻辑运算符进行判断,如图:

上图中不用and通过嵌套if也可以实现

使用or连接条件的选择语句

or是python的逻辑运算符之一,可以通过or进行多个条件内容的判断,只要满足一个条件,就执行if后面的语句块,如图:

上图中不用or通过if嵌套也可以实现

使用not关键字的选择语句

实际开发中,经常碰到如下情况: 如果变量值不为空,则输出内容,否则输出另一个内容,此时可以使用not关键字进行上面程序的判断,not也为逻辑运算符之一,用于布尔类型True和False,not与if连用,表示not后面的表达式为False的时候,执行冒号后面的语句,如图:

注意:当not后面的表达式为False的时候,执行冒号后面的语句,因此not后面的表达式尤为重要

python中,False、None、空字符串、空列表、空字典、空元组都相当于False

最佳的写法是:”if x is not None”,如果x不是False,不容易出现错误,推荐这种写法,但是前提是:必须清楚x等于 False、0、None、空字符串、空列表、空字典、空元组时,对判断没有影响才行

在python中,要判断特定的值是否存在列表中,可以使用关键字in,判断不存在列表中可以使用关键字not in,例如,密码输入中,输入非数字会被判断为非法输入,如图:

标签