【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进程
最后
今天的分享到这里就结束了,喜欢的记得点赞收藏,下一章见啦!!!!