流程控制方法的使用极大的增强了程序的执行能力,使得程序能像人一样,能够判断条件并根据结果来执行一系列任务。
流程控制包括 if判断、while循环和for循环。
1、if判断
我们先看一个用if判断写的猜数字游戏:
bkg_num = 18 guess = input("input a number >>>") if guess != bkg_num: print("not this number")
if 是if判断的标志,在if后面加上判断条件,如果条件满足就执行if语句内的代码块。此外,if经常和elif,else连用。
elif用来连接多个条件的判断,而else上面的所有条件都不满足时,就会执行else下的代码块。
你可以尝试写一段判断成绩的代码,当输入分数时,会根据分数确定成绩等级:
score = input('your score>>: ') score = int(score) if score >= 90: print('优秀') elif score >= 80: print('良好') elif score >= 70: print('普通') else: print('很差')
if判断还可以用来嵌套,在一个if语句的子代码块里再次使用if判断。
2、while 循环
if判断只能执行一次,如果想要多次执行一段代码,直到满足要求才停止,就需要用到while循环。
i = 0 while i < 5: print(i) i += 1
while后面是判断条件,当条件满足时(True),会执行子代码块,执行完子代码块时,会再次判断条件是否满足,如果满足,继续执行,如此循环。为了不让程序陷入死循环,通常会添加一段代码(比如 i+=1 这样的计数器)来控制循环。
你可以使用while循环来实现一个简化的登陆功能。
name_of_bk='xiaoli' pwd_of_bk='123' tag=True count = 0 while tag: inp_name=input('your name>>: ') inp_pwd=input('your password>>: ') if inp_name == name_of_bk and inp_pwd == pwd_of_bk: print('login successful') tag=False else: print('username or password error') count+= 1 if count == 3: tag = False
可以看到,代码中使用了变量count作为控制的变量,每次输入错误,count自增1,当count ==3 时,tag = False,while循环的条件就不满足了,从而终止循环。
终止循环还可以使用关键字break 和 continue,break会无条件终止其所在循环,并且放弃执行这个循环中break下方的代码,然后跳出这个循环。而 continue 会跳出本次循环,不执行本次循环中continue下方的代码,回到判断条件。
while True: num1 = int(input("give me a number>>>")) if num1 < 5: print("被break终止") break else: print("遇到了continue") continue
与其他语言不同的是,while循环后也可以加else,当while语句正常执行完,没有被break,就会执行else里的语句。
while循环也能嵌套,用while循环打印一个下图所示的金字塔:
row = 1 while row <6: rank = 0 while rank<(5-row): print(" ",end="") rank+=1 print("*"*(2*row-1)) row+=1
while循环还可以打印杨辉三角,斐波那契数列等,请自行尝试。