【Python】控制结构,这个教程一般人我不给


前言

还有多少人不会python的控制结构,在评论区告诉我,让我一个个点名提问。今天,就教会你python的控制结构…

分行与缩进

分行

?一条语句占用一行

?过长的语句可以占用多行,使用\或()控制换行

?[]、{}、()可以直接跨越多行,在列表、字典、元组中需要换行的时候也可以不用添加续行符

a = 1
b = 2
c =a +b
income = (gross_wages
               +taxable_interest
               - ira_deduction)

在这里插入图片描述

缩进

?四个英文空格

?同一代码块的语句缩进长度要相等

?源文件的第一行不需要缩进

python学习交流Q群:906715085###
if 条件表达式:
    执行语句
    ......
else:
    执行语句1
    ......

顺序结构

?按照从上到下的顺序,一条语句一条语句的执行

?最基本的结构

?代码自上而下,依次执行

?按照解决问题的顺序写出相应的语句即可

开始
把冰箱门打开
把大象装冰箱
把冰箱门关上
结束

在这里插入图片描述

选择结构

根据判断再执行决定内容

?使用if…else…语句表示

把冰箱门打开
if 大象能装入:
    把大象装冰箱
else:
    去找一个更大的冰箱
把冰箱们关上

?通过一条或多条语句的执行结果(True或False)来决定执行的代码块

?基本形式为if…else…语句

?if条件语句与else后均有冒号

?语句都要在if和else语句之后的代码块要缩进

?判断条件常用>、<、==、>=、<=

?判断条件为真时,执行代码块1

?判断条件不成立时,执行代码块2

在这里插入图片描述

单分支、双分支、多分支结构

单分支

?只有一个if语句

?如果条件正确就执行一个单向if语句

?当且仅当条件为True时,才执行对应的操作

if salary >= 10000:
    print("I am Happy!") 

双分支

?if-else语句根据判断条件真假决定执行哪个动作

?如果判断条件为True时,则执行if语句下的代码块

?如果判断条件为False时,执行else语句下的代码块

if salary >= 10000:
    print("I am Happy")
else:
    print("I am Fine!")

在这里插入图片描述

多分支

?实现更精细的条件判断

?elif是else if 的缩写,可以有多个elif

?elif是更精细的判断条件,并且以冒号结束

?条件判断从上到下匹配,当满足条件时执行对应的块内语句,后续的elif和else都不再执行

?此时要注意条件顺序

if salary >= 10000:
    print ("happy")
elif salary >= 5000:
    print("ok")
else:
    print("sad")

循环结构

while循环

?只要条件满足,就一直循环

?在某条件下,循环执行某段程序,用于处理重复相同的任务

?while语句后有冒号

?判断条件为真时,执行代码块1,代码需要缩进

?判断条件为假时,执行代码块2,代码应取消缩进

?注意防止死循环产生

while 判断条件:
    代码块1
代码块2

在这里插入图片描述

for-in循环

?方法1:使用range()函数

?for语句最后有冒号

?循环中的语句需要缩进

?range()函数可创建一个整数列表,一般与for循环结合使用

range(start, end, step=1)
range(5): 0,1,2,3,4 没有5
range(1,5):1,2,3,4  没有5
range(1,5,2): 1,3

?for 变量名 in range(5)

patients = ["Alice","Bob","Cathy","Eric"]
for index in range(len(patients)):
    print(index,patients[index])
    
结果:
0 Alice
1 Bob
2 Cathy
3 Eric

?方法2:使用序列项迭代列表对象

?直接把序列中的每个元素迭代出来

?for语句最后要有冒号

?循环中的语句需要缩进

?把每个元素代入变量x,然后执行缩进的代码块

for x in sequence
    代码块
    
patients = {"Alice","Bob","Cathy","Eric"}
for patient_name in patients:
    print(patient_name)
        
结果:
Alice
Bob
Cathy
Eric

?方法3:使用枚举函数迭代序列对象

for index,x in enumerate(sequence):
    代码块

?enumerate()函数将序列对象转换为一个索引序列,并返回序列对象的索引和元素

?Index为返回的索引计数(从0开始)

?x为返回的序列元素

patients = ["Alice","Bob","Cathy","Eric"]
for index,patient_name in enumerate(patients):
    print(index,patient_name)

结果:
0 Alice
1 Bob
2 Cathy
3 Eric

break&continue

break

?用在while和for循环中

?用于提前退出循环

?通常配合if语句使用

continue

?用于while和for循环

?跳过当前的这次循环,直接开始下一次循环

?通常配合if语句使用

不要滥用break和continue语句

?break和continue会造成代码执行逻辑分叉过多,容易出错

?大多数循环并不需要用到break和continue语句

如果代码写的有问题,会让程序陷入”死循环“,可以使用Ctrl+C退出程序,或者强制结束python进程

最后

今天的分享到这里就结束了,喜欢的记得点赞收藏,下一章见啦!!!!

在这里插入图片描述