python3-流程控制
if语句
假如把写程序比做走路,那我们到现在为止,一直走的都是直路,还没遇到过分叉口,想象现实中,你遇到了分叉口,然后你决定往哪拐必然是有所动机的。
你要判断那条岔路是你真正要走的路,如果我们想让程序也能处理这样的判断怎么办? 很简单,只需要在程序里预设一些条件判断语句,满足哪个条件,就走哪条岔路。
这个过程就叫流程控制。
if…else 语句
单分支
#if 条件:
# 满足条件后要执行的代码
a = 10
b = 20
if a < b:
print('说得对')
双分支
if 条件:
满足条件后要执行的代码
else:
if条件不满足要执行的代码
a = 10
b = 20
if a < b:
print('说得对')
else:
print('错了错了')
到这里,也许会有疑问,为什么上面if代码里每个条件的下一行都缩进4个空格?
好,这就是Python的一大特色:强制缩进,目的是为了让程序知道,每段代码依赖哪个条件,如果不通过缩进来区分,程序怎么会知道,当你的条件成立后,去执行哪些代码呢?
Python的缩进有以下几个原则:
- 顶级代码必须顶行写,即如果一行代码本身不依赖于任何条件,那它必须不能进行任何缩进
同一级别的代码,缩进必须一致 - 官方建议缩进用4个空格,当然你也可以用2个,如果你想被人笑话的话。
多分支
if 条件:
满足条件执行代码
elif 条件:
上面的条件不满足就走这个
elif 条件:
上面的条件不满足就走这个
elif 条件:
上面的条件不满足就走这个
else:
上面所有的条件不满足就走这段
举个例子吧:
根据输入的不同,会最多得到3种不同的结果
age = 18
guess = int(input(">>:"))
if guess > age :
print("太大了")
elif guess < age :
print("太小了")
else:
print("bingo")
while语句
基本循环
while 条件:
循环体
如果条件为真,那么循环体则执行
如果条件为假,那么循环体不执行
循环中止语句
如果在循环的过程中,因为某些原因,你不想继续循环了,怎么把它中止掉呢?这就用到break 或 continue 语句
break:用于完全结束一个循环,跳出循环体执行循环后面的语句
continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环
break例子:
count = 0
while count <= 100 : #只要count<=100就不断执行下面的代码
print("loop ", count)
if count == 5:
break
count +=1 #每执行一次,就把count+1,要不然就变成死循环啦,因为count一直是0
print("-----out of while loop ------")
输出:
loop 0
loop 1
loop 2
loop 3
loop 4
loop 5
-----out of while loop ------
continue例子:
count = 0
while count <= 100 :
count += 1
if count > 5 and count < 95: #只要count在6-94之间,就不走下面的print语句,直接进入下一次loop
continue
print("loop ", count)
print("-----out of while loop ------")
输出:
loop 1
loop 2
loop 3
loop 4
loop 5
loop 95
loop 96
loop 97
loop 98
loop 99
loop 100
loop 101
-----out of while loop ------
while…else…
while 后面的else 作用是指,当while 循环正常执行完,中间没有被break 中止的话,就会执行else后面的语句。
count = 0
while count <= 5 :
count += 1
print("Loop",count)
else:
print("循环正常执行完啦")
print("-----out of while loop ------")
输出:
Loop 1
Loop 2
Loop 3
Loop 4
Loop 5
Loop 6
循环正常执行完啦
-----out of while loop ------
如果执行过程中被break啦,就不会执行else的语句
count = 0
while count <= 5 :
count += 1
if count == 3:break
print("Loop",count)
else:
print("循环正常执行完啦")
print("-----out of while loop ------")
输出:
Loop 1
Loop 2
-----out of while loop ------