おかえり!欢迎回来!现在,请和我一起全屏吧~windows:请按F11(或Fn+F11);mac:请同时按control+command+F。 在上一关,老师带领你攻克了如何与Python沟通的语言大关——通过三种数据类型(字符串、整数和浮点数)的相互转换,突破现实世界和镜像世界数据差异的墙,将代码成功执行。 但是,对于Python来讲,光正确使用【镜像世界的数据】还不够,还需要正确的【沟通逻辑】才能让Python准确地执行你的命令。 比方说,我想让天猫精灵在感知到我开门的一瞬间,打开客厅的灯。如果我只说:天猫精灵,打开灯。那么,由于缺少开门的前提条件,无论你开不开门,灯都会打开着。 所以,我们下的命令应该是这样:天猫精灵,如果我开门,你就打开客厅的灯。 而这个下命令的如果…就…逻辑,就是与计算机沟通的逻辑——条件判断,其作用就是明确地让计算机知道:在什么条件下,该去做什么。 对于Python也是同样。Python之所以能完成自动化任务,比如自动抓取网页关键词,自动下载小电影等,就是因为它可以执行条件判断。 下面,吴枫老师要给大家讲一个《复仇者联盟3:无限宝石》的故事,来get一下逻辑判断的趣味性。(友情提示:即使小同学没看过电影也不会影响你理解代码的。) 请同学们先点击下面代码框左侧的运行选项,然后在右侧的终端处按照提示语,填写你选择的数字。 已完成课堂练习 重做 分享 亲爱的夺宝骑兵,你看到没?这就是条件判断如果…就…逻辑产生的魔法。那么,这个条件判断的代码,要怎么码呢? 条件判断 在Python宇宙,条件判断语句总共有三种表现形式,我们先从最简单的单向判断:if开始说起: 单向判断:if 单向判断:if代表什么呢?相传上面的六颗宝石是宇宙中最强大的东西。如果一个人同时拥有六颗宝石,ta就可以实现包括毁灭宇宙在内的所有事情。 你发现,上面的故事中,有一个如果……就。那么,如果我们要用代码来“翻译”这段话,就可以用条件判断语句中的单项判断:if来表述。下面,请你来运行一下下方代码。 已完成课堂练习 重做 分享 那么,这段代码是如何实现的呢? 首先,第一行代码,用赋值运算符=对当前情况进行赋值:将你拥有的宝石个数6赋值给变量——宝石数stonenumber。 第二步,确定if条件:如果变量stonenumber的值>=个数6时,就执行冒号后,下一行的命令。 第三步,用print()命令打印出结果:你拥有了毁灭宇宙的力量。所以,if语句的单向判断逻辑,我们可以这样归纳: 在这里,你可能注意到了一个细节:在条件判断代码中的冒号:后、下一行内容的前面,会空几个格,但这是为什么呢? 首先,在计算机的沟通语言中,空格的学名叫缩进,比如我们写文章都要空两个格,这就叫首行缩进。 对于Python而言,冒号和缩进是一种语法。它会帮助Python区分代码之间的层次,理解条件执行的逻辑及先后顺序。【注:缩进是四个空格或一个Tab键】 并且,在if条件语言中,缩进不需要我们手动按空格键。当你用英文输入法打:后按回车,我们的开发工具(用来编写Python代码的程序)为了方便大家编程,会自动实现下一行代码,向右缩进的功能。 此时,被缩进的内容(print()函数)和if条件语句组成了一个代码块(一个整体),成为了if条件下的内部命令。 这意味着:如果赋值满足if条件,计算机就会准确执行if条件内部的命令(即缩进的代码块)。 那么下面,请你运行下面这个代码,看看运行结果是什么。(请不要更改代码,直接点击运行键,当终端出现红色报错提醒后,点击跳过本题) 已跳过课堂练习 重做 分享 是不是会出现IndentationError: expected an indented block(缩进错误:期望一个缩进块)的报错? 这是因为,当我们去掉缩进时,if条件和print命令成为了两个不同的代码组,属于平行关系。你看:if条件下面,缺少了可以执行的动作。我们想一下:无论条件成不成立,都不会执行什么操作,这个条件的存在没有任何意义。 单选题 现在,我们来做一道选择题,检验一下刚才学过的知识:下面几个关于if条件的表述中,哪个选项的说法是【错误】的? A. 如果满足if条件,计算机就会准确执行if条件内部的命令。 B. 如果想用代码实现“打印”的操作,应该用if条件判断语句。 C. if stonenumber>=6:下面跟的内部命令需要向右缩进。 D. if条件的含义是如果……就。 ----------------------------------------------------------------------------- 吃不了夜宵的酱酱快要哭了,快把代码分享到社群里,告诉酱酱你有好好学习来安慰一下她吧!下面,请看老师的答案,并结合#后的注释同时“食用”: 1 2 3 4 5 6 7 8 9 10 11 12 #当宝石数量为0颗的时候,可以输出"需要惊奇队长逆转未来"stonenumber=0#为宝石数量赋值if stonenumber>=6: #条件:如果你拥有的宝石数量大于等于6个 print('你拥有了毁灭宇宙的力量') #结果:显示'就拥有了毁灭宇宙的力量’的结果 elif 0<stonenumber<=5:# 条件:如果想让宝石数量停留在5个以下,至少一个 print('绯红女巫需要亲手毁掉幻视额头上的心灵宝石') #结果:显示'绯红女巫需要亲手毁掉幻视额头上的心灵宝石’的结果# 条件:当赋值不满足if和elif条件时,执行else下的命令,宝石数量为0个else: #结果:显示'需要惊奇队长逆转未来’的结果 print('需要惊奇队长逆转未来') 13 14 15 # 要先为酱酱的体重赋值,酱酱的体重是101斤weight=101# 如果体重超过100斤的条件下,就……(条件后需加冒号)if weight>100: # 就打印结果:不吃了!(注意检查是否自动缩进) print('不吃了') # 如果体重没有超过100斤的条件,就……(else条件前无缩进,条件后需加冒号)else: # 就打印:放心吃吧(注意检查是否自动缩进) print('放心吃吧') |
|
来自: endjiami > 《Python之沟通逻辑》