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

9. python的if语句

文章目录

  • 一、if结构
      • 1.1 比较符号
        • 1.1.1 使用`==`比较两个数据是否相等:
        • 1.1.2 使用`!=`号比较数据是否不相等
        • 1.1.3 使用`<`号比较数字大小关系
        • 1.1.4 使用`<=`号比较数字大小关系
        • 1.1.5 使用`>`号比较数字大小关系
        • 1.1.6 使用`>=`号比较数字大小关系
      • 1.2 关键字
        • 1.2.1 `and`关键字
        • 1.2.2 `or`关键字
  • 二、if-else结构
  • 三、if-elif-else结构
  • 四、else语句特别说明
  • 五、代码运行方式


有时,我们需要判断某个变量是否符合给定条件,if语句能判断对象是否符合条件,并根据判断结果进行相应操作。

一、if结构

if 1==1:print(1==1)
  1. if语句后,用于判断的语句,称为:条件测试
  2. 条件测试的结果有且仅有:TrueFalse
  3. if语句以冒号结尾
  4. 满足if语句后执行的代码块,需要缩进

1.1 比较符号

1.1.1 使用==比较两个数据是否相等:

#对字符串进行比较
if 'abc' == 'aBC':print(1)
if 'abc' == 'abc':print(2)
  1. 要给字符串加上引号,否则,python将认为abc和aBC是变量
  2. ==用于对比的时候,是识别大小写的。

1.1.2 使用!=号比较数据是否不相等

if 'abc' != 'aBC':print(1)print('test !')

1.1.3 使用<号比较数字大小关系

if 12 < 13:print(12)print('test !')

1.1.4 使用<=号比较数字大小关系

if 13 <= 13:print(13)print('test !')

1.1.5 使用>号比较数字大小关系

if 14  > 13:print(14)print('test !')

1.1.6 使用>=号比较数字大小关系

if 14 >= 14:print(14)print('test !')

1.2 关键字

当我们需要在一个 if语句中,对比两个或更多的条件,就需要使用关键字来连接多个条件。

1.2.1 and关键字

and关键字要求其两端的条件测试的结果都为True,才能通过if语句的判断。

if 12 > 13 and 14 < 15:print(1)print(2)

1.2.2 or关键字

or关键字,只要两端的条件测试中有一个结果True,则满足条件。

if(2 == 3 or '123' == print('456')):print('test !')

运行结果:
在这里插入图片描述
修改if语句,如下:

#关键字or
if(2 == 2 or '123' == print('456')):print('test !')

运行结果:
在这里插入图片描述
根据两次运行结果,可知:当关键字or前一个条件测试结果为True,将不再测试后面的条件。
建议:若已知两个条件在代码运行中的大致出现频率,则将出现频率高的条件写到or关键字前面。

二、if-else结构

if 12 == 13:print('yes')
#所有不满足if语句条件,都将执行else指定操作
else:print('no')
  1. else语句,需要使用冒号结尾
  2. else语句对应代码块,需要缩进

三、if-elif-else结构

if 12 == 13:print(1)
elif 12 < 13:print(2)
else:print(3)
  1. elif语句,要用冒号结尾
  2. elif语句,在if语句后加入其他的条件测试
  3. elif语句对应的代码块,需要缩进
  4. 只能有1个if语句、1个else语句,但两者之间可以写多个elif语句

四、else语句特别说明

  1. 只要不满足ifelif的条件,就能执行else的代码。
  2. 一旦有无效甚至恶意的数据,在不满足给定条件后,都会执行else对应的代码,使程序产生难以预料的问题。
  3. else包含了所有不满足条件的情况,导致代码用意表达不清晰
age = 12if age < 4:price = 0
elif age < 18:price = 5
elif age < 65:price = 10
#所有不满足条件情况都将进入else代码块
else:price = 5print('your admission cost: $' + str(price))

放弃使用else,修改为使用elif:

age = 12if age < 4:price = 0
elif age < 18:price = 5
elif age < 65:price = 10
#使用elif,清晰表达出这是对65岁及以上人群的处理情况
elif age >= 65:price = 5print('your admission cost: $' + str(price))

并非不能用else。而是需要考虑:用else会不会埋下隐患,会不会表意不清。

五、代码运行方式

if-elseif-elif-else的代码结构在运行时,满足了某个条件,并执行完该条件对应代码块后,就会跳出整个结构,执行后续代码。

相关文章:

9. python的if语句

文章目录 一、if结构1.1 比较符号1.1.1 使用比较两个数据是否相等&#xff1a;1.1.2 使用!号比较数据是否不相等1.1.3 使用<号比较数字大小关系1.1.4 使用<号比较数字大小关系1.1.5 使用>号比较数字大小关系1.1.6 使用>号比较数字大小关系 1.2 关键字1.2.1 and关键…...

并发编程的基础知识

并发编程的优缺点 充分利用多核CPU的计算能力&#xff1a;通过并发编程的形式可以将多核CPU的计算能力发挥到极致&#xff0c;性能得到提升方便进行业务拆分&#xff0c;提升系统并发能力和性能&#xff1a;在特殊的业务场景下&#xff0c;先天的就适合于并发编程。现在的系统动…...

C 语言风格的字符串,非 string 类如何初始化字符串,以及操作字符串的函数(C++复习向p12)

C 风格的字符串 以 C 风格初始化字符串&#xff0c;有这 2 种方法。其中的 ‘\0’ 是字符串结束符号&#xff0c;是 null 字符 char site[7] {R, U, N, O, O, B, \0}; char site[] "RUNOOB";C 中操作字符串的函数 (以null结尾的字符串) strcpy(s1, s2) 把 s2 复…...

Linux文件系统、磁盘I/O是怎么工作的?

同CPU、内存一样&#xff0c;文件系统和磁盘I/O&#xff0c;也是Linux操作系统最核心的功能。磁盘为系统提供了最基本的持久化存储。文件系统则在磁盘基础上&#xff0c;提供了一个用来管理文件的树状结构。 目录&#xff1a; 一. 文件系统 1. 索引节点和目录项 2. 虚拟文件系…...

设计原则之接口隔离原则

tip: 需要《设计模式之禅》的书籍&#xff0c;可以联系我 作为程序员一定学习编程之道&#xff0c;一定要对代码的编写有追求&#xff0c;不能实现就完事了。我们应该让自己写的代码更加优雅&#xff0c;即使这会费时费力。 相关规则&#xff1a; 1.6大设计规则-迪米特法则 …...

ubuntu20.04 ffmpeg mp4转AES加密的m3u8分片视频

样本视频(时长2分35秒): 大雄兔_百度百科 大雄兔_百度百科不知大家否看过世界上第一部开源电影&#xff1a;Elephants Dream&#xff08;大象之梦&#xff09;。这是一部由主要由开源软件Blender制作的电影短片&#xff0c;证明了用开源软件也能制作出效果媲美大公司的作品。…...

Java08——继承

1. 继承 父类&#xff1a; package com.zsq.extend.improve_; //是pupil和graduate的父类 public class Student {public String name;public int age;private double score;public void info(){System.out.println("姓名&#xff1a;" name " 年龄&#xff1…...

C++高级语法

文章目录 C高级语法面向对象 -- 类/结构体抽象-具体类型 标准I/O流I/O流I/O缓存区 文件操作头文件的重复包含问题深拷贝和浅拷贝&#xff0c;写时复制面向对象的三大特性面向对象是什么 C高级语法 面向对象 – 类/结构体 C使用class定义一个类&#xff0c;使用struct定义一个…...

React学习笔记九-高阶函数与函数柯里化

此文章是本人在学习React的时候&#xff0c;写下的学习笔记&#xff0c;在此纪录和分享。此为第九篇&#xff0c;主要介绍高阶函数与函数柯里化。 高阶函数&#xff0c;和函数的柯里化&#xff0c;是学习react的拓展&#xff0c;方便以后优化代码&#xff0c;更好的学习react。…...

2023年电工杯B题半成品论文使用讲解

注&#xff1a;蓝色字体为说明备注解释字体&#xff0c;不能出现在大家的论文里。黑色字体为论文部分&#xff0c;大家可以根据红色字体的注记进行摘抄。该文件为半成品论文&#xff0c;即引导大家每一步做什么&#xff0c;怎么做&#xff0c;展示按着本团队的解题思路进行建模…...

第1关:ODBC程序设计

第1关&#xff1a;ODBC程序设计 任务描述相关知识ODBC主要功能ODBC接口主要函数ODBC应用程序开发实例DM ODBC应用程序开发总体流程DM ODBC代码编写流程DM ODBC代码编写实例 编程要求测试说明代码参考&#xff1a; 任务描述 本关任务&#xff1a;使用 ODBC 查询表中数据。 相关…...

Kotlin笔记(零)简介

百度百科简介 2017年&#xff0c;google公司在官网上宣布Kotlin成为Android的开发语言&#xff0c;使编码效率大增。Kotlin 语言由 JetBrains 公司推出&#xff0c;这是一个面向JVM的新语言 参考资料 官网&#xff1a;https://kotlinlang.org/中文官网&#xff1a;https://w…...

android 12.0去掉usb授权提示框 默认给予权限

1.概述 在12.0的系统rom产品开发中,在进行iot开发过程中,在插入usb设备时会弹出usb授权提示框,也带来一些不便,这个需要默认授予USB权限,插拔usb都不弹出usb弹窗所以这要从usb授权相关管理页默认给与usb权限 2.去掉usb授权提示框 默认给予权限的相关代码 frameworks/bas…...

工作积极主动分享,善于业务沟通

工作积极主动分享&#xff0c;善于业务沟通 目录概述需求&#xff1a; 设计思路实现思路分析1.工作积极主动承担责任2.善于沟通3.一起常常lauch 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;…...

Opencv-C++笔记 (1) : opencv的数据结构

文章目录 一、OPNECV元素1.CvPoint2、模板类Size模版类Rect模版类RotatedRect模版类 二、MAT1.使用(nrows, ncols, type)&#xff0c;初始化2维矩阵如果需要深拷贝&#xff0c;则使用clone方法。 三、Vec类 一、OPNECV元素 1.CvPoint 为了方便使用&#xff0c;opencv又对常用的…...

什么是时间复杂度?

时间复杂度定义&#xff1a;在计算机科学中&#xff0c;时间复杂性&#xff0c;又称时间复杂度&#xff0c;算法的时间复杂度是一个函数&#xff0c;它定性描述该算法的运行时间。这是一个代表算法输入值的的长度的函数。时间复杂度常用大O符号表述&#xff0c;不包括这个函数的…...

Spring框架中有哪些不同类型的事件

Spring框架中有哪些不同类型的事件 Spring框架中有哪些不同类型的事件 Spring框架中有哪些不同类型的事件 Spring 提供了以下5种标准的事件&#xff1a; 上下文更新事件&#xff08;ContextRefreshedEvent&#xff09;&#xff1a;在调用ConfigurableApplicationContext 接口…...

Codeforcs 1732C2 暴力

题意 传送门 Codeforcs 1732C2 题解 方便起见&#xff0c;区间表示为左闭右开。观察到 f ( l , r ) ≥ f ( l ′ , r ′ ) , [ l ′ , r ′ ) ∈ [ l , r ) f(l,r)\geq f(l,r),[l,r)\in [l,r) f(l,r)≥f(l′,r′),[l′,r′)∈[l,r)&#xff0c;满足单调性&#xff0c;则 […...

Python安全和防护:如何保护Python应用程序和用户数据的安全

章节一&#xff1a;引言 在当今数字化时代&#xff0c;数据安全是一个极其重要的话题。随着Python的广泛应用和越来越多的人使用Python构建应用程序&#xff0c;保护Python应用程序和用户数据的安全变得尤为重要。本文将介绍一些关键的Python安全问题&#xff0c;并提供一些保…...

[转载]Nginx 使用 X-Accel-Redirect 实现静态文件下载的统计、鉴权、防盗链、限速等

需求 统计静态文件的下载次数&#xff1b;判断用户是否有下载权限&#xff1b;根据用户指定下载速度&#xff1b;根据Referer判断是否需要防盗链&#xff1b;根据用户属性限制下载速度&#xff1b; X-Accel-Redirect This allows you to handle authentication, logging or …...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

6.9-QT模拟计算器

源码: 头文件: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QMouseEvent>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);…...

[USACO23FEB] Bakery S

题目描述 Bessie 开了一家面包店! 在她的面包店里&#xff0c;Bessie 有一个烤箱&#xff0c;可以在 t C t_C tC​ 的时间内生产一块饼干或在 t M t_M tM​ 单位时间内生产一块松糕。 ( 1 ≤ t C , t M ≤ 10 9 ) (1 \le t_C,t_M \le 10^9) (1≤tC​,tM​≤109)。由于空间…...

土建施工员考试:建筑施工技术重点知识有哪些?

《管理实务》是土建施工员考试中侧重实操应用与管理能力的科目&#xff0c;核心考查施工组织、质量安全、进度成本等现场管理要点。以下是结合考试大纲与高频考点整理的重点内容&#xff0c;附学习方向和应试技巧&#xff1a; 一、施工组织与进度管理 核心目标&#xff1a; 规…...

AD学习(3)

1 PCB封装元素组成及简单的PCB封装创建 封装的组成部分&#xff1a; &#xff08;1&#xff09;PCB焊盘&#xff1a;表层的铜 &#xff0c;top层的铜 &#xff08;2&#xff09;管脚序号&#xff1a;用来关联原理图中的管脚的序号&#xff0c;原理图的序号需要和PCB封装一一…...

WEB3全栈开发——面试专业技能点P4数据库

一、mysql2 原生驱动及其连接机制 概念介绍 mysql2 是 Node.js 环境中广泛使用的 MySQL 客户端库&#xff0c;基于 mysql 库改进而来&#xff0c;具有更好的性能、Promise 支持、流式查询、二进制数据处理能力等。 主要特点&#xff1a; 支持 Promise / async-await&#xf…...