当前位置:首页>python>【第二章】Python语言的控制流程

【第二章】Python语言的控制流程

  • 2026-09-02 19:55:42
【第二章】Python语言的控制流程

二

Python语言的控制流程

1. 程序的组织结构

2. 对象的布尔值

3. 选择结构

单分支结构

双分支结构

多分支结构

嵌套if

条件表达式:if...else的简写

pass语句

4. range()函数

创建方式

返回值

优点

判断指定元素是否存在range()中

5. 循环结构

循环的分类

选择结构if和循环结构while的区别

while语法结构

while循环:四步循环法

for-in循环

6. 流程控制语句break

7. 流程控制语句continue

8. else语句

9. 嵌套循环

10. 二重循环中的break和continue

二. Python语言的控制流程

No.1

程序的组织结构

  • 顺序结构:从上到下顺序的执行代码,直到程序结束,没有任何判断和跳转  

  • 选择结构:根据判断条件的布尔值选择性的执行部分代码:if语句  

  • 循环结构:while语句和for-in语句

No.2

对象的布尔值

  • python中一切皆对象,所有对象都有布尔值,可以通过bool()来获取  

  • 以下对象布尔值均为False:False,数值0,None,空字符串,空列表,空元组,空字典,空集合

```python# 测试对象的布尔值,以下对象均为False,除此之外均为Trueprint(bool(False))print(bool(0))print(bool(0.0))print(bool(None))print(bool(''))  # 空字符串print(bool(""))  # 空字符串print(bool([]))  # 空列表print(bool(list()))  # 空列表print(bool(()))  # 空元组print(bool(tuple()))  # 空元组print(bool({}))  # 空字典print(bool(dict()))  # 空字典print(bool(set()))  # 空集合```

No.3

选择结构

  • 需要明确的让程序知道在什么条件下执行什么内容。

1. 单分支结构

```python# 语法结构if 条件表达式:    条件执行体# 单分支结构money = 100s = int(input('请输入金额:'))if money >= s:    money = money - s    print('余额为:', money)```

2. 双分支结构

```python# 语法结构if 条件表达式:    条件执行体1else:    条件执行体2# 双分支结构:键盘输入一个整数,判断是奇数还是偶数num = int(input('请输入一个整数:'))if num % 2 == 0:    print(num, '这是一个偶数!')else:    print(num, '这是一个奇数!!')```

3. 多分支结构

```python# 语法结构if 条件表达式1:    条件执行体1elif 条件表达式2:    条件执行体2elif 条件表达式3:    条件执行体3else:    条件执行体其他# 多分支结构:输入一个整数成绩,判断成绩的范围score = int(input('请输入一个整数成绩:'))if score>=90 and score<=100:    print('A级')elif score>=80 and score<=89:    print('B级')elif 70<=score<=79:  #python中可以按照数学格式来写,但是其他语言不行    print('C级')elif 60<=score<=69:    print('D级')elif score>=0 and score<=59:    print('E级')else:    print('成绩输入不正确!!')```

4. 嵌套if

```python# 语法结构if 条件表达式1:    if 内嵌条件表达式:        内层条件执行体a    else:        内层条件执行体belse:    条件执行体# 嵌套if:输入一个金额,进行会员非会员的判断answer = input('您是会员么?y/n')money = float(input('输入您的购物金额:'))if answer == 'y':    if money >= 200:        print('付款金额为:', money * 0.8)    elif money >= 100:        print('付款金额为:', money * 0.9)    else:        print('商品不打折', money)else:  # 非会员    if money >= 200:        print('付款金额为:', money * 0.95)    else:        print('商品不打折', money)```

5. 条件表达式:if...else的简写

```python# 语法结构x if 判断条件 else y# 如果判断条件为True,则返回x,如果判断条件是False,返回y# 条件表达式:键盘输入两个整数,比较大小num_a = int(input('请输入第一个整数:'))num_b = int(input('请输入第二个整数:'))print(num_a, '大于', num_b) if num_a >= num_b else print(num_a, '小于', num_b)      # ==> 3 小于 4print(str(num_a)+'大于'+str(num_b) if num_a >= num_b else str(num_a)+'小于'+str(num_b))     # ==> 3小于4```

6. pass语句

  • 语句什么都不做,只是一个占位符,用在语法上需要的地方

  • 什么时候用:先搭建语法结构,还没想好代码如何写的时候

  • 可以和什么语句一起用:if语句的条件执行体,for-in语句的循环体,定义函数时的函数体

```python# pass语句练习answer = input('您是会员么?y/n')if answer=='y':    passelse:    pass```

No.4

变量

  • 用于生成一个整数序列

1. 创建方式

  • range(stop):创建一个(0,stop)之间的整数序列,步长为1

  • range(start,stop):创建一个(start,stop)之间的整数序列,步长为1

  • range(start,stop,step):创建一个(start,stop)之间的整数序列,步长为step

```python# range()函数的创建方式r = range(10)print(r)  # ==>range(0, 10)print(list(r))  # ==>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 用于查看range对象中的整数序列,默认步长为1r2 = range(1, 10)print(list(r2))     # ==>[1, 2, 3, 4, 5, 6, 7, 8, 9]r3 = range(1, 10, 2)print(list(r3))     # ==>[1, 3, 5, 7, 9]```

2. 返回值

  • 是一个迭代器对象(没有办法看到具体数据)

3. 优点

  • 不管range对象表示的整数序列有多长,所有range对象占用的内存空间都是相同的,因为仅仅需要存储start,stop和step,只有当用到range对象时,才回去审计序列中的相关元素

4. 判断指定元素是否存在range()中

```python# 使用in与not in判断整数序列中是否存在/不存在指定的整数r = range(10)print(10 in r)      # ==>Falseprint(9 in r)        # ==>Trueprint(11 not in r)       # ==>True```

No.5

数据数据类型

  • 定义:反复做同一件事情

1. 循环的分类

  • while循环

  • for-in循环

2. 选择结构if和循环结构while的区别

  • if是判断一次,条件为True执行一次

  • while是判断N+1次,条件为True执行N次

3. while语法结构

while 条件表达式:    条件执行体(循环体)

4. while循环:四步循环法

  • 初始化变量

  • 条件判断

  • 条件执行体(循环体)

  • 改变变量

  • 总之:初始化的变量与条件判断的变量与改变的变量为同一个

```python# while循环计算0到4之间的累加和a = 0sum = 0while a < 5:    sum = sum + a    a += 1print('0到4之间的累加和为:', sum)# 计算1-100之间的偶数和a = 1sum = 0while a <= 100:    if not a % 2:  # 0 的布尔值为False,求偶数和需要求反    # if a % 2 == 0:  # 这是求偶数的和        sum += a    a += 1print("计算1-100之间的偶数和", sum)```

5. for-in循环

  • in表示从(字符串,序列等)中依次取值,又称为遍历

  • for-in遍历的对象必须是可迭代对象

  • 语法结构:

for 自定义的变量 in 可迭代对象:    循环体
  • 循环体内不需要访问自定义变量,可以将自定义变量替换为下划线

```python# 遍历取出每个对象for item in 'python':  print(item)# range() 产生一个整数序列,也是可迭代对象for i in range(10):  print(i)# 如果不需要使用自定义变量,可将自定义变量些为 _for _ in range(5):  print('python学习')  # 这行文字会被输出5遍# 使用for循环计算1-100之间的偶数和sum = 0for item in range(1, 101):  if item % 2 == 0:      sum += itemprint('1-100之间的偶数和为:', sum)# 输出100-999之间的水仙花数(比如:153 = 3*3*3 + 5*5*5 + 1*1*1)for item in range(100, 1000):  ge = item % 10  # 个位  shi = item // 10 % 10  # 十位  bai = item // 100  # 百位  if ge**3 + shi**3 + bai**3 == item:      print('这是一个水仙花', item)```

No.6

流程控制语句break

  • 用于结束循环结构(直接退出循环),通常与if一起使用

```python# 从键盘录入密码,最多3次,如果正确就结束循环# 方式一:for item in range(3):    pwd = input('请输入密码:')    if pwd == '888888':        print('密码正确')        break    else:        print('密码不正确!!')# 方式二:a = 0while a < 3:    pwd = input('请输入密码:')    if pwd == '888888':        print('密码正确')        break    else:        print('密码不正确!!')    a += 1```

No.7

流程控制语句continue

  • 用于结束当前循环,进入下一次循环,通常和if一起使用

```python# 要求输出1-50之间输出所有5的倍数for item in range(1, 51):    if item % 5 == 0:        print(item)# 要求使用continuefor item in range(1, 51):    if item % 5 != 0:        continue    print(item)```

No.8

else语句

  • if条件不成立的时候使用else

  • while和for-in中没有碰到break时执行else

```python# 从键盘录入密码,最多3次,如果正确就结束循环# 方式一:for item in range(3):    pwd = input('请输入密码:')    if pwd == '888888':        print('密码正确')        break    else:        print('密码不正确!!')else:    print('3次机会用完')# 方式二:a = 0while a < 3:    pwd = input('请输入密码:')    if pwd == '888888':        print('密码正确')        break    else:        print('密码不正确!!')    a += 1else:    print('3次机会用完')```

No.9

嵌套循环

  • 循环结构中又嵌套了另外的完整的循环结构,其中内层循环为外层循环的循环体来执行

```python# 输出三行四列的矩形for i in range(1, 4):  # 表示行数,执行三次,一次是一行    for j in range(1, 5):        print('*', end='\t')  # 不换行输出    print()  # 换行# 打印直角三角形for i in range(1, 10):    for j in range(i):        print('*', end='')    print()# 打印九九乘法表for i in range(1, 10):    for j in range(i):        print(i, '*', j, '=', i*j, end='\t')    print()```

No.10

二重循环中的break和continue

  • 二重循环中的break和continue用于控制本层循环

```python# breakfor i in range(5):    for j in range(1, 11):        if j % 2 == 0:            break        print(j)# continuefor i in range(5):    for j in range(1, 11):        if j % 2 == 0:            continue        print(j, end='\t')    print()```

最新文章

随机文章