Python 语言-第二章流程控制结构


第二章流程控制结构

流程控制结构包括顺序结构、选择结构、循环结构

2.1 顺序结构

2.1.1 赋值语句

  • 简单赋值语句

    变量=表达式
    
  • 复合赋值语句

    变量op=表达式
    
    • op 可以是一个位运算符或者算术运算符,它与赋值运算符=一起构成符合赋值运算符。
  • 多变量赋值语句

    • 链式赋值语句

      • 链式一般语法格式:

        变量1=变量2=……=变量n=表达式
        
    • 同步赋值语句

      • 同步赋值一般语法格式:

        变量1,变量2,……,变量n=表达式1,表达式2,……,表达式n
        

2.1.2 数据输入/输出

  • 标准输入

    • 语法格式:

      input([提示字符串])
      
    • 常用方式:

      name=input("请输入您的姓名")
      
    • 将输入的字符串转换为其他数据类型:

      age=int(input("请输入您的年龄"))
      
  • 标准输出

    • 语法格式:

      print([输出项1],[输出项2],[……],[,seq=分割符][,end=结束符])
      
      • sep参数:用于指定各输出项之间的分割符,默认为空格
      • end参数:用于指定结束符,默认为换行符

2.2 选择结构

在选择结构中:表达式表示条件,均为布尔值,在表达式后要加上冒号。语句块可以是单个或多个语句。语句块必须右缩进,如果包含多个语句,则这些语句必须有相同的缩进量。

2.2.1 对象的布尔值

  • 在python中,一切皆对象,而所有的对象都有一个布尔值

  • 获取对象的布尔值使用bool()函数

  • 常见布尔值为 False 得对象:

    • False、数值0、None、空字符串、空列表、空元组、空字典、空集合

2.2.2 单分支选择结构

  • if语句一般语法格式

    if  表达式:
      	语句块
    

2.2.3 双分支选择结构

  • if-else语句一般语法格式

    if  表达式:
      	语句块
    else:
      	语句块
    
  • 条件运算符

    • 条件运算符是一个三目运算符,有三个运算对象。

    • 一般运算语法格式为:

      表达式1 if 判断条件 else 表达式2
      
      • 规则:如果判断条件为 True ,则执行表达式1;如果表达式判断条件为 False,则执行表达式2
    • 条件运算与3个运算对象构成一个条件表达式,该表达式可以作为运算对象出现在其他表达式中

2.2.4 多分支选择结构

  • if-eilf-else一般语法格式

    if  表达式1:
      语句块1
    elif 表达式2:
      语句块2
    elif 表达式m:
      ...
    [else: 
      语句块n]
    

2.2.5 选择结构的嵌套

  • 在if语句中嵌套if-else语句

    if 表达式1:
      if  表达式2:
      	语句块1
      else:
      	语句块2
    
  • 在if-else语句中嵌套if语句

    if 表达式1:
      if 表达式2:
      	语句块1
    else:
      语句块2
    
    • 使用嵌套的选择结构时系统将根据代码缩进量来确认代码缩进的层次关系。

2.3 循环结构

? 在循环语句中有两部分组成:一部分是循环体,一部分为循环条件。循环体为重复循环的语句块,循环条件则是控制是否继续执行该语句块的表达式。

2.3.1 range() 函数

  • 用于生成一个整数序列

  • 创建 range 对象的方式:

    1. range(stop)
      
      • 创建一个[0,stop)之间的整数序列,步长为1
    2. range(start,stop)
      
      • 创建一个[start,stop)之间的整数序列,步长为1
    3. range(start,stop,step)
      
      • 创建一个[start,stop)之间的整数序列,步长为step
  • 返回值是一个迭代器的对象

  • range 类型的优点:

    • 不管 range 对象表示的整数序列有多长,range 对象占用的内存空间都是一致的。
      • 因为 range 对象仅仅储存 start、stop和step,只有使用 range 对象时,才会计算序列中的相关元素
  • 通常使用 in 和 not in 来判断 整数序列中是否存在(不存在)指定的整数

2.3.2 循环控制语句

  1. break:终止当前循环

  2. continue:跳过当前循环

  3. pass:仅作为占位语句,不做任何事情

2.3.3 while语句

  • 一般语法格式

    while 表达式:
      	语句块
    
    • 通常表达式是关系表达式或者逻辑表达式,也就是可以将结果能够转换为布尔值的任何表达式
    • 表达式后面必须跟冒号。
    • 语句块可以是单个或多个语句。语句块必须右缩进,如果包含多个语句,则这些语句必须有相同的缩进量。
  • while-else语法格式

    while 表达式:
      	语句块1
    else:
      	语句块2
    
    • 语句块2可以包含单个或多个语句,这些语句将在循环正常结束的情况下执行。如果通过break语句中断循环,则不会执行语句块2中的语句。

2.3.4 for语句

  • for语句是一个通用的序列迭代器,可以用于遍历(是指沿着某条搜索的路线,依次对序列中每个对象均作一次且仅做一次的访问)任何有序序列对象中的所有元素。

  • 一般语法格式

    for 循环变量 in 序列对象:
    	语句块
    
    • 其中循环变量可以不用初始化,序列对象指定要遍历的字符串、列表、元组、集合或字典。
    • 与while语句一样,在for语句中也可以使用一个可选的else子句。当for循环正常结束时将会执行else子句。如果通过break语句中断循环,则不会执行else子句。

2.3.5 循环结构的嵌套

  • 嵌套循环:在循环结构中又嵌套另一个完整的循环结构

  • 简单嵌套示例:九九乘法口诀表

    print("乘法口诀表")
    for i in range(1,10):
      for j in range(1,i+1):
      	print("{0}X{1}={2:2d}\t".format(i,j,i*j),end=" ")
      	print( )
    
    乘法口诀表
      1X1= 1
      2X1= 2 2X2= 4
      3X1= 3 3X2= 6	 3X3= 9
      4X1= 4 4X2= 8	 4X3=12	 4X4=16
      5X1= 5 5X2=10	 5X3=15	 5X4=20	 5X5=25
      6X1= 6 6X2=12	 6X3=18	 6X4=24	 6X5=30	 6X6=36
      7X1= 7 7X2=14	 7X3=21	 7X4=28	 7X5=35	 7X6=42	 7X7=49
      8X1= 8 8X2=16	 8X3=24	 8X4=32	 8X5=40	 8X6=48	 8X7=56	 8X8=64
      9X1= 9 9X2=18	 9X3=27	 9X4=36	 9X5=45	 9X6=54	 9X7=63	 9X8=72	 9X9=81