从0开始学Python(3)

⭐️分支和循环作为程序的灵魂,才能让代码真正⭐️
🎉能完成有意义的工作,虽然基础,但把简单的🎉
🎁东西学到极致也是不简单。🎁

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:
条件不成立时执行的内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值