学习札记-Python系列-3-判断

判断语句介绍

了解条件语句

假设一个场景:

  • 同学们这个年龄去过网吧吗?
  • 去网吧进门想要上网必须做的一件事是做什么?(考虑重点)
  • 为什么要把身份证给工作人员?
  • 是不是就是为了判断是否成年?
  • 是不是如果成年可以上网?如果不成年则不允许上网?

其实这里所谓的判断就是条件语句,即条件成立执行某些代码,条件不成立则不执行这些代码

生活中的判断场景

火车站安检
上网吧
密码判断

小总结:

  • 如果某些条件满足,才能做某件事情;条件不满足时,则不能做,这就是所谓的判断。
  • 不仅生活中有,在软件开发中"判断"功能也经常会用到

if判断语句

if判断语句基本格式

if语句是用来进行判断的,其使用格式如下:
if 要判断的条件:
条件成立时,要做的事情

#demo1:(demo的中文意思:演示、案例)
    age = 30

    print("------if判断开始------")

    if age >= 18:
        print("我已经成年了")

    print("------if判断结束------")

运行结果:
------if判断开始------
我已经成年了
------if判断结束------

#demo2:
    age = 16

    print("------if判断开始------")

    if age >= 18:
        print("我已经成年了")

    print("------if判断结束------")

运行结果:
------if判断开始------
------if判断结束------

小总结:

以上2个demo仅仅是age变量的值不一样,导致结果却不同;能够看得出if判断语句的作用:就是当满足一定条件时才会执行代码块语句,否则就不执行代码块语句。

注意:代码的缩进为一个tab键,或者4个空格

练一练

要求:从键盘获取自己的年龄,判断是否大于或者等于18岁,如果满足就输出“哥,已成年,网吧可以去了”

使用input从键盘中获取数据,并且存入到一个变量中
使用if语句,来判断 age>=18是否成立

想一想

判断age大于或者等于18岁使用的是 >=,如果是其他判断,还有哪些呢?

if-else

想一想:在使用if的时候,它只能做到满足条件时要做的事情。那万一需要在不满足条件的时候,做某些事,该怎么办呢?

答:使用 if-else

if-else的使用格式

if 条件:
    满足条件时要做的事情1
    满足条件时要做的事情2
    满足条件时要做的事情3
    ...(省略)...
else:
    不满足条件时要做的事情1
    不满足条件时要做的事情2
    不满足条件时要做的事情3
    ...(省略)...

demo

    chePiao = 1 # 用1代表有车票,0代表没有车票
    if chePiao == 1:
        print("有车票,可以上火车")
        print("终于可以见到Ta了,美滋滋~~~")
    else:
        print("没有车票,不能上车")
        print("亲爱的,那就下次见了")

结果1:有车票的情况
有车票,可以上火车
终于可以见到Ta了,美滋滋~~~
结果2:没有车票的情况
没有车票,不能上车
亲爱的,那就下次见了

练一练

要求:从键盘输入身高,如果身高没有超过150cm,则进动物园不用买票,否则需要买票。

if...elif...else...语句

想一想:

if能完成当xxx时做事情

if-else能完成当xxx时做事情1,否则做事情2

如果有这样一种情况:当xxx1满足时做事情1;当xxx1不满足、xxx2满足时做事情2;当xxx2不满足、xxx3满足时做事情3,那该怎么实现呢?

答:

elif

elif的功能

elif的使用格式如下:

if xxx1:
    事情1
elif xxx2:
    事情2
elif xxx3:
    事情3

说明:

当xxx1满足时,执行事情1,然后整个if结束
当xxx1不满足时,那么判断xxx2,如果xxx2满足,则执行事情2,然后整个if结束
当xxx1不满足时,xxx2也不满足,如果xxx3满足,则执行事情3,然后整个if结束

Demo1:


    score = 77

    if score>=90 and score<=100:
        print('本次考试,等级为A')
    elif score>=80 and score<90:
        print('本次考试,等级为B')
    elif score>=70 and score<80:
        print('本次考试,等级为C')
    elif score>=60 and score<70:
        print('本次考试,等级为D')
    elif score>=0 and score<60:
        print('本次考试,等级为E')

思考:中国合法工作年龄为18-60岁,即如果年龄小于18的情况为童工,不合法;如果年龄在18-60岁之间为合法工龄;大于60岁为法定退休年龄

Demo2:

age = int(input('请输入您的年龄:'))
if age < 18:
    print(f'您的年龄是{age},童工一枚')
elif (age >= 18) and (age <= 60):
    print(f'您的年龄是{age},合法工龄')
elif age > 60:
    print(f'您的年龄是{age},可以退休')

拓展:age >= 18 and age <= 60可以化简为18 <= age <= 60。

注意点

可以和else一起使用

   if 性别为男性:
       输出男性的体重
       ...
   elif 性别为女性:
       输出女性的体重
       ...
   else:
       第三种性别的体重
       ...

说明:

当 “性别为男性” 满足时,执行 “输出男性的体重”的相关代码
当 “性别为男性” 不满足时,如果 “性别为女性”满足,则执行 “输出女性的体重”的相关代码
当 “性别为男性” 不满足,“性别为女性”也不满足,那么久默认执行else后面的代码,即 “第三种性别的体重”相关代码
elif必须和if一起使用,否则出错

else 一般用在最后,即所有条件都不满足时使用

if 实现三目运算操作

语法如下:

#条件成立执行的表达式 if 条件 else 条件不成立执行的表达式
a if a > b else b
#如果 a > b的条件成立,三目运算的结果是a,否则就是b

练习题:

1.求a和b两个数字中的较大值.
a = 10
b = 20
2.使用三目运算符求较大值
max = a if a > b else b
print("较大值为:%d" % max)

if嵌套

通过学习if的基本用法,已经知道了

  • 当需要满足条件去做事情的这种情况需要使用if
  • 当满足条件时做事情A,不满足条件做事情B的这种情况使用if-else

想一想:

坐火车或者地铁的实际情况是:先进行安检如果安检通过才会判断是否有车票,或者是先检查是否有车票之后才会进行安检,即实际的情况某个判断是再另外一个判断成立的基础上进行的,这样的情况该怎样解决呢?

答:

if嵌套

if嵌套的格式

    if 条件1:

        满足条件1 做的事情1
        满足条件1 做的事情2

        if 条件2:
            满足条件2 做的事情1
            满足条件2 做的事情2

  • 说明
    • 外层的if判断,也可以是if-else
    • 内层的if判断,也可以是if-else
    • 根据实际开发的情况,进行选择

if嵌套的应用

demo:

chePiao = 1     # 用1代表有车票,0代表没有车票
daoLenght = 9     # 刀子的长度,单位为cm

if chePiao == 1:
    print("有车票,可以进站")
    if daoLenght < 10:
        print("通过安检")
        print("终于可以见到Ta了,美滋滋~~~")
    else:
        print("没有通过安检")
        print("刀子的长度超过规定,等待警察处理...")
else:
    print("没有车票,不能进站")
    print("亲爱的,那就下次见了")

结果1:chePiao = 1;daoLenght = 9

    有车票,可以进站
    通过安检
    终于可以见到Ta了,美滋滋~~~

结果2:chePiao = 1;daoLenght = 20

    有车票,可以进站
    没有通过安检
    刀子的长度超过规定,等待警察处理...

结果3:chePiao = 0;daoLenght = 9

    没有车票,不能进站
    亲爱的,那就下次见了

结果4:chePiao = 0;daoLenght = 20

    没有车票,不能进站
    亲爱的,那就下次见了

  • 想一想:为什么结果3和结果4相同???

if嵌套执行流程

image.png

练一练

情节描述:上公交车,并且可以有座位坐下

要求:输入公交卡当前的余额,只要超过2元,就可以上公交车;如果车上有空座位,就可以坐下。

应用:猜拳游戏

⽬标

  1. 强化 多个条件 的 逻辑运算
  2. 体会 import 导⼊模块(“⼯具包”)的使⽤

需求

  1. 从控制台输⼊要出的拳 —— ⽯头(1)/剪⼑(2)/布(3)

  2. 电脑 随机 出拳 —— 先假定电脑只会出⽯头,完成整体代码功能

  3. ⽐较胜负

运行效果:

01-第4天-12.gif

参考代码:


import random

player = input('请输入:剪刀(0)  石头(1)  布(2):')

player = int(player)

# 产生随机整数:0、1、2 中的某一个
computer = random.randint(0,2)

# 用来进行测试
#print('player=%d,computer=%d',(player,computer))

if ((player == 0) and (computer == 2)) or ((player ==1) and (computer == 0)) or ((player == 2) and (computer == 1)):
    print('获胜,哈哈,你太厉害了')
elif player == computer:
    print('平局,要不再来一局')
else:
    print('输了,不要走,洗洗手接着来,决战到天亮')

随机数的处理

  • 在 Python 中,要使⽤随机数,⾸先需要导⼊ 随机数 的 模块 —— “⼯具包”

    import random

  • 导⼊模块后,可以直接在 模块名称 后⾯敲⼀个 . 然后按 Tab 键,会提示该模块中包含的所有函数

  • random.randint(a, b) ,返回 [a, b] 之间的整数,包含 a 和 b

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容