Python 条件控制

if语句

Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。

Python 中 if 语句的一般形式如下所示:

if condition_1:
    statement_block_1

流程图如下所示:

这种if语句只有在符合条件的时候才会执行代码块内的代码,是一种比较常见的用法。

另一种常见的用法是:

if condition_1:
    statement_block_1
else:
    statement_block_2

流程图如下所示:

这种语句是一种常用的if-else语句,通常用于二分支结构的条件语句代码。

在一些时候,我们可能需要多分支的条件语句代码,可以在if-else语句中混合elif语句进行使用:

Python 中用 elif 代替了else if,所以if语句的关键字为:if – elif – else。

if condition_1:
    statement_block_1
elif condition_2:
    statement_block_2
else:
    statement_block_3

流程图如下所示:

如果 "condition_1" 为 True 将执行 "statement_block_1" 块语句,如果 "condition_1" 为 False,将判断 "condition_2",如果"condition_2" 为 True 将执行 "statement_block_2" 块语句,如果 "condition_2" 为 False,将执行"statement_block_3"块语句。

 使用第一种常用的if语句搭配合适的条件可以实现第二种和第三种语句的全部效果,但在执行效率和代码可读性上会变得比较糟糕。

注意:

  • 1、每个条件后面要使用冒号(:),表示接下来是满足条件后要执行的语句块。
  • 2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
  • 3、在 Python 中没有 switch – case 语句,但在python3.10中添加了用法类似的match-case语句。

match-case语句(python3.10新特性)

在其他语言(比如说经典的C语言)中有一种多分支条件判断语句,可以进行模式匹配(通俗的讲,就是将传入的内容跟多个已存在的样例进行比较,找到相同的案例并按照该案例的代码进行处理,如果没有相同案例就按默认案例进行处理,可以查看其他编程语言的条件语句的Switch相关部分内容进行比较参考)。在python3.10中也引入了这样的新特性。

match-case语句的结构一般如下所示:

match variable: #这里的variable是需要判断的内容
    case ["quit"]: 
        statement_block_1 # 对应案例的执行代码,当variable="quit"时执行statement_block_1    case ["go", direction]: 
        statement_block_2
    case ["drop", *objects]: 
        statement_block_3
    ... # 其他的case语句
    case _: #如果上面的case语句没有命中,则执行这个代码块,类似于Switch的default
        statement_block_default

一个match语句的使用示例:

def http_error(status):
    match status:
        case 400:
            return "Bad request"
        case 404:
            return "Not found"
        case 418:
            return "I'm a teapot"
        case _:
            return "Something's wrong with the Internet"

 上述代码等价于:

def http_error(status):
    if status == 400:
        return "Bad request"
    elif status == 404:
        return "Not found"
    elif status == 418:
        return "I'm a teapot"
    else:
        return "Something's wrong with the Internet"

关于模式匹配还有更多的用法,可以参考PEP636进行详细的学习。

实例

以下实例演示了狗的年龄计算判断:

age = int(input("Age of the dog: "))
print()
if age < 0:  
    print("This can hardly be true!") 
elif age == 1:  
    print("about 14 human years") 
elif age == 2:  
    print("about 22 human years") 
elif age > 2:
    human = 22 + (age -2)*5
    print("Human years: ", human)

### 
input('press Return>')

尝试一下

将以上脚本保存在 dog.py 文件中,并执行该脚本:

python dog.py
Age of the dog: 1

about 14 human years

以下为 if 中常用的操作运算符:

操作符描述
<小于
<=小于或等于
>大于
>=大于或等于
==等于,比较对象是否相等
!=不等于

 只要返回结果为布尔型(true或者false)的,都可以作为if的条件,所以在之前的集合等内容中涉及到的判断元素是否在集合中的​in​和​not in​,都可以作为if的条件。

实例

# 程序演示了 == 操作符
# 使用数字
print(5 == 6)
# 使用变量
x = 5
y = 8
print(x == y)

尝试一下

以上实例输出结果:

False
False

使用​in​和​not in​作为判断条件:

thisset = set(("Google", "W3Cschool", "Taobao"))
if "W3Cschool" in thisset:
    print("该元素在列表中")
if "baidu" not in thisset:
    print("该元素不在列表中")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

数据码农师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值