美文网首页Python趣味基础系列
Python判断(if)语句

Python判断(if)语句

作者: Devops海洋的渔夫 | 来源:发表于2018-11-28 00:28 被阅读5次

    仅供学习参考

    目标

    • 开发中的应用场景
    • if 语句体验
    • if 语句进阶
    • 综合应用

    01. 开发中的应用场景

    生活中的判断几乎是无所不在的,我们每天都在做各种各样的选择,如果这样?如果那样?……



    程序中的判断(李白的日常)

    if 今天发工资:
    
        先还信用卡的钱
    
        if 有剩余:
    
            又可以happy了,O(∩_∩)O哈哈~
    
        else:
    
            噢,no。。。还的等30天
    else:
    
        盼着发工资
    

    判断的定义

    • 如果 条件满足,才能做某件事情,
    • 如果 条件不满足,就做另外一件事情,或者什么也不做

    正是因为有了判断,才使得程序世界丰富多彩,充满变化!

    判断语句 又被称为 “分支语句”,正是因为有了判断,才让程序有了很多的分支

    02. if 语句体验

    2.1 if 判断语句基本语法

    Python 中,if 语句 就是用来进行判断的,格式如下:

    if 要判断的条件:
        条件成立时,要做的事情
        ……
    

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

    • 在 Python 开发中,Tab 和空格不要混用!

    我们可以把整个 if 语句看成一个完整的代码块

    2.2 判断语句演练 —— 判断买槟榔是否中奖

    需求

    1. 定义一个布尔类型记录是否中奖
    2. 判断是否中奖 (==
    3. 如果中奖,加一元可以再购买一包
    4. 如果不中奖,那就灰溜溜走人吧
    
    In [7]: zhongjiang = True
    
    In [8]: if zhongjiang == True:
       ...:     print("胖子老板:再加1元就可以再买一包哦!")
       ...: 
    胖子老板:再加1元就可以再买一包哦!
    
    

    注意

    • if 语句以及缩进部分是一个 完整的代码块

    2.3 else 处理条件不满足的情况

    思考

    在使用 if 判断时,只能做到满足条件时要做的事情。那如果需要在 不满足条件的时候,做某些事情,该如何做呢?

    答案

    else,格式如下:

    if 要判断的条件:
        条件成立时,要做的事情
        ……
    else:
        条件不成立时,要做的事情
        ……
    
    In [10]: zhongjiang = False
    
    In [11]: if zhongjiang == True:
        ...:     print("胖子老板:再加1元就可以再买一包哦!")
        ...: else:
        ...:     print("胖子老板:没中奖,好可惜哦")
        ...: 
    胖子老板:没中奖,好可惜哦
    

    注意

    • ifelse 语句以及各自的缩进部分共同是一个 完整的代码块

    2.4 判断语句演练 —— 判断买槟榔是否中奖改进

    需求

    1. 输入一个数字记录是否中奖(1 :中奖 ; 0 : 不中奖)
    2. 判断是否中奖 (==
    3. 如果中奖,加一元可以再购买一包
    4. 如果不中奖,那就灰溜溜走人吧
    In [15]: zhongjiang = bool(input("是否中奖?"))
    是否中奖?1
    
    In [16]: print(zhongjiang)
    True
    
    In [17]: if zhongjiang == True:
        ...:     print("胖子老板:再加1元就可以再买一包哦!")
        ...: else:
        ...:     print("胖子老板:没中奖,好可惜哦")
        ...: 
    胖子老板:再加1元就可以再买一包哦!
    
    In [18]: zhongjiang = bool(input("是否中奖?"))
    是否中奖?0
    
    In [19]: print(zhongjiang)
    False
    
    In [20]: if zhongjiang == True:
        ...:     print("胖子老板:再加1元就可以再买一包哦!")
        ...: else:
        ...:     print("胖子老板:没中奖,好可惜哦")
        ...: 
    胖子老板:没中奖,好可惜哦
    
    In [21]: 
    

    03. 逻辑运算

    • 在程序开发中,通常 在判断条件时,会需要同时判断多个条件
    • 只有多个条件都满足,才能够执行后续代码,这个时候需要使用到 逻辑运算符
    • 逻辑运算符 可以把 多个条件 按照 逻辑 进行 连接,变成 更复杂的条件
    • Python 中的 逻辑运算符 包括:与 and或 or非 not 三种

    3.1 and

    条件1 and 条件2
    
    • 并且
    • 两个条件同时满足,返回 True
    • 只要有一个不满足,就返回 False
    条件 1 条件 2 结果
    成立 成立 成立
    成立 不成立 不成立
    不成立 成立 不成立
    不成立 不成立 不成立

    3.2 or

    条件1 or 条件2
    
    • 或者
    • 两个条件只要有一个满足,返回 True
    • 两个条件都不满足,返回 False
    条件 1 条件 2 结果
    成立 成立 成立
    成立 不成立 成立
    不成立 成立 成立
    不成立 不成立 不成立

    3.3 not

    not 条件
    
    • 不是
    条件 结果
    成立 不成立
    不成立 成立

    逻辑运算演练

    1. 练习1: 定义一个整数变量 num,编写代码判断李白一天吃多少颗槟榔是否正确
      • 大概一天吃在 5-12 颗槟榔 之间
    In [21]: num = 15
    
    In [24]: if num >= 5 and num <=12:
        ...:     print("你猜对啦,李白就是吃那么多!")
        ...: else:
        ...:     print("你猜错啦")
    你猜错啦
    
    In [25]: 
    
    
    1. 练习2: 定义两个整数变量 Mint_numFatBrother_num(分别定义吃薄荷味槟榔、胖哥槟榔的个数),编写代码判断
      • 要求只要有一种吃 > 15 个就算超标了
    In [25]: Mint_num = 17
    
    In [26]: FatBrother_num = 10
    
    In [29]: if Mint_num > 15 or FatBrother_num > 15 :
        ...:     print("恭喜你,今天吃槟榔吃超标了。")
        ...: else:
        ...:     print("你今天没有吃超标哦。")
        ...: 
    恭喜你,今天吃槟榔吃超标了。
    
    In [30]: 
    
    
    1. 练习3: 定义一个布尔型变量 is_zhongjiang,编写代码判断是否有中奖
      • 如果是,则提示可以1元再换一包槟榔
    In [30]: is_zhongjiang = True
    
    In [31]: if not is_zhongjiang :
        ...:     print("胖子老板:可惜了,你没有中奖")
        ...: else:
        ...:     print("胖子老板:恭喜你呀,你又可以1元换一包槟榔啦")
    胖子老板:恭喜你呀,你又可以1元换一包槟榔啦
    
    

    04. if 语句进阶

    4.1 elif

    • 在开发中,使用 if 可以 判断条件
    • 使用 else 可以处理 条件不成立 的情况
    • 但是,如果希望 再增加一些条件条件不同,需要执行的代码也不同 时,就可以使用 elif
    • 语法格式如下:
    if 条件1:
        条件1满足执行的代码
        ……
    elif 条件2:
        条件2满足时,执行的代码
        ……
    elif 条件3:
        条件3满足时,执行的代码
        ……
    else:
        以上条件都不满足时,执行的代码
        ……
    
    • 对比逻辑运算符的代码
    if 条件1 and 条件2:
        条件1满足 并且 条件2满足 执行的代码
        ……
    

    注意

    1. elifelse 都必须和 if 联合使用,而不能单独使用
    2. 可以将 ifelifelse 以及各自缩进的代码,看成一个 完整的代码块

    elif 演练 —— 肥仔的快乐食品

    需求

    1. 定义 FatBoy_HappyFood 字符串变量记录肥仔的快乐食品
    2. 如果是 可乐 应该 肥仔快乐水
    3. 如果是 薯条 应该 肥仔金琨棒
    4. 如果是 牛肉火锅 应该 肥仔健身餐
    5. 其他的食物都是增肥餐啊……
    In [32]: FatBoy_HappyFood = "可乐"
    
    In [33]: if FatBoy_HappyFood == "可乐":
        ...:     print("肥仔快乐水")
        ...: elif FatBoy_HappyFood == "薯条":
        ...:     print("肥仔金琨棒")
        ...: elif FatBoy_HappyFood == "牛肉火锅":
        ...:     print("肥仔健身餐")
        ...: else:
        ...:     print("其他都是增肥餐啊")
        ...: 
    肥仔快乐水
    
    In [34]: 
    

    4.2 if 的嵌套

    elif 的应用场景是:同时 判断 多个条件,所有的条件是 平级

    • 在开发中,使用 if 进行条件判断,如果希望 在条件成立的执行语句中增加条件判断,就可以使用 if 的嵌套
    • if 的嵌套 的应用场景就是:在之前条件满足的前提下,再增加额外的判断
    • if 的嵌套 的语法格式,除了缩进之外 和之前的没有区别
    • 语法格式如下:
    if 条件 1:
        条件 1 满足执行的代码
        ……
        
        if 条件 1 基础上的条件 2:
            条件 2 满足时,执行的代码
            ……    
            
        # 条件 2 不满足的处理
        else:
            条件 2 不满足时,执行的代码
            
    # 条件 1 不满足的处理
    else:
        条件1 不满足时,执行的代码
        ……
    

    if 的嵌套 演练 —— 胖子老板店铺购买槟榔超级加强版

    需求

    1. 定义布尔型变量 has_arrived 表示是否到达胖子老板的店铺
    2. 定义浮点变量 has_cash 表示身上有多少钱,单位:元
    3. 首先检查是否到达胖子老板的店铺,如果到达,才检查是否身上有钱
    4. 检查钱包时,判断是否超过 10元
      • 如果超过 10元,则可以购买一包槟榔啦
      • 如果不超过 10元,你就不能买啦
    5. 如果没有到达胖子老板店铺,则人都没到,买个啥
    In [34]: has_arrived = True
    
    In [35]: has_cash = 11.0
    
    In [36]: if has_arrived:
        ...:     print("到达胖子老板的店铺来,看看钱包有没钱可以买槟榔...")
        ...:     if has_cash >= 10.0:
        ...:         print("胖子老板:恭喜你可以买一包槟榔")
        ...:     else:
        ...:         print("胖子老板:你暂时不能买啦,顶多给你赊账啦。")
        ...: else:
        ...:     print("胖子老板:肥仔,你都没到,难道要我送外卖槟榔给你?")
        ...: 
    到达胖子老板的店铺来,看看钱包有没钱可以买槟榔...
    胖子老板:恭喜你可以买一包槟榔
    
    In [37]: 
    
    

    05. 综合应用 —— 石头剪刀布

    目标

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

    需求

    1. 从控制台输入要出的拳 —— 石头(1)/剪刀(2)/布(3)
    2. 电脑 随机 出拳 —— 先假定电脑只会出石头,完成整体代码功能
    3. 比较胜负
    序号 规则
    1 石头 胜 剪刀
    2 剪刀 胜 布
    3 布 胜 石头

    5.1 基础代码实现

    假定电脑就只会出石头,完成整体代码功能

    # 从控制台输入要出的拳 —— 石头(1)/剪刀(2)/布(3)
    player = int(input("请出拳 石头(1)/剪刀(2)/布(3):"))
    
    # 电脑 随机 出拳 - 假定电脑永远出石头
    computer = 1
    
    # 比较胜负
    # 如果条件判断的内容太长,可以在最外侧的条件增加一对大括号
    # 再在每一个条件之间,使用回车,PyCharm 可以自动增加 8 个空格
    if ((player == 1 and computer == 2) or
            (player == 2 and computer == 3) or
            (player == 3 and computer == 1)):
    
        print("噢耶!!!电脑弱爆了!!!")
    elif player == computer:
        print("心有灵犀,再来一盘!")
    else:
        print("不行,我要和你决战到天亮!")
    

    5.2 随机数的处理

    • Python 中,要使用随机数,首先需要导入 随机数模块 —— “工具包”
    import random
    
    • 导入模块后,可以直接在 模块名称 后面敲一个 . 然后按 Tab 键,会提示该模块中包含的所有函数
    • random.randint(a, b) ,返回 [a, b] 之间的整数,包含 ab
    • 例如:
    random.randint(12, 20)  # 生成的随机数n: 12 <= n <= 20   
    random.randint(20, 20)  # 结果永远是 20   
    random.randint(20, 10)  # 该语句是错误的,下限必须小于上限
    

    关注微信公众号,回复【资料】、Python、PHP、JAVA、web,则可获得Python、PHP、JAVA、前端等视频资料。

    相关文章

      网友评论

        本文标题:Python判断(if)语句

        本文链接:https://www.haomeiwen.com/subject/ntohqqtx.html