【python基础(四)】if语句详解:条件测试与分支结构

  1. 如何编写结果要么为True要么为False的条件测试;
  2. 如何编写简单的if语句、if-else语句和if-elif-else结构,并且在程序中使用这些结构来测试特定的条件,以确定这些条件是否满足;
  3. 如何在利用高效的for循环的同时,以不同于其他元素的方式对特定的列表元素进行处理。

一. 一个简单示例

if __name__ == '__main__':
    cars = ['audi', 'bmw', 'subaru', 'toyota']
    for car in cars:
        if car == 'bmw':
            print(car.upper())
        else:
            print(car.title())

 

二. 条件测试

每条if语句的核心都是一个值为True或False的表达式,这种表达式称为条件测试。
如果条件测试的值为True,Python就执行紧跟在if语句后面的代码;如果为False,Python就忽略这些代码。

1. 检查多个条件

1.1. 使用and关联多个条件

要检查是否两个条件都为True,可使用关键字and将两个条件测试合而为一。
例如,要检查是否两个人都不小于21岁

>>> age_0 = 22
  >>> age_1 = 18>>> age_0 >= 21 and age_1 >= 21
  False

为改善可读性,可将每个测试分别放在一对圆括号内,但并非必须这样做。

(age_0 >= 21) and (age_1 >= 21)

 

1.2. 使用or检查多个条件

关键字or也能够让你检查多个条件,但只要至少一个条件满足,就能通过整个测试。仅当两个测试都没有通过时,使用or的表达式才为False。

至少一个人的年龄不小于21岁:

>>> age_0 = 22
  >>> age_1 = 18>>> age_0 >= 21 or age_1 >= 21
  True

 

1.3. in的判断

要判断特定的值是否已包含在列表中,可使用关键字in

创建一个列表,其中包含用户点的比萨配料,然后检查特定的配料是否包含在该列表中。

>>> requested_toppings = ['mushrooms', 'onions', 'pineapple']
>>> 'onions' in requested_toppings
True

使用关键字not in,来判断值不包含在列表中。

 

2. 布尔表达式

与条件表达式一样,布尔表达式的结果要么为True,要么为False,首字母不能小写。

game_active = True
can_edit = False

 

三. if语句***

1. 单分支结构:if语句

最简单的if语句只有一个测试和一个操作:

pm = eval(input('请输入PM2.5值:'))
if 0 < pm < 35:
    print('空气质量优,尽情享受户外运动吧!')
if 35 <= pm < 75:
    print('空气质量良好,适合户外运动.')
if pm >= 75:
    print('空气污染,减少户外运动!')

 

2. 二分支结构:if-else语句

pm = eval(input('请输入PM2.5值:'))
if pm < 75:
    print('空气无污染,适合户外运动.')
else:
    print('空气有污染,减少户外运动!')

 

3. 多分支结构:if-elif-else

Python只执行if-elif-else结构中的一个代码块。它依次检查每个条件测试,直到遇到通过了的条件测试。测试通过后,Python将执行紧跟在它后面的代码,并跳过余下的测试

 
如下简单例子:

pm = eval(input('请输入PM2.5值:'))
if 0 < pm < 35:
    print('空气质量优,尽情享受户外运动吧!')
elif pm < 75:
    print('空气质量良好,适合户外运动.')
else:
    print('空气污染,减少户外运动!')

 

5. 省略else代码块

Python并不要求if-elif结构后面必须有else代码块。使用一条elif语句来处理特定的情形更清晰:

  age = 12

  if age < 4:
      price = 0
  elif age < 18:
      price = 25
  elif age < 65:
      price = 40elif age >= 65:
      price = 20

  print(f"Your admission cost is ${price}.")

else是:只要不满足任何if或elif中的条件测试,其中的代码就会执行。这可能引入无效甚至恶意的数据。如果知道最终要测试的条件,应考虑使用一个elif代码块来代替else代码块

 

四. 使用if语句处理列表

1. 检查特殊元素

如果要添加青椒,则说明已经用完了

  requested_toppings = ['mushrooms', 'green peppers', 'extra cheese']

  for requested_topping in requested_toppings:if requested_topping == 'green peppers':
          print("Sorry, we are out of green peppers right now.")else:
          print(f"Adding {requested_topping}.")

  print("\nFinished making your pizza!")

 

2. 确定列表不是空的

如果顾客要在比萨中添加炸薯条,该怎么办呢?可使用列表和if语句来确定能否满足顾客的要求。

❶ available_toppings = ['mushrooms', 'olives', 'green peppers',
                        'pepperoni', 'pineapple', 'extra cheese']

❷ requested_toppings = ['mushrooms', 'french fries', 'extra cheese']for requested_topping in requested_toppings:if requested_topping in available_toppings:
          print(f"Adding {requested_topping}.")else:
          print(f"Sorry, we don't have {requested_topping}.")

  print("\nFinished making your pizza!")

 
参考:《python编程:从入门到实践(第二版)》

  • 23
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

roman_日积跬步-终至千里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值