1.条件结构
程序逻辑——条件判断。学会了条件判断后,我们的程序将不再单一,变得智能起来!
前几天张三的智能家居设备中新添了一样小玩意儿——空调伴侣,能根据室内温度的高低,控制空调的开关。
我的设定是,如果室内温度低于 32 度,就不做操作,如果室温高于 32 度,就自动打开空调。这个 如果...就... 的逻辑就是条件判断。
当今我们的世界到处都是智能设备,极大地方便了我们的生活,而 如果...就... 这种最基本的条件判断,就是这一切的基础。
编程世界也是一样,条件判断非常重要。Python 碰到表示条件判断的语句的时候,它会先判断是否符合条件,如果符合,那就执行对应的代码。
最简单的例子是,如果一个数字大于 0,就让 Python 打印“这个数字是正数”。
接下来我们一起进入《阿甘正传》的故事,通过阿甘的成长历程来学习如何让程序作出判断。
阿甘,全名福瑞斯特·甘,从小只有 75 的智商,他的背部骨骼长歪了,必须依靠支架才可以勉强走路,阿甘和妈妈相依为命。
Python 实现了一个智商分类程序,运行代码,输入不同的智商值,程序会输出对应的智商等级。
你不需要弄懂代码的细节,直接运行你的第一个条件分支的代码吧!
拓展:一般来说,人口中的一半人属于正常和平均智力水平(得分在 90-109 之间),得分在 110 以上就属于高智商者,即很聪明。 据说,爱因斯坦的智商是 160。
score = int(input('输入智商值:'))
if score < 80:
print('智力低下')
if score >= 80 and score < 110:
print('普通智力')
if score >= 110 and score < 140:
print('智力较高')
if score >= 140:
print('天才或接近天才')
条件结构
阿甘在学校里经常受到别的孩子欺侮,他跑着躲避别人的捉弄。
进入高中后,有一天阿甘被人欺负,拼命逃跑,无意间冲入了橄榄球场,他跑步的速度被球队经理看上,依靠这项技能阿甘竟然成功升入大学。
而当初如果阿甘没有“跑”的技能,他就无法升入大学,现在我们来通过条件结构来实现这个逻辑。
skill = '跑'
if skill == '跑':
print('升入大学,成为橄榄球队主力!')
else:
print('无法升入大学,过着不为人知的生活')
上面这段代码的含义是:如果(if)技能(skill)为(==)跑,那么打印出升入大学,成为橄榄球队主力!。否则(else)打印出无法升入大学,过着不为人知的生活。
值得注意的是,在上面代码中出现了一个新的操作符,即判断相等符号(==),顾名思义,就是判断操作符左边和右边的值是不是相等的。
注意:很多人总是分不清 = 和 == 的区别,你一定要记住了: = 是赋值,== 是判断相等。
条件结构也叫分支结构
2.if...else... 语句
if...else… 语句由条件和两个代码块组成,可以抽象为如下结构:
其中判断条件成立时,则执行冒号后面的 代码块 1;反之,如果判断条件不成立则执行 else: 后面的 代码块 2。
这里的判断条件一般使用比较运算符进行比较,常见的比较运算符有 ==(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)。
在开车的过程中,如果开了导航的话,当超速行驶时,导航会提示我们超速了,其实这里就用到了条件结构。假如某条公路限速 60,我们可以写一个判断是否超速的程序:
speed = 100
if speed > 60:
print('超速了')
else:
print('车速正常')
注意:判断条件和 else 后面的冒号,一定不能丢掉,很多初学者会忽视这里冒号的存在。而且在第一关学过字符串的引号必须是英文的,这里的冒号也不例外,必须要用英文的哦~
细心的你有没有发现执行代码块 1 和 2 前面都有两个空格?丢失空格会导致代码无法运行。
其实这个代码行首的留白在编程里有个专业的叫法——缩进。Python 的代码块是通过缩进来定义代码块范围的。
3.缩进
代码行的缩进决定了代码之间的从属关系。一些代码是否要执行,要听另外一些代码的命令。
这种“上下级”似的从属关系,就要靠缩进来判断。我们再来看一下之前判断是否超速的代码:
speed = 100
if speed > 60:
print('超速了')
else:
print('车速正常')
第 3 行和第 5 行都缩进了,因此它们分别从属于 if speed > 60: 和 else:,相当于跟在大哥后面的小弟。当条件成立时,if speed > 60: 后面的小弟便出来干活了。当条件不成立时,则 else: 后面的小弟出来干活。
else 和 if 都是大哥,属于同级。虽然 else 在 if 语句后面,但 else 是不用缩进的。
要注意的是,没有从属关系的代码间如果乱用缩进,也会出问题导致程序报错的哦。如:
i = 1
b = 1
# 报错:IndentationError: unexpected indent
# 缩进错误:有不应该出现的缩进
缩进一般使用两个空格或者四个空格,但是一定要记住在上下文中保持一致,不能一会用两个空格,一会用四个空格。
4.注释
当我们写得代码越来越多,越来越复杂的时候,我们回过头看之前写的代码时,很难立刻就能看明白当初为什么要这么写。而有了注释,相当于给代码做了标注笔记,下次再看的时候便能快速回忆起来。
Python 中的注释很简单,只需要在注释内容前加上 # 即可。比如:
# 屏幕打印张三
print('张三')
注释是给人看的,Python 会自动忽略注释的内容,不去执行。适当的注释可以提高代码可读性,但不要加一些没有必要的注释,不要为了加注释而加注释,比如:
# 给变量 name 赋值为 '张三'
name = '张三'
上面的注释是没有必要的,因为会 Python 的人一眼就能看出 name = '张三' 的含义。注释是辅助人们来阅读代码的,如果代码本来可读性就极高,就没有为它添加注释的必要了。