案例驱动式Python学习笔记【第二篇】身体健康小助手——BMI

驱动案例

BMI身体质量指数,是目前国际上常用的衡量人体是否健康的一个标准。当我们需要比较分析一个人的体重对于不同高度的人所带来健康影响时,BMI值是一个中立而可靠的指标。
要求编写:
身体健康小助手BMI:请输入身高、体重检测BMI,如果BMI>=30输出肥胖![BMI=体重(kg)÷身高的平方(m)]

运算符

算术运算符

算术运算符包括+、-、*、/、//、%和**,这些运算符都是双目运算符,每个运算符可以与两个操作数组成一个表达式。
在这里插入图片描述
Python在对不同类型的对象进行运算时,会强制将对象的类型进行临时类型转换,这些转换遵循如下规律:

  • 布尔类型进行算术运算时,被视为数值0或1;
  • 整型与浮点型运算时,将整型转化为浮点型;
  • 其它类型与复数运算时,将其它类型转换为复数类型。

比较运算符

比较运算符有:==、!=、>、<、>=、<=。比较运算符同样是双目运算符,它与两个操作数构成一个表达式。
在这里插入图片描述

赋值运算符

赋值运算符的功能是:将一个表达式或对象赋给一个左值,其中左值必须是一个可修改的值,不能为一个常量。

>>> a = 3
>>> b = 5
>>> a = b
>>> a
5

混合赋值运算符:

在这里插入图片描述

逻辑运算符

Python中分别使用or、and、not这三个关键字作为逻辑运算“或”、“与”、“非”的运算符,其中or与and为双目运算符,not为单目运算符。

>>> 3 or 0
3
>>> 3 - 3 and 5
0
>>> not(False)
True

位运算符

Python的位运算主要包括按位左移按位右移按位与按位或按位异或按位取反这6种。
在这里插入图片描述

运算符优先级

为了避免含有多个运算符的表达式出现歧义,Python为每种运算符都设定了优先级。
在这里插入图片描述

if语句

程序开发中经常会用到条件判断,比如,用户登录时需判断用户名和密码是否全部正确,进而决定用户是否能够成功登录。

单分支(if)

if语句由if关键字、条件表达式和代码块三部分组成,它根据表达式的判断结果选择是否执行相应的代码块 。
在这里插入图片描述

h=eval(input("请输入你的身高(m):"))
w=eval(input("请输入你的体重(kg):"))
BMI=w/(h*h)
if BMI>=30:
    print("肥胖!")

双分支(if-else)

if-else语句产生两个分支,可根据条件表达式的判断结果选择执行哪一个分支。
在这里插入图片描述

h=eval(input("请输入你的身高(m):"))
w=eval(input("请输入你的体重(kg):"))
BMI=w/(h*h)
if BMI>=30:
    print("肥胖!")
else:
    print("正常!")

多分支(if-elif-else)

如果程序需要处理多种情况,那么可以使用if-elif-else语句。

在这里插入图片描述

h=eval(input("请输入你的身高(m):"))
w=eval(input("请输入你的体重(kg):"))
BMI=w/(h*h)
if BMI<18.5:
    print("偏瘦!")
elif BMI<25:
    print("理想体重!")
elif BMI<30:
    print("超重!")
else:
    print("肥胖!")

分支嵌套

age=eval(input("请输入您的年龄:"))
h=eval(input("请输入您的身高(m):"))
w=eval(input("请输入您的体重(kg):"))
BMI=w/(h*h)
if age>=18:
    if BMI<18.5:
        print("偏瘦")
    elif 18.5<=BMI<25:
        print("理想体重")
    elif 25<=BMI<30:
        print("超重")
    else:
        print("肥胖")
else:
    print("该标准不适用")

循环结构

对大多数人来说,反复地做同样的事情很繁琐,但是计算机从来不会觉得烦,所以它非常擅长完成重复的任务。循环就是重复执行的关键。

while循环

while循环是一个条件循环语句,当条件满足时重复执行代码块,直到条件不满足为止。
在这里插入图片描述
已知循环次数:

i=1
while i<=4:
    w=eval(input("请输入您的体重(kg):"))
    h=eval(input("请输入您的身高(m):"))
    BMI=w/(h*h)
    if BMI<18.5:
        print("偏瘦")
    elif BMI<25:
        print("理想体重")
    elif BMI<30:
        print("超重")
    else:
        print("肥胖")
    i=i+1

未知循环次数:

i='Y'
while i=='Y':
    w=eval(input("请输入您的体重(kg):"))
    h=eval(input("请输入您的身高(m):"))
    BMI=w/(h*h)
    if BMI<18.5:
        print("偏瘦!")
    elif BMI<25:
        print("理想体重!")
    elif BMI<30:
        print("超重!")
    else:
        print("肥胖!")
    i=input("是否继续?如果继续就输入Y:")

for循环

for循环可以对可迭代对象进行遍历。
for循环常与range()函数搭配使用,以控制循环中代码段的执行次数。

for i in range(4):
      w=eval(input("请输入您的体重(kg):"))
      h=eval(input("请输入您的身高(m):"))
      BMI=w/(h*h)
      if BMI<18.5:
          print("偏瘦!")
      elif BMI<25:
          print("理想体重!") 
      elif BMI<30:
          print("超重!")
      else:
          print("肥胖!")

嵌套循环

  • while循环中可以嵌套while循环。

       while 条件表达式1:
             代码块1
            ......
       while 条件表达式2:
             代码块2
            ......
    
  • for循环也可以嵌套使用,其格式如下所示

        for 临时变量 in 可迭代对象:
               代码块1
        for 临时变量 in 可迭代对象:
               代码块2
    
//打印输出九九乘法表
for i in range(1, 10):
    for j in range(1, i + 1):   //for循环嵌套
        print(str(j) + str("*") + str(i) + "=" + str(i * j), end="\t")
    print() # 换行输出

跳出循环

循环语句一般会一直执行完所有的情况后自然结束,但是有些情况下需要停止当前正在执行的循环,也就是跳出循环。

break语句

break语句用于跳出离它最近一级的循环,通常与if语句结合使用,放在if语句代码块中
在这里插入图片描述
break语句也可以用于while循环,其格式如下所示:

在这里插入图片描述

continue语句

continue语句用于跳出当前循环,继续执行下一次循环。(当执行到continue语句时,程序会忽略当前循环中剩余的代码,重新开始执行下一次循环。

案例代码

for i in range(14):
    print("当前为第{}个部门".format(i))
    for j in range(15):
        print("当前为第{}个部门第{}位员工".format(i,j))
        w=eval(input("请输入您的体重(kg):"))
        h=eval(input("请输入您的身高(m):"))
        BMI=w/(h*h)
        if BMI<18.5:
            print("偏瘦")
        elif BMI<25:
            print("理想体重")
        elif BMI<30:
            print("超重")
        else:
            print("肥胖")

在这里插入图片描述

总结

本节课主要介绍了运算符单分支、双分支、多分支、分支嵌套循环结构(while、for)跳出循环等。

在这里插入图片描述

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值