七、条件控制语句if#

先看一段代码:

1
2
3
4
5
print('hello1')
print('hello2')
print('hello3')
print('hello4')
print('hello5')

这段程序无论怎么执行,结果都是一样的

我们希望程序根据不同的场景能够有不同的执行结果,就需要用到条件控制语句if

程序满足特定的条件才能执行特定的代码

条件控制语句使用if关键字

if语句的结构如下:

1. if语句#

if语句格式

1
2
3
if 条件:
    条件成立时,要做的事情
    ……

需求:

1
2
3
4
5
需求

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

代码如下:

1
2
3
4
age = int(input('请输入你的年纪:'))
# if判断
if age>=18:
    print('允许进网吧嗨皮')

注意:python中没有{},通过缩进代表作用域

2. if...else...语句#

有些情况我们希望满足条件执行相应的代码,不满足条件执行其他的代码,这就需要用到if else语句

if ... else...语句格式

1
2
3
4
5
6
if 要判断的条件:
    条件成立时,要做的事情
    ……
else:
    条件不成立时,要做的事情
    ……

需求:

1
2
3
4
1. 输入用户年龄
2. 判断是否满 18 岁 (>=)
3. 如果满 18 岁,允许进网吧嗨皮
4. 如果未满 18 岁,提示回家写作业

代码如下:

1
2
3
4
5
6
age = int(input('请输入你的年纪:'))
# if判断
if age>=18:
    print('允许进网吧嗨皮')
else:
    print('回家写作业')

3. if ...elif... else语句#

一对 if 和 else 可以让代码执行出 两种不同的结果 但开发中,可能希望 并列的执行出多种结果,这时就可以使用 elif

if ...elif... else格式

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
if 条件1:
    条件1满足执行的代码
    ……
elif 条件2:
    条件2满足时,执行的代码
    ……
elif 条件3:
    条件3满足时,执行的代码
    ……
else:
    以上条件都不满足时,执行的代码
    ……

需求:

1
2
3
4
5
6
7
需求

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

代码:

1
2
3
4
5
6
7
8
9
holiday_name = input('请输入节日名称')
if holiday_name=='情人节':
    print('买玫瑰/看电影')
elif holiday_name=='平安夜':
    print('买苹果/吃大餐')
elif holiday_name=='生日':
    print('买蛋糕')
else:
    print('每天都是节日,每天一个红包')

4. 火车站安检-if嵌套#

在开发中,使用 if 进行条件判断,如果希望 在条件成立的执行语句中 再 增加条件判断,就可以使用 if 的嵌套 if 的嵌套 的应用场景就是:在之前条件满足的前提下,再增加额外的判断 if 的嵌套 的语法格式,除了缩进之外 和之前的没有区别

1
2
3
4
5
6
7
8
9
需求

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

代码如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 1. 定义布尔型变量 has_ticket 表示是否有车票
has_ticket = input("请输入是否有车票:")
# 0 没有 1 有
has_ticket = int(has_ticket)
knife_length = input("请输入刀的长度:")
knife_length = int(knife_length)

if bool(has_ticket):
    if knife_length>20:
        print("不能进站")
    else:
        print("可以进站")
else:
    print("不能进站")