分支语句

1、判断 if() 语句

1.1、if 判断语句基本语法

判断的定义

  • 如果 条件满足 才能做某件事情,
  • 如果 ** 条件不满足** 就做另外一件事情,或者什么也不做
    判断语句 又被称为“分支语句”,正因为有了判断,才让程序有了很多的分支。

2、if 语句体验

2.1 if 判断语句基本语法

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

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

注意:代码的缩进为一个 tab 键,或者4个空格 -- 建议使用空格

  • 在Python开发中,tab 和空格不要混用
    我们可以把整个if语句看成一个完整的代码块

运算符

数字符号表
比较(关系)运算符

运算符 描述
== 检查两个操作数的值是否 相等,如果是,则条件成立,返回True
!= 检查两个操作数的值是否不相等,如果是,则条件成立返回True
> 检查左操作数的值是否大于右操作数的值,如果是,则条件成立,返回True
< 检查左操作数的值是否小于右操作数的值,如果是,则条件成立,返回True
>= 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立,返回True
<= 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立,返回True

2.2 判断语句演练 -- 判断年龄

需求

1.定义一个整数变量记录年龄
2.判断是否满18岁 (>=)
3.如果满18岁,允许进网吧嗨皮

# 1.定义年龄变量
age = 18
# 2.判断是否满18岁
# if语句以及缩进部分的代码是一个完整的代码块
if age >= 18:
   print ("可以进网吧嗨皮.....")
# 3. 思考! - 无论条件是否满足都会执行
print("这句代码什么时候执行?")
``
**注意**:
- if 语句以及缩进部分是一个 **完整的代码块**
- 最后一行代码,不管满不满18岁,都会执行的

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

思考
在 if 判断时,只能做到满足条件时要做的事情。那如果需要在不满足条件时候,做某些事情,该怎么做呢?
答案
else,格式如下:

if 要判断的条件:
    条件成立时,要做的事情
    ......
else:
    条件不成立时,要做的事情
    ......

注意

  • if 和 else 语句以及各自的缩进部分共同是一个 完整的代码块
# 输入用户年龄
age = int(input(""请输入年龄:))
# 判断是否满18岁(>=)
if age >= 18:
    # 如果满18岁,允许进网吧嗨皮
    print("你已经成年,欢迎来网吧嗨皮)
else:
    # 如果未满18岁,提示回家写作业
    print("你还没长大,应该回家写作业!")

注意:
在上述练习中,定义 age 时要注意,input() 函数输入的内容是字符串类型,而后边的年龄是整数型,不是同一类型。所以,还有进一步做类型转换,使 age 的值和年龄 18 岁是同属性,即 类型一致,否则不能进行比较。

3、逻辑运算

  • 在程序开发中,通常 在判断条件时 ,会需要同时判断多个条件
  • 只有多个条件都满足,才能够执行后续代码,这个时候需要使用到逻辑运算符
  • 逻辑运算符可以把多个条件按照逻辑进行连接,变成更复杂的条件
  • 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 条件

  • 非/不是
条件 结果
成立 不成立
不成立 成立

3.4 练习

# 练习1,:定义一个整数变量 age ,编写代码判断年龄是否正确
age = 12
# 要求人的年龄在0~120之间
# 10000
# age >= 0 or age <= 120
# age >= 0 and age <= 120
if age >= 0 and age <= 120:
    print("年龄正确")
else:
    print("年龄不正确")

注意:
拿到问题,别着急写代码,先来分析一下怎么写,理清思路然后继续下一步!

# 练习2:定义连个整数变量 python_score、c_score,编写代码判断成绩
python_score = 80
c_score = 50
# 要求只要有一门成绩 > 60 分就算合格
if python_score > 60 or c_score > 60:
    print("考试通过")
else:
    print("考试失败,继续努力")
# 练习3:定义一个bool型变量 is_employee,编写代码判断是否是本公司员工
is_employee = True
# 如果不是提示不允许进入
# 在开发中,通常希望某个条件不满足时,执行一些代码,可以使用 not 
# 另外,如果需要拼接复杂的逻辑计算条件,同样也有可能使用到 not 
if not is_employee:
    print("非本公司人员,请勿入内")

if not,只希望某个条件不成立时才执行的需要做的事情,而条件成立时,不做任何处理。

4. if 语句的进阶

4.1 elif

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

注意

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

elif 演练--女朋友的节日
需求
1.定义一个 holiday_name 字符串变量记录节日名称
2.如果是情人节应买玫瑰/看电影
3.如果是平安夜应该买苹果/吃大餐
4.如果是生日应该买蛋糕
5.其他的日子每天都是节日啊... ...

holiday_name  = "平安夜"
if holiday_name == "情人节":
    print("买玫瑰")
    print("看电影")
elif holiday_name == "平安夜":
    print("买苹果")
    print("吃大餐")
elif holiday_name == "生日":
    print("买蛋糕")
else:
    print("每天都是节日啊... ...")

4.2 if 嵌套

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

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

演练 1 ——火车站安检
需求

  1. 定义一个 bool 变量 has_ticket 表示是否有车票
  2. 定义整形变量 knife_length 表示刀的长度,单位:厘米
  3. 首先检查是否有车票,如果有,才允许进行安检
  4. 安检时,需要检查刀的长度,判断是否超过20厘米
    • 如果超过 20 厘米,提示刀的长度。不允许上车
    • 如果不超过 20 厘米,安检通过
  5. 如果没有车票,不允许进门
# 1) 定义一个 bool 变量 has_ticket 表示是否有车票。
has_ticket = True

# 2) 定义整形变量 knife_length 表示刀的长度,单位:厘米。
# knife_length = int(input(30))

knife_length = 20

# 3) 首先检查是否有车票,如果有,才允许进行安检。
if has_ticket:
    print("车票检查通过,准备开始安检!")
    
# 4) 安检时,需要检查刀的长度,判断是否超过20厘米。
    if knife_length > 20:

        # - 如果超过 20 厘米,提示刀的长度,不允许上车。
        print("您携带的刀太长,有 %d 公分长!" % knife_length)
        print("不允许上车。")
    
    # - 如果不超过 20 厘米,安检通过。
    else:
        print("安检已通过,祝您旅愉快!")
    
# 5) 如果没有车票,不允许进门。
else:
    print("大哥,请先买票!")

综合性运用 ——石头剪刀布
目标

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

1.从控制台输入要出的拳 —— 石头(1)/剪刀(2)/布(3)

  1. 电脑随机 出拳——先假定电脑只会出石头,完成整体代码功能
  2. 比较胜负
序号 规则
1 石头 胜 剪刀
2 剪刀 胜 布
3 布 胜 石头
# 导入工具包
# 注意,在导入工具包的时候,应该将导入的工具包放在文件的顶部
# 因为,这样可以方便下方的代码,在任何需要的时候,可使用工具包中的工具
import random


# 从控制台输入要出的拳 —— 石头(1)/剪刀(2)/布(3)
player = int(input("请输入您要出的拳:石头(1)/剪刀(2)/布(3) :"))

# 电脑随机 出拳——先假定电脑只会出石头,完成整体代码功能
computer = random.randint(1,3)

print("玩家选择的拳头是 %d - 电脑出的拳是 %d" % (player,computer))

# 比较胜负
# 1石头 胜 剪刀
# 2剪刀 胜 布
# 3布 胜 石头
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("不服气,我们决战到天明!")

    
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,366评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,521评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,689评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,925评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,942评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,727评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,447评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,349评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,820评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,990评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,127评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,812评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,471评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,017评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,142评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,388评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,066评论 2 355

推荐阅读更多精彩内容