一、控制介绍
什么是控制?对于车来说方向盘以及刹车、离合、油门是控制,控制车的前后左右,加速减速。 那程序呢?程序也有类似的东西来控制代码的“前后左右,加速减速”。
二、代码常用控制结构
1,while循环。类似于车挂了挡踩了油门,车会一直运行。直到你到终点完成旅行(循环完毕)或者遇到突发情况中止(例如break或者异常情况)。
适用于不知道循环次数的情况,只要满足条件会一直执行下去。
例子:
def whileControl(n): i=0 s=0 while (i<n): i=i+1 s = s+i return s num1 = int(input("请输入累加最大的整数数字:")) print('%s%s'%('1到n间的数值加和:' , whileControl(num1)) )
2,for循环,功能和while循环类似,但是有细微区别。
for适用于已知循环次数的情况,可以在循环开始前初始化循环变量,并在每次循环结束后更新循环变量的值。
def forControl(n): for n in range(0,n): # 这个循环是没有返回值的,只是打印,所以返回值为None print(n) num1 = int(input("请输入最大的整数数字:")) print('%s%s'%('打印0到n间的所有数值:' , forControl(num1)))
3,if条件判断,满足条件会执行代码,不满足条件会执行其他的代码。
def ifControl(n): if(n%2==0): print("偶数") else: print("不是偶数") num1 = int(input("请输入整数数字:")) ifControl(num1)
4,if elif else 两重条件判断,例如下面根据学生成绩判断学生成绩程度。
# if elif else def judge(score): if(score>=90): print('成绩优秀') elif(score >70 and score < 90): print('成绩中等') else: print('成绩一般') num1 = int(input("请输入学生成绩:")) judge(num1)
5,break 终止当前循环,在循环体内用。
def forControl(n): for n in range(0,n): # 如果输入的数字超过50那么不会继续打印,直接中断 if(n>=50): print('超过50后的数字不打印!') break print(n) num1 = int(input("请输入最大的整数数字:")) print('%s%s'%('打印0到n间的所有数值,同时超过50后的数字不打印:' , forControl(num1)))
6,continue 循环体内,满足条件时跳过本次循环,继续执行循环,在循环体内用。
def forControl(n): for n in range(0,n): # 10-20之间的数字不打印 if(n>=10 and n<=20): print('10-20之间的数字不打印!') continue print(n) num1 = int(input("请输入最大的整数数字:")) print('%s%s'%('打印0到n间的所有数值,10-20之间的数字不打印:' , forControl(num1)))
7,for else,是for循环和if条件判断的结合,先执行循环体即条件1,循环体执行完毕后会执行else条件2中的内容。要注意的是循环体不真常中止例如被break中止,是不会执行else条件2分支的。
def forControl(n): for n in range(0,11): print(n) else: print('超过10的部分数值不打印') num1 = int(input("请输入最大的整数数字:")) print('%s%s'%('只打印0到10间的数字,超过的提示不打印:' , forControl(num1)))
8,try except,异常捕捉,异常处理操作。
def tryFunc(n): i=1 # try捕捉的函数是可能出现问题的函数,方便程序运行时我们纠错。 try: # 因为分母不可为0,所以当1/0时,下面一行代码会报错,被try捕获程序错误不会往下执行,直接进入except中. result = 1 / n # 出现异常后下面两行代码不会被执行。 print("我打印一下") return result except: print("异常了,除数不可为0") num1 = int(input("几分之一运算,请输入除数:")) print('%s%s'%('本次分子为1,输入分母,计算分数大小。本次计算结果为:' , tryFunc(num1)))