控制流:
截止到现在,在我们所看过的程序中,总是有一系列语句从上到下精确排列,并交由 Python 忠实地执行。如果你想改变这一工作流程,应该怎么做?就像这样的情况:你需要程序作出一些决定,并依据不同的情况去完成不同的事情,例如依据每天时间的不同打印出 '早上好' 'Good Morning' 或 '晚上好' 'Good Evening'?
正如你可能已经猜测到的那番,这是通过控制流语句来实现的。在 Python 中有三种控制流语句——if
for
和 while:
if..else语句:
number = 50
inp = input('>>:').strip()
inp = int(inp)
if inp == number:
print('这个是走if代码块')
else:
print('这个是走else代码块')
这个是单分支,那么多分支是什怎么写呢?
age_of_oldboy = 48
guess = int(input(">>:"))
if guess > age_of_oldboy :
print("猜的太大了,往小里试试...")
elif guess < age_of_oldboy :
print("猜的太小了,往大里试试...")
else:
print("恭喜你,猜对了...")
while 语句:
if else在某种环境下还是有局限性的,比如:判断一个流程,需要判断多次,代码不能一直复制,这时就可以用while代替重复代码,比如:
count = 0
while count <= 100 : # 只要count小于100就不断执行下面的代码
if count % 2 == 0: # 判断是否是偶数
print("loop ", count)
count +=1 # 每执行一次,就把count+1,要不然就变成死循环啦,因为count一直是0
还有一种循环,一触发就运行到爆炸。while 是只要后边条件成立(也就是条件结果为真)就一直执行,怎么让条件一直成立呢?
count = 0
while True: # True本身就是真呀
print("一直在运行...",count)
count +=1
for..in 语句:
for..in
语句是另一种循环语句,其特点是会在一系列对象上进行迭代(Iterates),意即它会遍历序列中的每一个项目
for i in range(5):
print(i)
else:
print('循环结束')
运行原理:在这一程序中,我们打印了一个数字序列。我们通过内置的 range
函数生成这一数字序列。
在这里我们所要做的事情是提供两个数字,而 range
将会返回一个数字序列,从第一个数字开始,至第二个数字结束。举个例子,range(1,5)
将输出序列 [1, 2, 3, 4]
。在默认情况下,range
将会以 1 逐步递增。如果我们向 range
提供第三个数字,则这个数字将成为逐步递增的加数。同样举个例子来说明,range(1,5,2)
将会输出 [1, 3]
。要记住这一序列扩展直到第二个数字,也就是说,它不会包括第二个数字在内,会跳一步,越过2,range(1,5,3)
将会输出 [1, 4]
。
循环终止语句:
如果在循环的过程中,因为某些原因,你不想继续循环了,怎么把它中止掉呢?这就用到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 ------")
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 ------")
while..else:
与其它语言else 一般只与if 搭配不同,在Python 中还有个while ...else 语句
while 后面的else 作用是指,当while 循环正常执行完,中间没有被break 中止的话,就会执行else后面的语句
count = 0
while count <= 5 :
count += 1
print("Loop",count)
else:
print("循环正常执行完啦")
print("-----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 ------")
总结:本文介绍了在 Python 中有三种控制流语句——if
for
和 while循环语句,以及break终止和continue中止某一次继续执行和while..else语句