当前位置: 首页 > 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"

相关文章:

Python3-条件控制

Python3 条件控制 Python 条件语句是通过一条或多条语句的执行结果&#xff08;True 或者 False&#xff09;来决定执行的代码块。 可以通过下图来简单了解条件语句的执行过程: 代码执行过程&#xff1a; if 语句 Python中if语句的一般形式如下所示&#xff1a; if condi…...

KDZD地埋电缆故障测试仪

一、产品特性 ★电缆故障测试仪&#xff08;闪测仪&#xff09; &#xff08;1&#xff09;使用范围广&#xff1a;用于测量各种不同截面、不同介质的各种电力电缆、高频同轴电缆&#xff0c;市话电缆及两根以上均匀铺设的地埋电线等电缆高低阻、短路、开路、断线以及高阻泄漏…...

爆款升级!新系列南卡Neo最强旗舰杀到,业内首款无线充骨传导耳机!

中国专业骨传导耳机品牌NANK南卡于近日发布了全新南卡Neo骨传导运动耳机&#xff0c;打造一款佩戴最舒适、音质体验最好的骨传导耳机。推出第2代声学響科技技术&#xff0c;提供更优质的开放式骨传导听音体验&#xff0c;透过不一样的音质体验&#xff0c;打造更好的骨传导耳机…...

基于Spring Boot+Thymeleaf的在线投票系统

文章目录 项目介绍主要功能截图:后台登录注册个人信息展示投票数据显示首页展示对战匹配分数排行榜部分代码展示设计总结项目获取方式🍅 作者主页:Java韩立 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅…...

【每日一题Day135】LC1487保证文件名唯一 | 哈希表

保证文件名唯一【LC1487】 给你一个长度为 n 的字符串数组 names 。你将会在文件系统中创建 n 个文件夹&#xff1a;在第 i 分钟&#xff0c;新建名为 names[i] 的文件夹。 由于两个文件 不能 共享相同的文件名&#xff0c;因此如果新建文件夹使用的文件名已经被占用&#xff0…...

计算机系统的基本组成 第一节

一、计算机系统 计算机系统是指&#xff1a;电子数字通用、计算机系统 由硬件和软件两个子系统组成 硬件是保存和运行软件的物质基础 软件是指挥硬件完成预期功能的智力部分 重点&#xff1a; 计算机系统部件 五个 1、数据运算部件&#xff1a;完成对数据的运算处理功能…...

Scrapy爬虫框架入门

Scrapy是Python开发的一个非常流行的网络爬虫框架&#xff0c;可以用来抓取Web站点并从页面中提取结构化的数据&#xff0c;被广泛的用于数据挖掘、数据监测和自动化测试等领域。下图展示了Scrapy的基本架构&#xff0c;其中包含了主要组件和系统的数据处理流程&#xff08;图中…...

最新使用nvm控制node版本步骤

一、完全卸载已经安装的node、和环境变量 ①、打开控制面板的应用与功能&#xff0c;搜索node&#xff0c;点击卸载 ②、打开环境变量&#xff0c;将node相关的所有配置清除 ③、打开命令行工具&#xff0c;输入node-v&#xff0c;没有版本号则卸载成功 二、下载nvm安装包 ①…...

Linux内核4.14版本——drm框架分析(1)——drm简介

目录 1. DRM简介&#xff08;Direct Rendering Manager&#xff09; 1.1 DRM发展历史 1.2 DRM架构对比FB架构优势 1.3 DRM图形显示框架 1.4 DRM图形显示框架涉及元素 1.4.1 DRM Framebuffer 1.4.2 CRTC 1.4.3 Encoder 1.4.4 Connector 1.4.5 Bridge 1.4.6 Panel 1.4.…...

Google的一道经典面试题 - 767. 重构字符串

文章目录Google的一道经典面试题 - 767. 重构字符串767. 重构字符串1054. 距离相等的条形码结论Google的一道经典面试题 - 767. 重构字符串 767. 重构字符串 题目链接&#xff1a;767. 重构字符串 题目大意&#xff1a;给定一个字符串 s &#xff0c;检查是否能重新排布其中的…...

E8-公共选择框相关的表

起因 昨天同事和我说&#xff0c;要在一个表单里加一组可选项。于是我去了公共选择框维护。这时候才发了这么个问题&#xff0c;前几天我在本机的测试环境里做的流程&#xff0c;导入到我们的生产环境里&#xff0c;表单里所用到的共公选择框的选项都在&#xff0c;在表单里是…...

再学C语言41:变长数组(VLA)

处理二维数组的函数&#xff1a;数组的行可以在函数调用时传递&#xff0c;但是数组的列只能被预置在函数内部 示例代码&#xff1a; #define COLS 4 int sum(int arr[][COLS], int rows) {int r;int c;int temp 0;for(r 0; r < rows; r){for(c 0; c < COLS; c){tem…...

物联网WEB大屏数据可视化

最近了解WEB大屏显示。一般像嵌入式这类的&#xff0c;MQTT协议会走的多一些&#xff0c;走订阅和发布的策略&#xff0c;网上走了一圈之后&#xff0c;目前有几个实现方案。这里对比一下几个物联网协议&#xff0c;相对而言MQTT更合适物联网&#xff0c;其它几个协议不是干这个…...

新:DlhSoft Gantt Chart for WPF Crack

用于 Silverlight/WPF 4.3.48 的 DlhSoft 甘特图灯光库 改进甘特图、网络图和 PERT 图表组件的 PERT 关键路径算法。2023 年 3 月 2 日 - 17:09新版本特征 改进了甘特图、网络图和 PERT 图表组件的 PERT 关键路径算法。Silverlight/WPF 标准版的 DlhSoft 甘特图灯光库 DlhSoft …...

C++基础(一)—— C++概述、C++对C的扩展(作用域、struct类型、引用、内联函数、函数默认参数、函数占位参数、函数重载)

1. C概述1.1 c简介“c”中的来自于c语言中的递增运算符&#xff0c;该运算符将变量加1。c起初也叫”c withclsss”.通过名称表明&#xff0c;c是对C的扩展&#xff0c;因此c是c语言的超集&#xff0c;这意味着任何有效的c程序都是有效的c程序。c程序可以使用已有的c程序库。为什…...

Rust学习总结之if,while,loop,for使用

目录 一&#xff1a;if的使用 二&#xff1a;while的使用 三&#xff1a;loop的使用 四&#xff1a;for的使用 本文总结的四种语句&#xff08;if&#xff0c;while&#xff0c;loop&#xff0c;for&#xff09;除了loop&#xff0c;其他的三个在C语言或者Python中都是常见…...

Java知识复习(十一)RabbitMQ

1、RabbitMQ简介 RabbitMQ 是采用 Erlang 语言实现 AMQP(Advanced Message Queuing Protocol&#xff0c;高级消息队列协议&#xff09;的消息中间件 2、RabbitMQ核心概念 RabbitMQ 整体上是一个生产者与消费者模型&#xff0c;主要负责接收、存储和转发消息 3、Producer和…...

thinkphp图片压缩类

<?php namespace app\lib; /** * 图片压缩类&#xff1a;通过缩放来压缩。 * 如果要保持源图比例&#xff0c;把参数$percent保持为1即可。 * 即使原比例压缩&#xff0c;也可大幅度缩小。数码相机4M图片。也可以缩为700KB左右。如果缩小比例&#xff0c;则体积会更小。…...

如何将图数据库应用于电影智能推荐

导读 电影&#xff0c;是一种结合视觉与听觉的现代艺术。如今&#xff0c;电影已不单是人们娱乐消遣的生活方式&#xff0c;也逐渐成为国家文化软实力的重要标志之一。据有关数据统计&#xff0c;2021年中国影视行业市场规模达2349亿元&#xff0c;同比增长23.2%&#xff0c;预…...

CSS实现动画效果的菜单收起展开图标,html实现动画效果的箭头

效果 实现代码 此处JS代码引入了jquery <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><style>.menu-icon{position: absolute;left: 20%;top: 30%;transition: all .3s;}.menu-icon:before, .menu…...

助听器分轨处理技术:从好莱坞混音到耳内智能音频分离

1. 从好莱坞混音到耳内“分轨处理”&#xff1a;助听器技术的一次范式转移如果你曾惊叹于一部好电影的沉浸式音效&#xff0c;那你已经体验过“分轨处理”的魔力。好莱坞的混音师们会把对白、环境音、配乐和特效音分别录制在不同的音轨上&#xff0c;然后在后期制作中独立调整每…...

基于OpenClaw的轻量级AI内容工厂:多智能体协作与自动化创作实践

1. 项目概述&#xff1a;一个轻量级AI内容创作工厂如果你正在寻找一个能快速上手、开箱即用的AI内容创作解决方案&#xff0c;那么aiclublight这个项目可能会让你眼前一亮。它本质上是一个基于OpenClaw框架构建的“AI内容工厂”的轻量版&#xff0c;将复杂的多智能体协作系统&a…...

多视角时空对齐 + 跨镜轨迹融合:镜像视界打造无断点跟踪闭环

多视角时空对齐 跨镜轨迹融合&#xff1a;镜像视界打造无断点跟踪闭环在工业安防、智慧仓储、园区管控等全域场景智能化升级进程中&#xff0c;目标跟踪的连续性、精准性、全域性&#xff0c;始终是衡量管控体系效能的核心指标&#xff0c;也是传统视频监控技术难以逾越的行业…...

AutoJs6架构深度解析:JavaScript自动化引擎在Android平台的实现原理

AutoJs6架构深度解析&#xff1a;JavaScript自动化引擎在Android平台的实现原理 【免费下载链接】AutoJs6 安卓平台 JavaScript 自动化工具 (Auto.js 二次开发项目) 项目地址: https://gitcode.com/gh_mirrors/au/AutoJs6 AutoJs6作为Android平台领先的JavaScript自动化…...

SAP ABAP开发避坑指南:NATIVE SQL里那个冒号和MANDT字段,你写对了吗?

SAP ABAP开发实战&#xff1a;NATIVE SQL高频陷阱与性能优化全解析 在SAP ABAP开发领域&#xff0c;NATIVE SQL就像一把双刃剑——它既能突破Open SQL的限制直接操作底层数据库&#xff0c;又隐藏着无数让开发者"踩坑"的语法细节。根据SAP官方统计&#xff0c;超过60…...

从DICOM到NIfTI:3D Slicer中医学图像坐标转换的完整避坑指南(附Python代码片段)

从DICOM到NIfTI&#xff1a;3D Slicer中医学图像坐标转换的完整避坑指南&#xff08;附Python代码片段&#xff09; 医学影像处理中&#xff0c;数据格式和坐标系的差异常常成为工程师和研究员们的"隐形杀手"。想象一下&#xff0c;你花了三天三夜训练的深度学习模型…...

FABRK全栈框架:模块化设计与AI辅助开发实战解析

1. 项目概述&#xff1a;一个为AI时代而生的全栈开发框架如果你和我一样&#xff0c;在过去几年里反复搭建过各种SaaS应用、管理后台或者数据看板&#xff0c;你一定会对那种重复劳动感到厌倦。每次新项目启动&#xff0c;都要重新配置身份验证、集成支付、设计仪表盘组件、处理…...

DownKyi哔哩下载姬:5步快速掌握B站视频下载完整教程

DownKyi哔哩下载姬&#xff1a;5步快速掌握B站视频下载完整教程 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xf…...

网页布局基石----盒子模型

目录 一&#xff1a;盒模型的构成 二&#xff1a;盒模型的核心属性 三&#xff1a;标准盒子模型代码实例 CSS控制网页样式是通过盒子模型去实现的&#xff0c;日常中我们所看到的网页上所以标签都可以视为一个盒子。所以网页都是放在盒子里面的。因此&#xff0c;我们首先要…...

Python热重载工具Reloadium:实现函数级代码热更新与AI辅助开发

1. 项目概述&#xff1a;Reloadium&#xff0c;一个改变Python开发工作流的“时光机”如果你和我一样&#xff0c;是个常年泡在Python项目里的开发者&#xff0c;那你一定对“修改代码 -> 停止程序 -> 重新运行 -> 等待启动”这个循环深恶痛绝。尤其是在调试Web后端&a…...