【Python】if 条件控制专题

简介: 文章目录一 条件测试1.检查是否相等2.检查是否相等时不考虑大小写3.检查是否不相等4.比较数字5.检查多个条件1.使用and检查多个文件2.使用or检查多个文件6.检查特定值是否包含在列表中7.检查特定值是否不包含在列表中二 if语句1.if - else 语句2.if - elif - else结构3.测试多个条件三 使用if语句处理列表1.检查特殊元素2.确定列表不是空的3.使用多个列表

一 条件测试

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


1.检查是否相等

大多数条件测试都将一个变量的当前值同特定值进行比较。最简单的条件测试检查变量的值是否与特定值相等,运行代码如下:

# 检查是否相等
car = 'bmw'
print(car == 'bmw')
print(car == 'other')

运行结果如下:

True
False

2.检查是否相等时不考虑大小写

在Python中检查是否相等时区分大小写,例如,两个大小写不同的值会被视为不相等:


# 仅首字母的大小写不同
car = 'bmw'
print(car == 'Bmw')

运行结果如下:

False

如果大小写很重要,这种行为有其优点。但如果大小写无关紧要,而只想检查变量的值,可将变量的值转换为小写,再进行比较:

# 仅首字母的大小写不同,调用方法使其所有字母转化为小写
car = 'Bmw'
print(car.lower() == 'bmw')

运行结果如下:

True

3.检查是否不相等

要判断两个值是否不相等,可结合使用惊叹号和等号,其中惊叹号表示不,与大部分编程语言一样。下面再使用一条if语句来演示如何使用不等运算符。我们将把要求的比萨配料存储在一个变量中,再打印一条消息,指出顾客要求的配料是否是小银鱼(anchovies):

requested_topping = 'mushrooms'
if requested_topping != 'anchovies':
    print("Hold the anchovies!")

运行结果如下:

Hold the anchovies!

4.比较数字

条件语句中可包含各种数字比较,如小于、小于等于、大于、大于等于:

age = 19
age < 21  # True
age <= 21  # True
age > 21  # False
age >= 21  # False

5.检查多个条件

1.使用and检查多个文件

要检查是否两个条件都为True,可使用关键字and将两个条件测试合而为一;如果每个测试都通过了,则整个表达式就为True;如果至少有一个测试没有通过,则整个表达式为False。


例如,要检查是否两个人都不小于21岁,可使用下面的测试:


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

2.使用or检查多个文件

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


6.检查特定值是否包含在列表中

要判断特定的值是否已经包含在用户名列表中,可使用关键字in。你可能为比萨店编写一些代码;这些代码首先创建一个列表,其中包含用户点的比萨配料,然后检查特定的配料是否包含在该列表中:

requested_toppings = ['mushrooms', 'onions', 'pineapple']
'mushrooms' in requested_toppings  # True
'pepperoni' in requested_toppings  # False

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

这里可以使用关键字not in。例如,如果有一个列表,其中包含被禁止在论坛上发表评论的用户,就可以在允许用户提交评论前检查他是否被禁言:

banned_users = ['andrew', 'carolina', 'david']
user = 'marie'
if user not in banned_users:
    print(user.title() + ", you can post a response if you wish.")

运行结果如下:


Marie, you can post a response if you wish.

二 if语句

1.if - else 语句

经常需要在条件测试通过时执行一个操作,并在没有通过测试时执行另一个操作;在这种情况下,可使用Python提供的if-else 语句。if-else 语句类似于简单的if语句,但其中的else语句让你能够在指定条件测试未通过时要执行的操作。下面的代码在一个人够投票的年龄时显示与前面相同的消息,同时在这个人不够投票年龄时也显示一条消息:


age = 17
if age >= 18:
    print("You are old enough to vote!")
    print("Have you registered to vote yet?")
else:
    print("Sorry, you are too young to vote.")
    print("Please register to vote as soon as you turn 18!")


age小于18,条件测试未通过,因此执行else代码块中的代码:


Sorry, you are too young to vote.
Please register to vote as soon as you turn 18!

2.if - elif - else结构

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


在现实生活中,很多情况需要考虑的情形都超过两个。例如,来看一个根据年龄段收费的游乐场:


4岁以下免费;

4 ~ 18岁收费5美元;

18岁(含)以上收费10美元。

如果只使用一条if语句确定门票的价格:


age = 12
if age < 4:
    price = 0
elif age < 18:
    price = 5
else:
    price = 10
print("Your admission cost is $" + str(price) + ".")


运行结果如下:


Your admission cost is $5.

3.测试多个条件

在这里不作赘述,如果你只想执行一个代码块,就使用if - elif - else结构;如果要运行多个代码块,就使用一系列独立的if语句。


三 使用if语句处理列表

1.检查特殊元素

在这里我们通过前面的比萨店示例研究如何检查列表中的特殊值,并对其做合适的处理。这家比萨店在制作比萨时,每添加一种配料都打印一条消息。通过创建一个列表,在其中包含顾客点的配料,并使用一个循环来指出添加到比萨中的配料,可以以极高的效率编写这样的代码:

requested_toppings = ['mushrooms', 'green peppers', 'extra cheese']
for requested_topping in requested_toppings:
    print("Adding " + requested_topping + ".")
print("\nFinished making your pizza!")

运行结果如下:

Adding mushrooms.
Adding green peppers.
Adding extra cheese.
Finished making your pizza!

然而,如果比萨店的青椒用完了,该如何处理呢?于是,我们可以在for循环中包含一条if语句:


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("Adding " + requested_topping + ".")
print("\nFinished making your pizza!")

运行结果如下:


Adding mushrooms.
Sorry, we are out of green peppers right now.
Adding extra cheese.
Finished making your pizza!

2.确定列表不是空的

下面在制作比萨前检查顾客点的配料列表是否为空。如果列表为空,就向顾客询问是否要点普通比萨;如果列表不为空,就像前面的示例那样制作比萨:


requested_toppings = []
if requested_toppings:
    for requested_topping in requested_toppings:
        print("Adding " + requested_topping + ".")
    print("\nFinished making your pizza!")
else:
    print("Are you sure you want a plain pizza?")


3.使用多个列表

顾客的要求往往五花八门,在比萨配料方面尤其如此。如果顾客要在比萨中添加炸薯条,该怎么办呢?可使用列表和if语句来确定能否满足顾客的要求。


来看看在制作比萨前如何拒绝怪异的配料要求。下面的示例定义了两个列表,其中第一个列表包含比萨店供应的配料,而第二个列表包含顾客点的配料。这次对于requested_toppings中的每个元素,都检查它是否是比萨店供应的配料,再决定是否在比萨中添加它:

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("Adding " + requested_topping + ".")
    else:
        print("Sorry, we don't have " + requested_topping + ".")
print("\nFinished making your pizza!")

运行结果如下:

Adding mushrooms.
Sorry, we don't have french fries.
Adding extra cheese.
Finished making your pizza!


相关文章
|
2月前
|
Python
Python中 If语句条件测试
Python中 If语句条件测试
37 1
|
2月前
|
Python
python中if语句(二)
python中if语句(二)
30 0
|
2月前
|
Python
python中if语句(一)
python中if语句(一)
34 0
|
2月前
|
Python
Python if语句
Python if语句
|
8月前
|
Python
11 python - if else / elif / if嵌套
11 python - if else / elif / if嵌套
42 0
|
9月前
|
Python
python之if语句的单分支,双分支,多分支,if逻辑运算符or,if逻辑运算符and,if语句的嵌套的定义及其使用方法
python之if语句的单分支,双分支,多分支,if逻辑运算符or,if逻辑运算符and,if语句的嵌套的定义及其使用方法
157 0
|
2月前
|
Python
【Python操作基础】——if语句用法
【Python操作基础】——if语句用法
|
2月前
|
Python
python中if __name__ == '__main__'
python中if __name__ == '__main__'
21 3
|
1天前
|
语音技术 数据安全/隐私保护 Python
语音识别---数据输入(input语句),布尔类型和比较运算符,if语句的基本格式,Python通过空格缩进来判断代码块的归属关系,我要买票吗讲解?if_elif_else
语音识别---数据输入(input语句),布尔类型和比较运算符,if语句的基本格式,Python通过空格缩进来判断代码块的归属关系,我要买票吗讲解?if_elif_else
|
13天前
|
JavaScript Python
Python if 的高级功能有哪些?
**Python 条件语句简介** `if` 用于检查变量是否为真,真值包括非零数、非空字符串、非空列表等。`if xxx:` 当 `xxx` 为真时执行代码块,否则跳过。`if xxx == xxx` 使用 `==` 比较值是否相等,`if xxx is xxx` 则检查是否为同一对象。