前言

写代码的时候,我们经常需要检查一系列条件,根据条件的判断结果来决定分支走向。if条件判断在所有的编程语言当中都存在,少数有的或许不叫if,但是分支判断的语法是一定存在的。在Python中也是使用if来控制程序流程,下面就让我们一起开始学习新的内容吧!


一、简单的if条件示例

# 使用list函数创建汽车列表,从元组转换
cars = list(('BMW', 'Audi', 'Toyota', 'Honda'))

for car in cars:
    if car == 'BMW':
        print('I like BMW!')
    else:
        print(car.title() + ', nice car!')

在这里插入图片描述
打印结果可以看出,当遇到元素为BMW时,走了不同的分支

二、条件测试

检查是否相等

car = "Toyota"

print(car == "Toyota")

先给car赋值,再使用 == 判断car是不是那个值 Toyota,结果是显而易见的:返回 True

在这里插入图片描述

忽略大小写

car = "Toyota"

print(car == "BMW")

car = 'bmw'

print(car == 'BMW')

car = "Audi"

print(car.lower() == 'audi')

在这里插入图片描述

检查是否不等

car = "Toyota"

if car != 'bmw':
    print("Hello World")

在这里插入图片描述

在Python中检查两个值是否不相等 使用 != ,大部分开发中都是判断两个值是否相等,但有时检查两个值是否不等效率更高

数值比较

num = 10

print(num == '10')

print(num == 10)

print(num > 10)

print(num > 8)

print(num < 9)


在这里插入图片描述

这块内容比较简单,没有什么需要过多解释的。

检查多个条件

num = 10

value = 7

print(7 <= num <= 10 and value > 6)

在这里插入图片描述

再比如 or 条件

num = 10

value = 7

print(num > 10 or value > 6)

在这里插入图片描述

or条件可连接多个,只要有一个返回True,则整个条件表达式为True,并且是短路算法,即第一个值为True,后面的就不需要再去判断。

num = 10

value = 7

print(num > 10 or value > 6)

在这里插入图片描述

检查多特定值是否在列表中

使用关键字 in

cars = ["Ford", "BMW", "Fiat"]

print("Ford" in cars)

print("Toyota" in cars)

在这里插入图片描述

检查多特定值是否不包含在列表中

用关键字 not in

cars = ['bmw', 'audi', 'toyota', 'subaru']

if "benz" not in cars:
    print("benz is not in the list")
else:
    print("benz is in the list")


if "bmw" not in cars:
    print("bmw is not in the list")
else:
    print("bmw is in the list")

打印结果如下

在这里插入图片描述

布尔表达式

success = True

print(success)

success = False

print(success)

这里 True 和 False 是 Python 中的两个特殊关键字,它们分别代表布尔类型的两个值。在 Python 中,布尔类型是一种特殊的整型,True 实际上等于整数 1,而 False 等于整数 0。不过,在大多数情况下,你不需要关心这个底层实现细节,直接使用 True 和 False 即可。


三、if语句

Python中的if语句就是基于某个条件来执行不同的代码块。基本格式如下

简单if语句

if conditional_test:
    do something

比如根据年龄判断这个人有没有成年

age = 20

if age>=18:
    print('你已经成年啦,可以搞对象啦!')

age = 16

if age<18:
    print('你还不是成年人,要守身如玉!')

在这里插入图片描述

if-else语句

age = 19

if age >= 18:
    print("你成年了,可以找女朋友了!")
else:
    print("未成年人禁止谈恋爱!")

显然代码会走第一个分支,如果age为16,则会走else分支

if-elif-else结构

上面的例子是二选一,如果我们有多个逻辑分支,可以使用if-elif-else结构

age = 45

if age < 13:
    print("儿童")
elif age < 18:
    print("青少年")
elif age < 30:
    print("年轻成人")
elif age < 60:
    print("成年")
else:
    print("老年人")

在这里插入图片描述

if-elif-else 结构,可以看到elif是可以有多个存在的。

省略else代码块

对上面的代码稍作修改,省略else,使用elif代替,达到相同的判断效果

age = 61

if age < 13:
    print("儿童")
elif age < 18:
    print("青少年")
elif age < 30:
    print("年轻成人")
elif age < 60:
    print("成年")
elif age >60:
    print("老年")

在这里插入图片描述

使用多个条件

if-elif-else结构功能强大,但仅适合用于只有一个条件满足的情况:遇到通过了的测试后,Python就跳过余下的测试。这种行为很好,效率很高,让你能够测试一个特定的条件。但很多时候我们可能需要检测多个条件,每个条件都需要有相应的处理逻辑。

username = input("请输入用户名: ")
password = input("请输入密码: ")

# 假设正确的用户名和密码
correct_username = "admin"
correct_password = "123456"

# 检查用户名是否正确
if username == correct_username:
    print("用户名正确")

# 检查密码是否正确
if password == correct_password:
    print("密码正确")

# 如果用户名和密码都正确,则允许登录
if username == correct_username and password == correct_password:
    print("登录成功")
else:
    print("登录失败,请检查用户名和密码")

这个列子是检测用户输入用户名和密码,在控制台实现输入

在这里插入图片描述


四、使用if语句处理列表

我们使用for循环处理一个列表,根据列表中的元素类型或值,对其进行判断,做出对应的处理,简单代码如下

检查特殊元素

list_1 = ['SWS', 'SSN', '慢蜗牛', '小蜗牛', '小滴水']

for item in list_1:
    if item == '小蜗牛':
        print(item + '在家好好睡觉呀')
    else:
        print('欢迎光临' + item)

在这里插入图片描述

确定列表非空

有时候我们需要对列表是否为空进行检测,比如Python中,for循环一个空列表是不会报错的,但是可能会造成我们逻辑上的错误,我们需要检测给出提示。

requested_toppings = ['蘑菇', '额外奶酪']  # 用户请求的配料

if requested_toppings:
    for requested_topping in requested_toppings:
        print("正在添加 " + requested_topping + "。")
    print("\n披萨制作完成!")
else:
    print("您确定要一个普通的披萨吗?")

在这里插入图片描述
一个添加了两种配料的披萨已制作完成,如果客户没有选择任何配料,有可能是忘记了,我们需要根据用户选择的配料表给出提示

requested_toppings = []  # 用户请求的配料

if requested_toppings:
    for requested_topping in requested_toppings:
        print("正在添加 " + requested_topping + "。")
    print("\n披萨制作完成!")
else:
    print("您确定要一个普通的披萨吗?")

在这里插入图片描述

使用多个列表

还是以制作奶酪来举例,顾客要求多,万一要的配料没有,我们需要给出提示

# 可提供的配料列表
available_toppings = ['蘑菇', '橄榄', '青椒', '意大利辣香肠', '菠萝', '额外奶酪']

# 用户请求的配料列表
requested_toppings = ['蘑菇', '薯条', '额外奶酪']

for requested_topping in requested_toppings:
    if requested_topping in available_toppings:
        print("正在添加 " + requested_topping + "。")
    else:
        print("抱歉,我们没有 " + requested_topping + "。")

print("\n披萨制作完成!")

观察得知,用户要求的薯条配料,我们并没有,所以结果如下

在这里插入图片描述


五、设置if语句的格式

总结

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

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐