当前位置: 首页 > news >正文

Python3-条件控制

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

可以通过下图来简单了解条件语句的执行过程:
在这里插入图片描述
代码执行过程:
在这里插入图片描述

if 语句

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

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"块语句
Python 中用 elif 代替了 else if,所以if语句的关键字为:if – elif – else。

注意:

1、每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。
2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
3、在 Python 中没有 switch…case 语句,但在 Python3.10 版本添加了 match…case,功能也类似,详见下文。

以下是一个简单的 if 实例:

#!/usr/bin/python3var1 = 100
if var1:print ("1 - if 表达式条件为 true")print (var1)var2 = 0
if var2:print ("2 - if 表达式条件为 true")print (var2)
print ("Good bye!")

执行以上代码,输出结果为:

1 - if 表达式条件为 true
100
Good bye!

从结果可以看到由于变量 var2 为 0,所以对应的 if 内的语句没有执行。

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

#!/usr/bin/python3age = int(input("请输入你家狗狗的年龄: "))
print("")
if age <= 0:print("你是在逗我吧!")
elif age == 1:print("相当于 14 岁的人。")
elif age == 2:print("相当于 22 岁的人。")
elif age > 2:human = 22 + (age -2)*5print("对应人类年龄: ", human)### 退出提示
input("点击 enter 键退出")

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

$ python3 dog.py 
请输入你家狗狗的年龄: 1相当于 14 岁的人。
点击 enter 键退出

以下为if中常用的操作运算符:
在这里插入图片描述

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

以上实例输出结果:

False
False

high_low.py文件演示了数字的比较运算:

#!/usr/bin/python3 # 该实例演示了数字猜谜游戏
number = 7
guess = -1
print("数字猜谜游戏!")
while guess != number:guess = int(input("请输入你猜的数字:"))if guess == number:print("恭喜,你猜对了!")elif guess < number:print("猜的数字小了...")elif guess > number:print("猜的数字大了...")

执行以上脚本,实例输出结果如下:

$ python3 high_low.py 
数字猜谜游戏!
请输入你猜的数字:1
猜的数字小了...
请输入你猜的数字:9
猜的数字大了...
请输入你猜的数字:7
恭喜,你猜对了!

if 嵌套

在嵌套 if 语句中,可以把 if…elif…else 结构放在另外一个 if…elif…else 结构中。

if 表达式1:语句if 表达式2:语句elif 表达式3:语句else:语句
elif 表达式4:语句
else:语句
# !/usr/bin/python3num=int(input("输入一个数字:"))
if num%2==0:if num%3==0:print ("你输入的数字可以整除 2 和 3")else:print ("你输入的数字可以整除 2,但不能整除 3")
else:if num%3==0:print ("你输入的数字可以整除 3,但不能整除 2")else:print  ("你输入的数字不能整除 2 和 3")

将以上程序保存到 test_if.py 文件中,执行后输出结果为:

$ python3 test.py 
输入一个数字:6
你输入的数字可以整除 23

match…case
Python 3.10 增加了 match…case 的条件判断,不需要再使用一连串的 if-else 来判断了。

match 后的对象会依次与 case 后的内容进行匹配,如果匹配成功,则执行匹配到的表达式,否则直接跳过,_ 可以匹配一切。

语法格式如下:

match subject:case <pattern_1>:<action_1>case <pattern_2>:<action_2>case <pattern_3>:<action_3>case _:<action_wildcard>

case _: 类似于 C 和 Java 中的 default:,当其他 case 都无法匹配时,匹配这条,保证永远会匹配成功。

mystatus=400
print(http_error(400))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"

以上是一个输出 HTTP 状态码的实例,输出结果为:

Bad request

一个 case 也可以设置多个匹配条件,条件使用 | 隔开,例如:

...case 401|403|404:return "Not allowed"
http://www.lryc.cn/news/27726.html

相关文章:

  • KDZD地埋电缆故障测试仪
  • 爆款升级!新系列南卡Neo最强旗舰杀到,业内首款无线充骨传导耳机!
  • 基于Spring Boot+Thymeleaf的在线投票系统
  • 【每日一题Day135】LC1487保证文件名唯一 | 哈希表
  • 计算机系统的基本组成 第一节
  • Scrapy爬虫框架入门
  • 最新使用nvm控制node版本步骤
  • Linux内核4.14版本——drm框架分析(1)——drm简介
  • Google的一道经典面试题 - 767. 重构字符串
  • E8-公共选择框相关的表
  • 再学C语言41:变长数组(VLA)
  • 物联网WEB大屏数据可视化
  • 新:DlhSoft Gantt Chart for WPF Crack
  • C++基础(一)—— C++概述、C++对C的扩展(作用域、struct类型、引用、内联函数、函数默认参数、函数占位参数、函数重载)
  • Rust学习总结之if,while,loop,for使用
  • Java知识复习(十一)RabbitMQ
  • thinkphp图片压缩类
  • 如何将图数据库应用于电影智能推荐
  • CSS实现动画效果的菜单收起展开图标,html实现动画效果的箭头
  • 大数据平台小结
  • 力扣-139单词拆分
  • 图机器学习-图神经网络
  • 配置Airbyte资源限制
  • python实现PCA降维画分类散点图并标出95%的置信区间
  • Mysql高级之索引结构详解
  • 【线程-J.U.C】
  • docker布署spring boot jar包项目
  • 极简Vue3教程--Pinia状态管理
  • 常用的map转bean互转方法
  • 2.4G收发一体芯片NRF24L01P跟国产软硬件兼容 SI24R1对比