python基础教程七(布尔类型,条件语句,断言)

1. 布尔类型

在前面,你遇到了很多真值,现在终于需要他们了。真值也称布尔值。
用做布尔表达式(如用作if语句中的条件)时,下面的值都将被解释器视为假:
False  None  0   ""  ()  []  {}
换而言之,标准值False和None.各种类型(包括浮点数,复数等)的数值0,空序列(如空字符串,空元组,空列表)以及空映射(如空字典)都被视为假,而其他各种值都被视为真,包括特殊值True
这意味着任何python值都可以解释为真值。乍一看这有点令人迷惑,但很有用.虽然可供选择的真值很多,但是标准真值为True和False.实际上,True和False不过是0和1的别名,虽然看起来不同,但作用是相同的
>>> True
True
>>> False
False
>>> True ==1
True
>>> False==0
True
>>> True +False+42
43
因此如果你看到一个返回1或0的表达式,就知道这实际上意味着True和False。
布尔值True属于类型Bool,而bol和list和str,tuple一样,可用来转换其他的值。
>>> bool('dasddas')
True
>>> bool(42)
True
>>> bool('')
False
>>> bool(0)
False
鉴于任何值都可以用作布尔值,因此你几乎不需要显示的进行转换(python会自动进行转换)。

2. If 语句

1.单条件语句

>>> if 3>2:
...     print("you are right")
...
you are right

这就是一个if语句,让你有条件地执行代码。这意味着如果条件(if和冒号之间的表达式)为,就执行后续代码块(这里是一条print语句);如果条件为假,就不执行(你应该已经猜到了)

2. else子句

else是表示判断条件为假时候所执行的语句,切记之所以叫子句是因为它不能单独存在,是if语句的一部分
>>> if 3<2:
...     print("you are tallent")
... else:
...     print("you are stupid")
...
you are stupid
在这个示例中因为条件为假,所以执行了else语句很容易理解对吧.

还有一个和if语句很像的亲戚,他就是条件表达式 ——c语言三目运算符的python版本.
下面的表达式使用if和else确定其值:

>>> a=3
>>> b=4
>>> maxmun=a if a>b  else b
>>> maxmun
4

3 elif子句

要检查多个条件,可使用elif。elif是else if的缩写。由一个if子句和一个else子句组合而成,也就是包含条件的ekse子句
num=int(input())
if num>0:print("是正数")
elif num<0:print("是负数")
else:print("是零")

4. 更复杂的条件

1.比较运算符
表达式描述
x==yx等于y
x<yx小于y
x>yx大于y
x>=yx大于或等于y
x<=yx小于或等于y
x!=yx不等于y
x is yx和y是同一个对象
x is not yx和y是不同的对象
x in yx是容器y的成员
x not in yx不是容器y的成员
与赋值一样,python也支持链式比较:可同时使用多个比较运算符,如0<age<100
有些比较运算符需要特别注意,下面就来详细介绍.
1. 相等运算符

要确定俩个对象相等,可使用比较运算符,用俩个等号表示。(如果一个等号会导致赋值,如果是一个变量和常量比较最好把常量写左边)

2. 相同运算符
这个运算符很有趣,其作用看似与==一样,但实际上并非如此.
>>> x=y=[1,2,3]
>>> z=[1,2,3]
>>> x==y
True
>>> x==z
True
>>> x is y
True
>>> x is z
False
在前几个示例中,看不出什么问题,但最后一个示例的结果很奇怪:x和z相等,但是x is z 的结果为False。为何会这样呢,因为is 检查俩个对象是否等同。x和y指向一个列表,而z指向另一个列表(其中包含的值以及这些值的排列顺序都与前一个列表相同)。这俩个列表虽然相等,但并非同一个对象.

总之,==用来检查俩个对象是否相等,而is用来检查俩个对象是否相同(是同一个对象)
警告:你要将is 用于数和字符串等不可变的基本值。鉴于python在内部处理这些对象的方式,这样做的结果不可预测(基于Python 3.10.10 测试 数值和字符串 上 is和,==基本相同)

3. 字符串和序列的比较
字符串是根据字符的字母序列顺序进行比较的。
>>> a='adsdasd'
>>> b='b'
>>> b>a
True
更具体的说是按照unicode字符编码的大小进行比较的
字符是根据顺序值排列的。要获悉字母的顺序值可使用函数ord。这个函数的作用于函数chr相反:
>>> ord('a')
97
>>> ord('王')
29579
>>> chr(29579)
'王'
4.布尔运算符
运算符and是一个布尔运算符。它接受俩个真值,并在这俩个值都为真时返回真,否则返回假。还有另外俩个布尔运算符:or和nor ,or是俩个有一个为真就返回真,not就是真变假,假变真。
使用这三个运算符,能以任何方式组合真值

注意and和or这俩个在使用中都遵循短路逻辑,例如当and左侧表达式已经为假的时候,右边就不看了,or也是类似,如果你有在判断条件上写赋值语句的习惯,一定要注意,还是建议尽量不要过于利用短路,哪怕要多写条件语句。

3. 断言

if语句有一个很有用的“”亲戚“”,其工作原理类似下面的伪代码:
if not conditioncrash program
断言的存在就是为了让程序在错误条件出现时立刻崩溃,胜过以后再崩溃。基本上,你可要求某些条件得到满足(如核实函数参数满足要求或为初始测试和调试测试提供帮助),为此可在语句中使用关键字assert。
>>> age=10
>>> assert 0 <=age<=100
>>> age=-1
>>> assert 0 <=age<=100
Traceback (most recent call last):File "<stdin>", line 1, in <module>
AssertionError
如果知道必须满足特定条件,程序才能正常地运行,可在程序中添加assert语句充当检查点,这很有帮助。
还可在条件后面添加一个字符串,对断言做出说明。
>>> age=-1
>>> assert 0 <=age<=100 ,'年龄不符合范围'
Traceback (most recent call last):File "<stdin>", line 1, in <module>
AssertionError: 年龄不符合范围

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/602861.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

207课程表

题目 你这个学期必须选修 numCourses 门课程&#xff0c;记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出&#xff0c;其中 prerequisites[i] [ai, bi] &#xff0c;表示如果要学习课程 ai 则 必须 先学习课程 bi 。 …

Vue2商品规格选择

Vue2Element-ui Vu2仿写拼多多商家后台规则选择&#xff0c;为什么用Vue2呢&#xff0c;因为公司用的Vue2... 样式不是很好看&#xff0c;自己调一下就行。 <template><div ref"inputContainer"><div>{{ combinationsResult }}</div><…

深入浅出Nacos的原理

前言 本文来讲一讲nacos作为底层注册中心的实现原理。那么就有这几个问题&#xff1f; 临时实例和永久实例是什么&#xff1f;有什么区别&#xff1f; 服务实例是如何注册到服务端的&#xff1f; 服务实例和服务端之间是如何保活的&#xff1f; 服务订阅是如何实现的&#…

Adobe illustrator各版本安装指南

下载链接 https://pan.baidu.com/s/11sTpMUbQEXhyjpkBlixcLg?pwd0531 #2024版 1.鼠标右击【Ai2024(64bit)】压缩包&#xff08;win11及以上系统需先点击“显示更多选项”&#xff09;【解压到 Ai2024(64bit)】。 2.打开解压后的文件夹&#xff0c;鼠标右击【Setup】选择【以…

【Pytorch】学习记录分享11——GAN对抗生成网络

PyTorch GAN对抗生成网络 0. 工程实现1. GAN对抗生成网络结构2. GAN 构造损失函数&#xff08;LOSS&#xff09;3. GAN对抗生成网络核心逻辑3.1 参数加载&#xff1a;3.2 生成器&#xff1a;3.3 判别器&#xff1a; 0. 工程实现 原理解析&#xff1a; 论文解析&#xff1a;GAN…

canvas如何自定义绘制图片

在Canvas中&#xff0c;可以使用drawImage()方法来绘制图片。该方法接受三个参数&#xff1a; 1. 图片对象&#xff1a;可以是<img>、<canvas>或<video>元素。 2. 图片左上角在Canvas中的X坐标。 3. 图片左上角在Canvas中的Y坐标。 如果要自定义绘制图片&a…

Postman接口测试实战

1.什么是接口测试 来自百度百科的解释&#xff1a; 接口测试是测试系统组件间接口的一种测试&#xff0c;主要用于测试系统与外部其他系统之间的接口&#xff0c;以及系统内部各个子模块之间的接口。测试的重点是要检查接口参数传递的正确性&#xff0c;接口功能实现的正确性&…

使用.Net nanoFramework为ESP32进行蓝牙配网

通过前面的介绍&#xff0c;我们已经学会了如何使用 .NET nanoFramework 为 ESP32 设备连接 Wi-Fi 网络。然而&#xff0c;在实际的物联网环境中&#xff0c;我们往往需要使用更便捷的式来满足配网需求。这篇文章将带你了解一些常见的配网方案&#xff0c;并以 ESP32 为例&…

Java运算符简单介绍

文章目录 1. 算术运算符2. 赋值运算符3. 比较&#xff08;关系&#xff09;运算符4. 逻辑运算符5. 位运算符6. 条件运算符&#xff08;三元运算符&#xff09;7. 运算符优先级 1. 算术运算符 &#xff1a;加法 int a 5; int b 3; int sum a b; // 结果为8-&#xff1a;减…

docker——docker compose简介和案例(部署prometheus+granfana+node-exporter)

docker compose Docker Compose 是 Docker 官⽅编排&#xff08;Orchestration&#xff09;项⽬之⼀&#xff0c;负责快速的部署分布式应⽤。 它允许⽤户通过⼀个单独的 docker-compose.yml 模板⽂件 &#xff08;YAML 格式&#xff09;来定义⼀组相关联的应⽤容器为⼀个项⽬…

基于java,springboot的论旅游管理系统设计与实现

环境以及简介 基于java,springboot的论旅游管理系统设计与实现&#xff0c;Java项目&#xff0c;SpringBoot项目&#xff0c;含开发文档&#xff0c;源码&#xff0c;数据库以及ppt 源码下载 环境配置&#xff1a; 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服…

vue生成动态表单

Vue动态表单可以根据不同的数据动态地生成表单组件&#xff0c;方便快速地实现表单的创建和处理。下面给出一个示例&#xff0c;演示如何使用Vue动态表单生成一个简单的注册表单。 <template><form submit.prevent"submitForm"><div v-for"fiel…

PDF文档转换工具箱流量主小程序开发

PDF转换小助手&#xff0c;不仅是文件格式转换的利器&#xff0c;更是一位得力的助手。它精通PDF与各类文档间的自由转换&#xff0c;如Word、Excel、PowerPoint等。 转换选项丰富多样&#xff0c;满足您对文件保护、页面设置、图像品质等细致要求。处理大量文件&#xff1f;…

翻译!翻译!AI是什么?

2023年开年以来&#xff0c;AI突然开窍&#xff0c;终于不再是以前那个上下文不能连贯的呆子了&#xff0c;变得非常智能&#xff0c;非常好用。随后AI开始井喷式爆发&#xff0c;各大厂商开始发力&#xff0c;开始发布自家的AI产品。AI也逐渐成为我们日常生活的常态。我们也能…

Unity SVN更新提交小工具

Unity SVN更新提交小工具 前言使用说明必要前提源码参数说明 感谢 前言 Unity开发时每次都要到文件夹中操作SVN&#xff0c;做了一个小工具能够在Editor中直接操作。 使用说明 必要前提 前提是要安装好SVN&#xff0c;在文件夹右键能够看到安装的SVN 源码 using System…

用友U8+CRM 逻辑漏洞登录后台漏洞复现

0x01 产品简介 用友U8 CRM客户关系管理系统是一款专业的企业级CRM软件&#xff0c;旨在帮助企业高效管理客户关系、提升销售业绩和提供优质的客户服务。 0x02 漏洞概述 用友 U8 CRM客户关系管理系统 reservationcomplete.php文件存在逻辑漏洞&#xff0c;未授权的攻击者通过…

渗透第四天 (抽空再看一天 )

网站不同的加密 ok  常用的对称加密算法有&#xff1a;DES、3DES、RC2、RC4、AES 常用的非对称加密算法有&#xff1a;RSA、DSA、ECC 使用单向散列函数的加密算法&#xff08;摘要算法&#xff09;&#xff1a;MD5、SHA 密码存储加密 md5 32位或者16位 0-9 a-f…

word表格跑到下一页,老是空很多在上一页,且与标题分离?

1、方法一 表格属性里边&#xff0c;行设置中&#xff0c;有一个“跨页断行”的选项&#xff0c;勾上应该可以解决你这个问题&#xff0c;你可以先试试&#xff1b; 2、方法二 鼠标点击表格任意位置&#xff0c;将光标定位到表格中&#xff0c;然后单击鼠标右键&#xff0c;…

第11章 GUI Page462~476 步骤二十三,二十四,二十五 Undo/Redo ②“添加操作”支持“Undo/Redo”

工程二 1.为AddAction类添加Undo() Redo() GetName()成员函数 2.实现AddAction类的Undo() Redo()函数 3.运行效果&#xff0c;但是日志窗口没有记录 原因&#xff1a;AddAction(EditAction* newAction)函数没有实现&#xff0c;另外参数是EditAction类型 所以我们还需要在基…

2023版本QT学习记录 -11- 多线程的使用(QT的方式)

———————多线程的使用(QT方式)——————— &#x1f384;效果演示 两个线程都输出一些调试信息 &#x1f384;创建多线程的流程 &#x1f384;头文件 #include "qthread.h"&#x1f384;利用多态重写任务函数 class rlthread1 : public QThread {Q_OBJE…