手绘题图——心流线描欢迎阅读往期内容,点击下列蓝色字链接可跳转:
在前一次课程里,我们学习了Part 4 操作列表内容,今天我们开始第五章的学习。
请点击以下蓝色字链接,进入代码编程页面,输入文章中的代码进行练习,点击运行就可以查看运行结果。
首先我们来看看,第五章我们会进入到Python的哪些新领域:
下面进入今天新课的学习
5.1 简单示例
本章学习的if语句是用来进行条件判断的,满足条件,执行某些语句;不满足条件,执行另一些语句。
我们先举个简单例子来看看 if 语句的执行过程。
跟我学Python从小白到入门 之 Part 5—— if 语句上图的第2句和第3句就是一个最简格式完整的if语句的组成。
第2句,用来进行判断条件是否满足;第3句是满足条件之后执行的语句。
完整的看一下这个简单示例:
跟我学Python从小白到入门 之 Part 5—— if 语句执行结果如下:
跟我学Python从小白到入门 之 Part 5—— if 语句我们可以看到,if语句的最简格式如下:
1. if 语句进行条件判断:
2. 满足条件则执行语句体
3. 条件不满足时,则跳过前一个语句体,继续执行下一个语句。
条件满足后执行的语句,还可以是多个语句,如下图例2.
跟我学Python从小白到入门 之 Part 5—— if 语句如果满足条件要执行多个语句,一定要记住,这些语句都必须要缩进。
简单的 if 语句,上面我们已经学习了,就是判断条件是否满足,满足条件则执行后续语句;不满足条件,则跳出if判断体,执行后续语句。
下面我们来看,扩展的if-else语句,这个语句里面的if 还是用来判断,满足条件执行 if 下一语句;不满足条件时,将会执行 else 下一语句。
输入代码和运行结果如下:
跟我学Python从小白到入门 之 Part 5—— if 语句上面的代码就多了一个 else,要注意的是 if 和 else 后面都要加冒号。
大家自己练习一下写代码:给x赋一个值,判断,满足条件打印一句话;不满足条件则打印另一句话。
大家练习一下先给x赋值,然后判断x是否是偶数,是则打印OK,否则打印NO
x=1
if x%2==0:
print('OK!')
else:
print('NO!')
5.3 if语句
首先我们来看5.3.1 简单的if语句
跟我学Python从小白到入门 之 Part 5—— if 语句上面的语句判断x是否等于90,如果满足条件就打印ok!
我们给x赋值为90,所以打印出ok!
大家练习一下,看看给x重新赋值为1,会得到什么结果?
5.3.2 if-else语句跟我学Python从小白到入门 之 Part 5—— if 语句
前面已经说过了,跳过。
5.3.3 if-elif-else结构跟我学Python从小白到入门 之 Part 5—— if 语句
if-elif-else这个结构,比上一个结构多了一个判断,进行了第二次判断。其实也很简单,不多说,但是提醒一下,第二个是ELIF,不是ELSE,初学者有时候会弄错(别问我是怎么知道的:)
5.3.4 使用多个elif代码块
这个是再一次增加一个判断语句,简单,略过。
5.3.5 省略else代码块跟我学Python从小白到入门 之 Part 5—— if 语句
这个,省略else就更简单,不多解释了,大家对照输入代码,练习一下。
5.3.6 测试多个条件跟我学Python从小白到入门 之 Part 5—— if 语句
多个条件用在程序中有很好的阻断作用,这一点比else更清晰,推荐各位当需要多次判断并得到不同结果时,就使用多个if语句来编程。
小提醒:
大家注意,对照课本进行练习的时候,从66页开始就有变量使用的是两个英文单词的组合。两个单词之间不是空格还是下划线。
我们来复习一下第二章,变量名的命名规则。
变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头,例如,可将变量命名为message_1,但不能将其命名为1_message。
变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名greeting_message可行,但变量名greeting message会引发错误。
在使用过程中,变量名中使用空格就会出错,我们一般习惯用下划线替代空格,来分割两个单词。
5.4 使用if语句处理列表
5.4.1 检查特殊元素
以下示例摘选自《Python从入门到实践》
我们先来看一个简单示例:
cars = ['audi', 'bmw', 'subaru', 'toyota']
for car in cars:
❶ if car == 'bmw':
print(car.upper())
else:
print(car.title())
这个示例中的循环首先检查当前的汽车名是否是'bmw'(见❶)。如果是,就以全大写的方式打印它;否则就以首字母大写的方式打印。
下面来进一步研究如何检查列表,例如某比萨店在制作比萨时,每添加一种配料都打印一条消息。通过创建一个列表,在其中包含顾客点的配料,并使用一个循环来指出添加到比萨中的配料:
requested_toppings = ['mushrooms', 'green peppers', 'extra cheese']
for requested_topping in requested_toppings:
print("Adding " + requested_topping + ".")
print("\nFinished making your pizza!")
上述代码是一个简单的for循环,运行结果如下:
Adding mushrooms.
Adding green peppers.
Adding extra cheese.
Finished making your pizza!
但是,如果比萨店的青椒用完了,该如何处理呢?为妥善地处理这种情况,可在for循环中包含一条if语句:
requested_toppings = ['mushrooms', 'green peppers', 'extra cheese']
for requested_topping in requested_toppings:
❶ if requested_topping == 'green peppers':
print("Sorry, we are out of green peppers right now.")
❷ else:
print("Adding " + requested_topping + ".")
print("\nFinished making your pizza!")
这里在比萨中添加每种配料前都进行检查。
5.4.2 确定列表不是空的
我们要让用户来提供存储在列表中的信息,因此在运行for循环前确定列表是否为空很重要。
下面x用户定义的列表没有任何元素,那么我们判断,这个空列表表明用户想要点一个没有任何配料的普通披萨,打印出最后的显示语句。
跟我学Python从小白到入门 之 Part 5—— if 语句对比,来进行一下代码的输入:
跟我学Python从小白到入门 之 Part 5—— if 语句这两种情况下,代码的运行结果如下图。
跟我学Python从小白到入门 之 Part 5—— if 语句 跟我学Python从小白到入门 之 Part 5—— if 语句5.4.3 使用多个列表
书中的示例很清晰,但是对于我这样的英语小白来说,多个陌生的英语单词会干扰正课的学习。
所以,我们在学习过程中,可以用更简洁的例子来替换,更易理解。下面是我自己替换的简单变量和示例:
跟我学Python从小白到入门 之 Part 5—— if 语句根据我自己学习经验,学习完以上内容之后,我们再回过头来看看第二节的内容,这样更清晰更容易。
5.2 条件测试
5.2.1 检查是否相等
判断变量是否相等用双等号==
我们前面学习过赋值语句,用的是一个等号,x=1,是将1赋给x这个变量。
而x==1,则是对双等号两边的变量和值进行比较,当两个值相等则返回的值是true,当两个值不相等则返回值为false,常常用在if语句后面用来作为条件判断。
“每条if语句的核心都是一个值为True或False的表达式,这种表达式被称为条件测试。Python根据条件测试的值为True还是False来决定是否执行if语句中的代码。如果条件测试的值为True,Python就执行紧跟在if语句后面的代码;如果为False,Python就忽略这些代码。”
5.2.2 检查是否相等时不考虑大小写
这里要用到一个小技巧,我们看看书中怎么说的:
在Python中检查是否相等时区分大小写,例如,两个大小写不同的值会被视为不相等:
>>> car = 'Audi'
>>> car == 'audi'
False
如果大小写很重要,这种行为有其优点。但如果大小写无关紧要,而只想检查变量的值,可将变量的值转换为小写,再进行比较:
>>> car = 'Audi'
>>> car.lower() == 'audi'
5.2.3 检查是否不相等
要判断两个值是否不等,可结合使用感叹号和等号 != ,其中的感叹号表示不,在很多编程语言中都如此。
5.2.4 比较数字
数字就是按照大小来比较,不用多说。
5.2.5 检查多个条件
有两个新的内容,and和or,使用方法是:
1. and的两边,两个条件同时满足,返回值才会为真。
2. or的两边条件只要满足一个,返回值就会为真。
代码和执行结果如下图:
跟我学Python从小白到入门 之 Part 5—— if 语句5.2.6 检查特定值是否包含在列表中
5.2.7 检查特定值是否不包含在列表中
这两个内容就是in和not in 的使用,能够在创建一个列表后,轻松地检查其中是否包含特定的值,代码如下图所示:
跟我学Python从小白到入门 之 Part 5—— if 语句新课学习完了,我们大展身手的时候到了。
以下示例摘选自《Python从入门到实践》
动手试一试
5-8 以特殊方式跟管理员打招呼:创建一个至少包含5个用户名的列表,且其中一个用户名为'admin'。想象你要编写代码,在每位用户登录网站后都打印一条问候消息。遍历用户名列表,并向每位用户打印一条问候消息。如果用户名为'admin',就打印一条特殊的问候消息,如“Hello admin, would you like to see a status report?”。否则,打印一条普通的问候消息,如“Hello Eric, thank you for logging in again”。
5-9 处理没有用户的情形:在为完成练习5-8编写的程序中,添加一条if语句,检查用户名列表是否为空。如果为空,就打印消息“We need to find some users!”。删除列表中的所有用户名,确定将打印正确的消息。
5-10 检查用户名:按下面的说明编写一个程序,模拟网站确保每位用户的用户名都独一无二的方式。创建一个至少包含5个用户名的列表,并将其命名为current_users。再创建一个包含5个用户名的列表,将其命名为new_users,并确保其中有一两个用户名也包含在列表current_users中。遍历列表new_users,对于其中的每个用户名,都检查它是否已被使用。如果是这样,就打印一条消息,指出需要输入别的用户名;否则,打印一条消息,指出这个用户名未被使用。确保比较时不区分大小写;换句话说,如果用户名'John'已被使用,应拒绝用户名'JOHN'。
5-11 序数:序数表示位置,如1st和2nd。大多数序数都以th结尾,只有1、2和3例外。在一个列表中存储数字1~9。遍历这个列表。在循环中使用一个if-elif-else结构,以打印每个数字对应的序数。输出内容应为1st、2nd、3rd、4th、5th、6th、7th、8th和9th,但每个序数都独占一行。
20170921初稿16:17
20170921补充修改17:51
20170921三稿修改完成22:00
PS:不话唠毋宁死
感谢亚马逊的手机版kindle,复制粘贴就可以搞定所有引用的文字,节约了好多时间。
推荐各位写与实体书相关文章的同学,你们可以看看亚马逊有没有电子书,然后下载个kindle的APP就可以开启书评新大门。
网友评论