Python语法-流程控制语句

本文详细介绍了Python中的流程控制语句,包括顺序结构、分支结构(单/双/多分支)、语句嵌套、三元运算符、隐式布尔转换以及循环结构(for-in和while)。还探讨了如何使用range函数生成等差数列和避免死循环的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2.6流程控制语句

2.6.1顺序结构语句

代码是从上向下逐行运行的

2.6.2 分支结构语句

分为三种格式的,这三种格式分别是

  1. 单分支

    语法:

    if 条件表达式:
    	满足条件执行的代码块
    

    语境: 如果达到了某个条件,就去做某件事

    :缩进 代表Python中代码块的包含体, 满足要求执行的代码要统一缩进 体现出来包含的关系

  2. 双分支

    语法:

    if 条件表达式:
    	满足条件执行的代码块
    else:
    	不满足条件执行的代码块
    

    语境: 如果满足某个条件做事情A,否则做事情B

  3. 多分支

    语法:

    if 条件表达式1:
    	满足条件1执行的代码块
    elif 条件表达式2:
    	不满足条件1 但是满足条件2执行的代码块
    elif 条件表达式3:
    	满足条件3 但是不满足条件12执行的代码块
    ...
    else:
    	以上条件都不满足执行的代码块
    

    语境: 如果满足条件1,就做事情A,否则如果满足条件2,就做事情B…

语句嵌套

在满足某种要求的基础上,还需要再进行逻辑判断才可以确定结果

Python中的三元运算符

格式:表达式1 if 条件表达式 else 表达式2

解读:判断if后面的表达式是否成立,如果成立的话执行表达式1,否则执行表达式2

隐式布尔转换

隐隐式布尔转换:把非布尔类型的数据当做布尔类型判定逻辑【数据本身没有变化】,这种行为称为隐式布尔类型转换

# ch = input('请输入一个字符:')
# # ch 是什么类型的数据??? 字符串【容器型的  转换规则:非空容器即为True】
# if ch:  # 隐式布尔转换
#     print(ch)
# else:
#     print('没有输入内容')

# 判断一个数是否为偶数
# num = int(input('请输入一个整数:'))
# if num % 2:  # %2的结果为0或者1, 数值转换为布尔类型 非0即为True
#     print('奇数')
# else:
#     print('偶数')


# 把非布尔类型的数据参与逻辑运算符的运算
print(not 1)  # False

"""
and 执行过程
    True and True = True
    True and False = False
    False and False = False
    False and True = False
    执行机制是左边表达式成立,结果取决于右边表达式;左边表达式不成立,结果就是左边表达式的值
"""
# max_value = num1 if num1 > num2 and num1 > num3 else (num2 if num2 > num3 else num3)
# num1 > num2 and num3  能否写成这样?????  不能!!!!!!
# 这样写 and 右边的表达式不是布尔值 而是一个非布尔类型的数据
num1 = 17
num2 = 15
num3 = 27

res = num1 > num2 and num1 > num3
print(res)  # False
"""
and 左边的表达式的结果为真
所以最终的结果 等于 右边表达式的值
"""
res1 = num1 > num2 and num3
"""
and 左边的表达式的结果为真
所以最终的结果 等于 右边表达式的值
"""
print(res1)  # 27

max_value = num1 if num1 > num2 and num1 > num3 else (num2 if num2 > num3 else num3)
# 但是 条件写成
# max_value = num1 if num1 > num2 and num3 else (num2 if num2 > num3 else num3)


"""
执行机制:左边表达式成立,结果就是左边表达式的值;左边表达式不成立,解决取决于右边表达式的值
"""
# 非布尔类型的数据参与逻辑运算的时候 和 布尔类型的数据参与逻辑运算不一样的
# 因为布尔类型的值只有两个 True或者False  参与逻辑运算结果 也就只有两个 要么为True 要么为False
# 但是非布尔类型的数据 ,因为有一个隐式转换规则  结果又取的是表达式的  这个结果不一定是True或者False
res = 1 or 0
print(res)
2.6.3 循环结构语句

循环:周而复始重复的做某件事

编程语言中对一直重复做某件事没有终止的情况下称为死循环,但是编程语言中是禁止死循环

在编程语言中见到的循环通常是两种情况

  1. 明确循环次数【重复做几次之后就不做了】
  2. 明确循环结束的条件

Python为这两个场景的循环提供了对应的循环机制,分别是

  1. for-in循环,应用与明确循环次数的

    本质是在遍历容器型的数据,【遍历:将容器中的数据从左向右逐个取出】,容器中有几个数据,for-in包含的操作就被被执行几次

    语法:

    for 变量名 in 容器型数据:
    	重复操作的代码块
    

    解读:重点在与in[进入], 进入容器中获取数据

    1. 有数据,获取出来赋值给变量名 然后进行重复的操作,再次执行`in`
    
    1. 没有数据 循环结束了
  2. while循环,应用于明确循环结束条件的

    语法:

    while 条件判断:
    	重复操作的代码块
    

    解读:判断条件是否成立

    1. 条件成立,执行重复的操作,再次判断条件是否成立
    2. 条件不成立,循环结束
range功能

用来产生等差数列的,这个结果也是容器型的一个数据,是range类型的

什么叫等差数列? 数据是递增或者递减 【递增或者递减的数据的差值-步长,在整个数据序列中是一致的】

注意:range只能产生整数的等差数列

格式1range(stop结束值)
		序列中的数值是从0开始步长为1的递增到stop[不包含]的数列
		比如 range(10) ===> 0 1 2 3 4 5 6 7 8 9 
格式2: range(start起始值, stop结束值)
		序列中的数值是从start[包含]开始步长为1的递增到stop[不包含]的数列
		比如: range(1, 11) ===> 1 2 3 4 5 6 7 8 9 10
格式3range(start起始值, stop结束值, step步长)
		step为正数 表示递增的数列  start < stop
		step为负数 表示递减的数列  start > stop
		从start[包含]开始 以步长 step 递增或者递减到 stop[不包含]的数列
		比如: range(1, 11, 2) ===> 1 3 5 7 9 
		range(1, 100, 10) ====> 1 11 21 31 41 51 61 71 81 91  [可以理解为100以内 个位数为1的数据]
		range(10, 0, -2) ====> 10 8 6 4 2 
``
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值