《假如编程是魔法之零基础看得懂的Python入门教程 》——(五)我的魔法竟然有了一丝逻辑

学习目标

  1. 了解魔法世界中的结构表现——缩进
  2. 了解魔法世界的逻辑判断——if
  3. 了解魔法世界的多次逻辑判断——ifelse嵌套
  4. 了解魔法世界中的逻辑运算——且 and 与或 or

推荐

1.《备受好评的看得懂的C语言入门教程》

目录

第一篇:《假如编程是魔法之零基础看得懂的Python入门教程 》——(一)既然你选择了这系列教程那么我就要让你听得懂
第二篇:《假如编程是魔法之零基础看得懂的Python入门教程 》——(二)魔法实习生第一步了解魔杖的使用
第三篇:《假如编程是魔法之零基础看得懂的Python入门教程 》——(三)使用初始魔法跟编程魔法世界打个招呼吧
第四篇:《假如编程是魔法之零基础看得懂的Python入门教程 》——(四)了解魔法百宝箱列表、字典及基本数据类型
第五篇:《假如编程是魔法之零基础看得懂的Python入门教程 》——(五)我的魔法竟然有了一丝逻辑
第六篇:《假如编程是魔法之零基础看得懂的Python入门教程 》——(六)精简魔法更强大
第七篇:《假如编程是魔法之零基础看得懂的Python入门教程 》——(七)我把魔法变成了积木
本系列教程将会以一种“魔法世界”的形式编写,欢迎各位支持。

欢迎大家关注公众号,公众号每满1024及1024倍数则会抽奖赠送机械键盘一份+IT书籍2份哟~并且公众号会更快更新哟。
在这里插入图片描述

一、了解魔法世界中的逻辑判断

在python中进行逻辑判断其实指的是流程控制,那什么是流程控制呢?流程控制指的是在编写代码时,有不同条件下需要执行的代码,满足该条件后将会执行这部分流程;这一部分流程可以是一条代码、空或多条代码。那我们的代码如何体现这个流程控制呢?其实在我们的程序运行中,会出现一些可能预计的情况,通过对这些情况的判定从而在某些情况出现时做响应;例如在做一台壁障小车时,判断前方是否有障碍物,若有则转弯或后退,其它情况则直走;在整个过程中,转弯和后退表示一个情况触发后需要响应的流程,其它情况则直走,这就是流程控制。从壁障小车的表现上看,则是有了逻辑;在魔法世界中,释放有逻辑的魔法就像一枚跟踪导弹,放出去必定命中敌人。

1.1 了解逻辑判断咒语——if关键字
if在python中是用来表示逻辑判断的关键字(关键字指系统中内定已有功能的字符组合,就像魔法中的咒语一样),使用if,在if后拼接触发的条件,则会在程序运行过程中触发指定的流程。现在我们来看一下以下示例:

if 1>10:

以上代码使用了if关键字,之后接上了一个条件,这个条件是1>10;我们现在先别管条件是怎么写,刚刚说了,条件满足后将会触发指定的流程。那if 1>10:的指定流程改如何编写呢?我们可以看一下这一行代码中有一个冒号,冒号的一般作用是解释说明,那在代码中是否也可以使用冒号用作一种类似于“解释说明”的作用?恭喜你,如果你这么想那就是猜对了。那我们就在1>10的时候就显示“1>10”吧,查看以下代码:

if 1>10:print("1>10")

在以上代码中整体的代码意思为,使用if关键字,判断1是否大于10,大于10则执行冒号后的代码print("1>10");运行python文件:
在这里插入图片描述
发现什么都没有出现,这是为什么呢?因为1>10这个条件不成立,在一般情况下1是不可能大于10的;那修改条件为1<10,这个条件是正确的,1是小于10;运行python文件:

if 1<10:print("1<10")

运行结果:

在这里插入图片描述
成功显示了1<10,但是在该代码中并没有体现“当程序运行中触发某个条件”,那就改一下代码吧。在前几节中,我们学习了如何跟已经运行的程序进行对话,那就是使用input,使用input可以接收用户输入的值;那我们现在编写一个程序查看该程序是否大于10。

首先我们需要使用input魔法接收用户输入的值,并且使用一个变量存储该值:

a=input("请输入一个数值:")

随后使用a变量进行判断,查看是否小于10:

a=input("请输入一个数值:")
if a<10:print("a小于10")

我们运行代码,输入一个数10,结果发现了错误;这是博主我翻车了吗?当然是的,还好我有安全气囊。首先我们查看一下我们的魔法到底哪里错了:
在这里插入图片描述
以上错误提示中,告诉我们使用<号对数值进行判断,比较的两个值不能一个为字符串另外一个为整数。

怎么回事?难道我输入10不是数字?在python中当然不是数字呢,当前输入的10是一个字符串;可能你会一巴掌打我,并且说“10明明是数字,你是在忽悠我颠倒我的世界观吗?”。其实数字可以做为字符也可以作为数字,例如在一串字符串中“小明今年17岁了”,其中出现了数字17,那这个17是字符串还是数字?在我们脑海里它是个数字,我们觉得这个17是个数字是因为我们进行了逻辑判断,知道它是个量词;所有的这一切逻辑是基于我们所学过知识的基础上进行的判定,但计算机并没有学过,它并不能判断,只能通过我们所告诉它存在那个容器,这个容器是什么类型,数据存储进去后将会按照容器的类型从而改变值。

那接下来怎么做呢?这个很简单,只需要在判断的时候转换一下变量a的值就可以了:

a=input("请输入一个数值:")
if int(a)<10:print("a小于10")

以上代码中,在变量a与10进行判断时转变了a的表现,为整数形式;运行结果如下:
在这里插入图片描述
程序运行后输入了一个值2,判断条件成立,那么则运行print("a小于10")显示出 a小于10。

1.2 了解缩进的使用
想必有细心的魔法师还记得我之前说“流程可以是多条代码”,那这个多条代码怎么写呢?难道是:

if int(a)<10:print("a小于10")print("另外一句话")

不不不,这个是错的,我们需要使用一个叫做缩进的表示形式去凸显代码只能够的层次。例如:

a=input("请输入一个数值:")
if int(a)<10:print("a小于10")print("另外一句话")

就这?对的,就这。这就是缩进,缩进其实就是把版面给排得整齐了。查看如上代码,在if条件判断冒号后换了一行,并且在这一条代码 print("a小于10")前添加了4个空格,并且也在这个流程内的代码 print("另外一句话")前也添加了4个空格,一般4个空格指一个tab键自动输入的4个空格。

这样的编写形式非常容易凸显层次,例如if执行判断后,该执行多条代码,这属于共同流程内的代码需要整体的使用缩进进行控制层次。

二、了解魔法世界中的逻辑判断嵌套

在python代码编写中也可以使用嵌套的判断用于流程的控制。例如我们做一个“作弄人”的小魔法,输入3次,第一次输入一个数小于10,之后的每次输入都只能输入比上一次小的数,如果输错了则游戏结束。

2.1 if的嵌套使用
知道了游戏规则,那到底什么是嵌套呢?嵌套用最近流行的一个词来说就是“套娃”(2020年10月31日),用现实中的类似食物做一个比方就是一个碗上面又叠了一个,这就是嵌套。

在python代码中if的表现形式为:

if 条件:#一些代码if 条件:#一些代码

if的嵌套就是指在if条件判断的流程代码中再使用if判断。以上表现形式中使用了#号来修饰一些说明,这是什么东西?这是表示这是注释,注释表示这一行或者这一块代码的说明,方便你进行查看解释的标注,在通过解释器时并不会去翻译使用#号标注的内容。

为什么玩这个游戏需要使用if嵌套呢?我先跟你说一下我的实现思路:从键盘上输入一个值,我们接着判断这个值是否小于10,判断成功后进入正确的流程,在条件判断正确所需要执行的代码中继续使用input语句接收一个值,完成我们的二次输入,然后使用if继续判断这个值是否小于第一次输入的值,那么小于的话继续执行这个if语句判断正确的代码,那么接下来该怎么做呢?当然是跟之前一样的操作流程呢,添加一个input和一个if就可以了(当然也可以不用if嵌套也有别的方法,不过在此演示的示例是基于教学内容而设定)。

我们看一下正确的代码:

a=input("请输入一个数值:")
if int(a)<10:print("密码正确√")b=input("请输入一个数值:")if int(b)<int(a):print("密码正确√")c=input("请输入一个数值:")if int(c)<int(b):print("完全正确√")

以上代码中首先使用一个变量a接收输入的值,之后判断是否小于10,小于10则执行指定流程内的代码,之后在该流程内重复与之前代码类似的编写;不同的有使用了一个变量b作为值的接收,随后判断变量b与变量a的值,变量a是第一次输入的值存储,游戏规定一定要小于上一次的值,所用用刚刚输入的值与上一次的值做对比;第三次的操作类似不在赘述,这样就完成了这个游戏的编写。
运行结果:
在这里插入图片描述

2.2 if不成立时 else来帮你
在2.1中我们的逻辑判断存在一丝缺陷,缺少了条件不成立时该执行代码什么代码。在python中提供了else关键字让我们解决该问题:

if 条件:#一些代码
else:#一些代码

当条件成立时执行条件冒号后的对应流程代码,当条件不执行时执行else流程的代码。查看一示例:

a=input("请输入一个数值:")
if a<10:print("a小于10")
else:print("a不小于10")

如果我们把else加到2.1的游戏中,代码可以写成:

a=input("请输入一个数值:")
if int(a)<10:print("密码正确√")b=input("请输入一个数值:")if int(b)<int(a):print("密码正确√")c=input("请输入一个数值:")if int(c)<int(b):print("完全正确√")else:print("就还差最后一个")else:print("再接再厉")else:print("第一个密码就错了")

以上代码在每一个if结构后都跟了一个else,在此要注意缩进的结构哟,每个if都是有自己的结构的,可以看以下图示说明:
在这里插入图片描述

运行结果如下:
在这里插入图片描述

2.3 多条件时怎么办?使用if elif轻松解决
现在假设我需要判断我输入的是1还是2或者是3从而执行不同的流程,这时可以使用if elif结构判断多个条件。

a=input("请输入一个数值:")
if int(a)==1:print("输入的是1")
elif int(a)==2:print("输入的是2")
else:print("是其它数")

以上示例中,在使用了if判断值是否是1,使用两个等于号“==”表示判断左右两边的值是否相等,在python中使用一个等于“=”表示赋值;假设值等于1则输出"输入的是1",假设需要判断是否输入的值等于2这时就需要使用elif,在elif后添加判断条件 int(a)==2:,假设所有条件都不满足,那么则输出else部分的内容。运行结果如下:

在这里插入图片描述当然也可以多个elif组合:

a=input("请输入一个数值:")
if int(a)==1:print("输入的是1")
elif int(a)==2:print("输入的是2")
elif int(a)==3:print("输入的是3")
elif int(a)==4:print("输入的是4")
else:print("是其它数")

2.3 使用逻辑运算 and 与 or 进行编程
假设在魔法世界,你释放了一个封印魔法封印一把锁,需要输入一个小于10的数并且能够被2整除才可以打开;这时需要判断的条件为2个,一个是小于10另外一个是除2余数等于0。这时我想用一个if语句就可以解决,这时就可以使用逻辑运算,查看示例:

a=input("请输入一个数值:")
if int(a)<10 and int(a)%2==0:print("打开盒子")
else:print("错了")

以上示例中使用了and运算符,表示“与”;and运算发坐标为一个条件(表达式)右边也是一个条件,首先判断坐标条件a是否小于10,如果成立则判断右边a除2取余数是否为0,如果为0就显示“打开盒子”。在这and 表示左右两边条件都正确即为整个表达式 int(a)<10 and int(a)%2==0正确,换句话说就是and的坐标和右边的判断都正确才是最终答案。再次用了运算发百分号%,百分号表示取余数。

运行结果如下:
在这里插入图片描述
如果使用 or 进行表达式运算则只需要一个表达式正确即可,意思就是左边和右边只要有一个条件成立就表示正确了:

a=input("请输入一个数值:")
if int(a)<10 or int(a)%2==0:print("打开盒子")
else:print("错了")

假设我输入一个值100,它是大于10的条件1不成立,但是它却可以被2整数余数为0,在使用or的情况是会显示“打开盒子”的,若属于111则不行,因为条件都没满足。运行结果如下:
在这里插入图片描述
使用运算符and 和 or 并不只是能判断2个条件,也可以判断多个条件:

a=input("请输入一个数值:")
if int(a)<10 and int(a)%2==0 and int(a)>4:print("打开盒子")
else:print("错了")

也可以or 和 and 混合使用:

a=input("请输入一个数值:")
if int(a)<10 and int(a)%2==0 or int(a)==200:print("打开盒子")
else:print("错了")

以上条件判断为if int(a)<10 and int(a)%2==0 or int(a)==200:表示a小于10并且除2余数为0,假设这一部分不满足则判断a是否等于200,由于int(a)<10 and int(a)%2==0int(a)==200之间使用or进行连接,则表示两者之间即使左边全错,右边int(a)==200对了那么就正确,如果int(a)<10 and int(a)%2==0int(a)==200全错则整个条件判断错误。运行结果如下:
在这里插入图片描述

四、总结

  1. 了解了在python中是使用缩进代表的层次结构
  2. 了解了使用if可以进行逻辑判断进行流程控制
  3. 了解了逻辑判断是可以嵌套的
  4. 了解了逻辑运算可以使用 and 和 or 进行逻辑运算

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

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

相关文章

类和类之间的关系

一、类和类之间的关系 UML类图中&#xff0c;常见以下几种关系: 1、泛化&#xff08;Generalization&#xff09; 是一种继承关系&#xff0c;比如动物类和老虎类&#xff0c;老虎继承动物&#xff0c;子类如何特化父类的所有特征和行为 箭头指向:带三角箭头的实线&#xff0…

查缺补漏系统学习 EF Core 6 - 实体配置

推荐关注「码侠江湖」加星标&#xff0c;时刻不忘江湖事这是 EF Core 系列的第二篇文章&#xff0c;上一篇文章讲解了 EF Core 的一些基础概念&#xff0c;这一篇文章主要围绕实体属性的配置。点击上方或后方蓝字&#xff0c;阅读 EF Core 系列合集。实体配置配置实体的目的&am…

mysql innodb 索引 延迟更新_Mysql覆盖索引与延迟关联

延迟关联&#xff1a;通过使用覆盖索引查询返回需要的主键,再根据主键关联原表获得需要的数据。为什innodb的索引叶子节点存的是主键&#xff0c;而不是像myisam一样存数据的物理地址指针&#xff1f;如果存的是物理地址指针不就不需要二次查找了吗&#xff0c;根据myisam和inn…

Android之在笔记本电脑adb devices识别不了oppo A9手机(设备管理器ADB Interface里面有个黄色感叹号)

1 问题 记本电脑adb devices识别不了oppo A9手机&#xff08;设备管理器ADB Interface里面有个黄色感叹号&#xff09; 图片如下 2 分析 很明显这里是驱动问题&#xff0c;ADB Interface有感叹号提示&#xff0c;所以这里需要解决驱动问题 3 解决办法 1&#xff09;可以尝试…

《假如编程是魔法之零基础看得懂的Python入门教程 》——(六)精简魔法更强大

学习目标 了解对相似逻辑的简化编写——循环 推荐 1.《备受好评的看得懂的C语言入门教程》 目录 第一篇&#xff1a;《假如编程是魔法之零基础看得懂的Python入门教程 》——&#xff08;一&#xff09;既然你选择了这系列教程那么我就要让你听得懂 第二篇&#xff1a;《假…

Tiny模板语言(VelocityPlus)初步入门

2019独角兽企业重金招聘Python工程师标准>>> 1 关于用户手册 本文主要介绍如何在模板中使用Tiny模板语言&#xff0c;通过查阅本手册&#xff0c;可以对Tiny模板语言 TTL(Tiny Template Language)的用法有一个较全面的认识&#xff0c;并学会如何有效地使用Tiny模板…

『技术群里聊些啥』.NET 如何计算文件 MD5 哈希

前言有网友在交流群中询问&#xff0c;文件 MD5 是全部读取到内存后计算出来的&#xff0c;还是拿到流就可以计算出来了&#xff1a;原理上来说&#xff0c;MD5 需要对全部内容做运算&#xff0c;所以应该是获取所有内容后再计算的。但是&#xff0c;如果全部读取到内存后再计算…

探索发现:平台云——云的新风向

本文讲的是探索发现&#xff1a;平台云——云的新风向&#xff0c;云主机&#xff0c;自2011年火热崛起之后&#xff0c;成为IDC行业替代VPS的完美系列&#xff0c;它的成功在于其相对于VPS的压倒性优势;而平台云凭借其的便捷的操作、实时监控和可视化服务&#xff0c;让站长们…

windows下配置mysql主从复制_Windows下MySQL主从复制的配置方法

MySQL主从复制允许将来自一个数据库(主数据库)的数据复制到一个或多个数据库(从数据库)。主数据库一般是实时的业务数据写入和更新操作&#xff0c;从数据库常用的读取为主。主从复制过程&#xff1a;1、主服务器上面的任何修改都会通过自己的 I/O tread(I/O 线程)保存在二进制…

【ArcGIS风暴】全国1:100万基础地理数据库获取及ArcGIS图幅完美拼接---以甘肃省为例

在日常工作中,如第三次全国国土调查、不动产登记等,我们总需要对图斑、线状等数据进行数据分幅、图幅拼接等操作。另外,日常学习工作中,无论是制图还是进行分析,都不可避免的需要使用一些基础地理数据,像行政边界、水系、道路、居民地等等,那么,这些基础地理数据有没有…

体验 .NET MAUI RC3 ,马上就要发布RTM

前言.NET MAUI 已经传了很久了&#xff0c; 5月10日&#xff0c;微软终于跟随 VS2022 17.3 预览版 发布了MAUI的候选版本 &#xff0c;今天我们来体验一波。环境运行环境&#xff1a;.Net 6开发环境&#xff1a;VS2022 17.3 &#xff08;必须是预览3&#xff09;使用在安装了V…

WebApi的调用-3.Basic验证

webapi里的特性 /// <summary>/// Basic验证 /// </summary>/// <remarks>/// /// </remarks>public class BasicAuthorizeAttibute : AuthorizeAttribute{public override void OnAuthorization(HttpActionContext actionContext){var authori…

ats 字符集问题

2019独角兽企业重金招聘Python工程师标准>>> 架构很简单&#xff0c;nginx->ats->nginx 后端nginx有做内容替换&#xff0c;字符编码为gb2312&#xff0c;因为ats为utf8编码导致前端内容展示时进行了错误的替换&#xff0c;导致内容错乱。 如 治疗鼻窦炎---&g…

《零基础看得懂的C语言入门教程 》——(十三)socket服务端编写

一、学习目标 了解C语言的socket的概念了解C语言socket的使用方法完成C语言socket服务端 目录 C语言真的很难吗&#xff1f;那是你没看这张图&#xff0c;化整为零轻松学习C语言。 第一篇&#xff1a;&#xff08;一&#xff09;脱离学习误区 第二篇&#xff1a;&#xff0…

古董来了:1999年的物件,香港已经回归了,我都上初中了,那么你出生了吗?

受疫情的影响&#xff0c;哪都去不了&#xff0c;只能在家憋着&#xff08;为社会做贡献&#xff09;这种状态已经持续了将近两个月了。无聊至极的我&#xff0c;一天无所事事&#xff0c;只能是在家这儿瞅瞅&#xff0c;那儿看看&#xff0c;用一句诗经里面的话来形容我最合适…

.NET性能优化-为结构体数组使用StructLinq

前言本系列的主要目的是告诉大家在遇到性能问题时&#xff0c;有哪些方案可以去优化&#xff1b;并不是要求大家一开始就使用这些方案来提升性能。在之前几篇文章中&#xff0c;有很多网友就有一些非此即彼的观念&#xff0c;在实际中&#xff0c;处处都是开发效率和性能之间取…

《假如编程是魔法之零基础看得懂的Python入门教程 》——(七)我把魔法变成了积木

学习目标 了解魔法积木的使用——自定义函数了解魔法积木的结果反馈——自定义函数返回值了解魔法积木的原料传递——自定义函数传参了解魔法积木的类型分类——类与对象 推荐 1.《备受好评的看得懂的C语言入门教程》 目录 第一篇&#xff1a;《假如编程是魔法之零基础看得…

关于Activity的getReferrer():如何在Activity中获取调用者?

http://blog.csdn.net/u013553529/article/details/53856800 关于Activity的getReferrer()之一&#xff1a;如何在Activity中获取调用者&#xff1f; http://blog.csdn.net/u013553529/article/details/53882440 关于Activity的getReferrer()之二&#xff1a;调用者的包名是如何…

【遥感数字图像处理】实验:Erdas 软件的认识与使用

Erdas软件下载地址:《GISer福音来了:测绘地理信息类专业软件版本大全汇总下载!》 1.1 简介 ERDAS IMAGINE 是美国 ERDAS(Earth Resource Data Analysis System)公司开发的遥感图像处理系统,它以其先进的图像处理技术,友好、灵活的用户界面和操作方式,面向广阔应用领域…

import 别名_Python基础找茬系列09--import和from-import的引用区别

一、语法区别二、两种导包在内存上的区别一图看懂import与from-import的区别无论是使用import隐式导包还是form-import显示导包&#xff0c;整个模块都会被加载到内存中例如&#xff1a;from test import b,整个模块依旧进入内存&#xff0c;因为如果只有函数b进入内存&#xf…