⭐️分支和循环作为程序的灵魂,才能让代码真正⭐️
🎉能完成有意义的工作,虽然基础,但把简单的🎉
🎁东西学到极致也是不简单。🎁
目录
Python中的分支与循环
一.分支
1.1分支的含义
分支的含义是“只有符合条件,才会去做某种事情”。
if 条件1:
执行语句1
elif 条件2:
执行语句2
else:
执行语句3
其中,条件1、条件2等都是布尔值或可以解释为布尔值的表达式,如果条件1为True,则执行语句1;如果条件1为False,且条件2为True,则执行语句2;如果条件1和条件2都是False,则执行语句3。
其中elif其实是python中的一种简写版,他的其实是含义是这样的:
if 条件1:
执行语句1
else:
if 条件2:
执行语句3
1.2普及一下“else悬挂”的问题
在C语言的分支中,if——else语法都是采用就近匹配的原则,有时候不小心就会中招了,虽然编译器不会报错,但是会使得逻辑和我们想的相差甚远。
但是,在python中我们就不需要担心这个问题,因为python中有着严格得缩进要求,这使得一个if就会只有一个else与之对应,所以说缩进是python的灵魂,强制使用正确的缩进,使得代码整洁,易读,这就是python的特色吧。
1.3条件表达式中的三元操作符
三元操作符语法:
a = x if 条件 else y
表示当条件为真的时候,a被赋值为x,条件为假时,a赋值为y。
通常N元操作符是指该操作符是有N个操作数,如赋值操作符(=),它是一个二元操作符,所以它有两个操作数,左右各一个。其实python作者一向推崇的是简介的概念,所以python中一直没有三元操作符,因为三元操作符会使得结构变得复杂,但是由于python小伙伴们呼声太高,就勉为其难的添加了一个三元操作符。那么应该怎么用呢?
之前我们完成这样的语句:
if x < y:
small = x
else:
small = y
有了三元操作符后,可以这样简写:
small = x if x < y else y
1.3断言(assert)
assert的语法和if比较相似,它后边的条件为真时正常执行,如果为假时,程序就会崩溃并且抛出一个AssertionError异常,在我们要测试程序和发现潜在bug的时候就会发挥很大的作用。
一般来说,可以用它在程序中置入检查点,当需要确保程序中的某个条件一定为真时采纳让程序正常工作的话,assert关键字就非常有用了。
二.循环
2.1while循环语句
while循环语句的语法:
while 条件:
循环体
有了循环后我们就可以实现用代码得到1+2+3+…+100的结果了
i = 1
sum = 0
while i <= 100
sum += i
i += 1
print(sum)
有的时候我们需要执行死循环,让程序一直执行循环体里的内容,比如游戏开发的时候就需要一直死循环,等待用户的操作,直到游戏结束才会通过某些信号结束死循环。
while True:
pass//pass 是个占位语句,表示不做任何事情,待开发的位置。
2.2for循环语句
for循环语句的语法:
for 变量 in 可迭代对象:
循环体
所谓可迭代对象就是可以被单独提取出来的对象,比如说字符串,“Good”就是由“G”“o”“o”“d”四个字符元素组成的。
如果想用for循环同样完成从1累加到100的话该怎么写呢:
sum = 0
for i in 100
sum += i
print(sum)
我们看一下运行结果,为什么会报错呢?那是因为100是一个整数,并不是一个可迭代的对象,那我们要怎样来实现呢,这时候就不得不提for的好伙计range了。
range是一个BIF函数,它可以为指定整数生成一个数字序列(可迭代对象),语法:
range(stop)
range(start, stop)
range(start, stop, step)
range的这三种用法,参数都只能是整数,有了它我们就可以实现for循环的1累加到100了,需要注意的是生成的数字序列中,指包含开始数值,不包含结束数值其中step为不长
sum = 0
for i in range(101):
sum += i
print(sum)
三.break语句,continue语句,else语句
3.1break语句
break语句可以让程序随时跳出本层循环。
for year in range(2018, 2100):
if(year % 4 == 0) and (year % 100 != 0) or (year % 400 == 0):
break
print("2018年以后出现的第一个闰年是", year)
这个代码实现的是找到2018到2100的第一个闰年,符合条件后执行break语句,跳出循环打印符合条件的年份。
3.2continue语句
还有一个可以跳出循环的语句——continue语句,他的作用是跳出本轮循环并开始下一次循环。
for year in range(2018, 2100):
if(year % 4 == 0) and (year % 100 != 0) or (year % 400 == 0):
print("2018年以后出现的闰年有", year)
continue
用continue能够得到不一样的效果。
3.2else语句
在循环里else同样也能在特殊场景发挥作用,在while和for后面加上else语句后,表示当条件不成立时执行else语句中的内容
语法:
while条件:
循环体
esle:
条件不成立时执行的内容
for 变量 in 可迭代对象:
循环体
else:
条件不成立时执行的内容