跟我学Python从小白到入门 之 Part 5—— if 语句

欢迎阅读往期内容,点击下列蓝色字链接可跳转:

跟我学Python从小白到入门——系列文章(更新至第五章 if 语句)

《跟我学Python从小白到入门 之 Part 5—— if 语句》 手绘题图——心流线描

在前一次课程里,我们学习了Part 4 操作列表内容,今天我们开始第五章的学习。

请点击以下蓝色字链接,进入代码编程页面,输入文章中的代码进行练习,点击运行就可以查看运行结果。

Python在线编程页面

首先我们来看看,第五章我们会进入到Python的哪些新领域:

《跟我学Python从小白到入门 之 Part 5—— if 语句》

下面进入今天新课的学习

5.1 简单示例

本章学习的if语句是用来进行条件判断的,满足条件,执行某些语句;不满足条件,执行另一些语句。

我们先举个简单例子来看看 if 语句的执行过程。

《跟我学Python从小白到入门 之 Part 5—— if 语句》 图片发自简书App

上图的第2句和第3句就是一个最简格式完整的if语句的组成。

第2句,用来进行判断条件是否满足;第3句是满足条件之后执行的语句。

完整的看一下这个简单示例:

《跟我学Python从小白到入门 之 Part 5—— if 语句》 图片发自简书App

执行结果如下:

《跟我学Python从小白到入门 之 Part 5—— if 语句》 图片发自简书App

我们可以看到,if语句的最简格式如下:

1. if 语句进行条件判断:

2.    满足条件则执行语句体

3. 条件不满足时,则跳过前一个语句体,继续执行下一个语句。

条件满足后执行的语句,还可以是多个语句,如下图例2.

《跟我学Python从小白到入门 之 Part 5—— if 语句》 图片发自简书App

如果满足条件要执行多个语句,一定要记住,这些语句都必须要缩进。

简单的 if 语句,上面我们已经学习了,就是判断条件是否满足,满足条件则执行后续语句;不满足条件,则跳出if判断体,执行后续语句。

下面我们来看,扩展的if-else语句,这个语句里面的if 还是用来判断,满足条件执行 if 下一语句;不满足条件时,将会执行 else 下一语句。

输入代码和运行结果如下:

《跟我学Python从小白到入门 之 Part 5—— if 语句》 图片发自简书App

上面的代码就多了一个 else,要注意的是 if 和 else 后面都要加冒号。

大家自己练习一下写代码:给x赋一个值,判断,满足条件打印一句话;不满足条件则打印另一句话。

大家练习一下先给x赋值,然后判断x是否是偶数,是则打印OK,否则打印NO

x=1

if x%2==0:

print(‘OK!’)

else:

print(‘NO!’)

5.3 if语句

《跟我学Python从小白到入门 之 Part 5—— if 语句》

首先我们来看5.3.1 简单的if语句

《跟我学Python从小白到入门 之 Part 5—— if 语句》 图片发自简书App

上面的语句判断x是否等于90,如果满足条件就打印ok!

我们给x赋值为90,所以打印出ok!

大家练习一下,看看给x重新赋值为1,会得到什么结果?

5.3.2 if-else语句

《跟我学Python从小白到入门 之 Part 5—— if 语句》 图片发自简书App

前面已经说过了,跳过。

5.3.3 if-elif-else结构

《跟我学Python从小白到入门 之 Part 5—— if 语句》 图片发自简书App

if-elif-else这个结构,比上一个结构多了一个判断,进行了第二次判断。其实也很简单,不多说,但是提醒一下,第二个是ELIF,不是ELSE,初学者有时候会弄错(别问我是怎么知道的:)

5.3.4 使用多个elif代码块

这个是再一次增加一个判断语句,简单,略过。

5.3.5 省略else代码块

《跟我学Python从小白到入门 之 Part 5—— if 语句》 图片发自简书App

这个,省略else就更简单,不多解释了,大家对照输入代码,练习一下。

5.3.6 测试多个条件

《跟我学Python从小白到入门 之 Part 5—— if 语句》 图片发自简书App

多个条件用在程序中有很好的阻断作用,这一点比else更清晰,推荐各位当需要多次判断并得到不同结果时,就使用多个if语句来编程。

小提醒:

大家注意,对照课本进行练习的时候,从66页开始就有变量使用的是两个英文单词的组合。两个单词之间不是空格还是下划线。

我们来复习一下第二章,变量名的命名规则。

变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头,例如,可将变量命名为message_1,但不能将其命名为1_message。

变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名greeting_message可行,但变量名greeting  message会引发错误。

在使用过程中,变量名中使用空格就会出错,我们一般习惯用下划线替代空格,来分割两个单词。

5.4 使用if语句处理列表

《跟我学Python从小白到入门 之 Part 5—— 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 语句》 图片发自简书App

对比,来进行一下代码的输入:

《跟我学Python从小白到入门 之 Part 5—— if 语句》 图片发自简书App

这两种情况下,代码的运行结果如下图。

《跟我学Python从小白到入门 之 Part 5—— if 语句》 图片发自简书App

《跟我学Python从小白到入门 之 Part 5—— if 语句》 图片发自简书App

5.4.3 使用多个列表

书中的示例很清晰,但是对于我这样的英语小白来说,多个陌生的英语单词会干扰正课的学习。

所以,我们在学习过程中,可以用更简洁的例子来替换,更易理解。下面是我自己替换的简单变量和示例:

《跟我学Python从小白到入门 之 Part 5—— if 语句》 图片发自简书App

根据我自己学习经验,学习完以上内容之后,我们再回过头来看看第二节的内容,这样更清晰更容易。

5.2 条件测试

《跟我学Python从小白到入门 之 Part 5—— if 语句》

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 语句》 图片发自简书App

5.2.6 检查特定值是否包含在列表中

5.2.7 检查特定值是否不包含在列表中

这两个内容就是in和not in 的使用,能够在创建一个列表后,轻松地检查其中是否包含特定的值,代码如下图所示:

《跟我学Python从小白到入门 之 Part 5—— if 语句》 图片发自简书App

新课学习完了,我们大展身手的时候到了。

以下示例摘选自《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就可以开启书评新大门。

    原文作者:且听风吟闲翻书
    原文地址: https://www.jianshu.com/p/755d468a7aed
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞