第四章 流程控制

4.1 条件控制

If条件判断语句是通过一条或多条件语句的执行结果(Ture或False)来告诉计算机是否执行代码指令。在编写代码时,经常需要用到根据某些条件进行,并根据判断结果是否成立来执行后续的代码处理,这里的是否成立就是条件表达式的布尔值:Ture,False。

下面看一段代码:

qus = input('是否想知道66的66次方有多大吗?Y/N: ')
if qus in ['y', 'Y']:
print('答案是:',66**66)
print('吓到了吧。')
elif qus in ['n','N']:
print('不想知道就算了。')
else:
print("你输入的不是'Y/N'")

运行后输出结果如下(此段代码分两次输出,第二段代码按提示输入信息后按enter键):

是否想知道66的66次方有多大吗?Y/N:

答案是:

1229984803535237425357460579824952453848609953896821302286319065669207712270213276022808840210306942692366529569453244416

吓到了吧。

解释下上面的代码,其中第一行代码是让用户输入一个字符Y或者N并赋予变量qus,第二行代码就是我们刚学的if条件判断语句的用法,判断变量的值有没有在列表 ['y', 'Y']中,判断为ture,执行下一条语句print命令;上述判断为false则执行elif语句,判断是否在列表 ['n','N']中,否则执行else语句。下面自己将上述代码运行下看看elif和else输出的内容。

1. 另外注意每个条件后都要用冒号(:),意为接下来要执行的语句。

2. If语句可以单独出现,例如:if false: print(‘hi’)。

3. If支持语句嵌套,即在一个if语句块中存在一个或多个if语句。

4. If语句中各种空类型和0都会被当做false处理,例如:” ”,[],(),{}都会被当做false处理。

学到这里我们就可以自己写一个实用的程序了,身体质量指数(BMI)计算器。可以自己先试着写下代码再对比教程代码,BMI计算公式为BMI=体重(KG)/身高(M)**2,下图是BMI中国标准:

代码如下:

wt=eval(input("请输入你的体重(KG):"))
ht=eval(input("请输入你的身高(CM):"))/100
bmi=(wt/ht**2)
print (f"你的体重是{wt}公斤,身高是{ht}米")
print('身体质量指数BMI为:{:.2f}'.format(bmi))
if bmi<=18.4:
short=ht**2*18.5-wt
print(f"你太瘦了,再增重{short:.2f}公斤,体重就正常了")
elif (bmi>=18.5) and (bmi<24):
short=wt-ht**2*24
print(f"太棒了,你的身体指数正常,请继续保持")
elif (bmi>=24) and (bmi<28):
short=wt-ht**2*24
print(f"你有点胖了,再减肥{short:.2f}公斤,体重就正常了")
elif (bmi>=28) and (bmi<32):
short=wt-ht**2*24
print(f"你已达到肥胖标准了,要减肥{short:.2f}公斤,体重才能正常")
elif bmi>=32:
short=wt-ht**2*24
print(f"你太肥了,需要减肥{short:.2f}公斤,体重才能正常了")
else:
print("输入错误,请重新输入")
input("任意键退出")

以上全部是用学过的知识编辑的,首先定义三个变量分别为身高、体重和bmi计算公式,方便后面调用。第四段代码是利用学过的f格式化方法,第五段用format格式化方法留小数点后两位,后面便是if语句的实际用法了,最后一段代码,用input()方法防止运行完代码程序自动退出,需要注意的是short变量是计算需要增加和减少身体重量的值,可以研究下。

4.2 循环语句

学习while、for循环之前先了解下递归和迭代的概念。(只学习for、while语句此段可跳过)

1. 递归:recursive,循环的意思,递归就是在过程中调用调用自身,其能力是用有限的语句来定义无限的对象的无限集合。

我们要讲的递归要有递归前进段(没达到条件)、边界条件(确定条件)、递归返回段(满足条件);也就是一个事件的过程有一个边界条件,没有达到边界条件时,递归前进,当满足边界条