首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

小学生都能理解的Python判断语句教程

The best way to learn a programming language is to write a lot of code and read a lot of code.

在前几篇中,我们已经看到了程序的一些基本构成模块。现在可以利用输入、处理和输出建立一个程序了。我们甚至还可以通过使用GUI让输入和输出更有意思一些。我们可以把输入赋给一个变量,以便以后使用,还可以使用一些数学运算来进行处理。

当然,在我们之前所看过的程序中,总是有一系列语句从上到下精确排列,并交由Python一步一步地执行。如果你想改变这一工作流程,应该怎么做?现在来看可以通过哪些方法对程序的工作进行控制。

判断

日常生活中的有一种判断场景,如下:

如果 Tim 给出的答案正确,就为他加 1 分。

也就是说,Tim给出的答案等于正解的答案时,我们就会给Tim加1分。

上面的“Tim给出的答案等于正解的答案”就是判断的条件,如果这个条件是正确的,那么Tim就会加1分。

如果条件不正确,也就是“Tim给出的答案不等于正解的答案”,我们就不会给Tim加1分。

可见,判断语句只有两个可能答案:真(true)或者假(false)。

Python程序需要能够根据输入做不同的事情,可以使用关键字 if 来判断条件。上面的例子,我们可以用Python的判断语句if写成如下代码:

如果条件为真,就会完成之后,如果条件为假,就会跳回。

下面我们来详细解读下这段代码:

代码块

代码块(block)是一行或放在一起的多行代码。它们都与程序的某个部分相关。在Python中,通过将块中的代码行缩进来构成代码块。

这个例子中if行末尾的冒号告诉Python下面将是一个代码块。这个块包括从前面的if行以下直到下一个缩进的代码行之间的所有缩进代码行。也就是第2行和第3行构成了第1行中if的相应语句块。

如果条件(timsAnswer == correctAnswer)为真,就会完成这个代码块中的所有工作。也就是以下代码:

缩进

在Python中,编写代码时缩进是必不可少的一部分。缩进会告诉Python代码块从哪里开始,到哪里结束。

Python中的一些语句(如if语句)需要一个代码块来告诉它们要做什么。对于if语句,代码块会告诉Python如果条件为真时做什么。

将代码块缩进多远并不重要,只要保证整个代码块缩进的程序是一样的。

Python中有一个惯例:总是将代码块缩进4个空格。在你的程序中最好也采用这种风格。

if语句的基本形式

由此我们可以知道if语句的基本形式如下所示:

ifcondition:

statement_block

如果 "condition" 为 真(True) 将执行 "statement_block" 块语句。

注意:

1、条件后面要使用冒号(:),表示接下来是满足条件后要执行的语句块。

2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。

比较操作符

我们在上述例子中双等号(==)就是一个比较操作符。比较操作符也称为关系操作符,因为它们要判断两边值的关系:相等还是不相等,大于还是小于。给程序判断某个结论的答案是真还是假。

而其他比较操作符更容易记:小于()和不等于(!=)。还可以把 > 或 < 与 = 结合起来表示大于或等于(>=)以及小于或等于(

下面键入7-1代码清单,它是一个比较示例程序,试着用不同输入运行多次,看看会得到什么结果。

在这里我们还要注意的是双等号(==)和等号(=)的区别。

等号(=)用来设置变量或赋值(做某种设置),双等号(==)则用来判断两个东西是否相等(做某种判断是否相等,对还是错)。

再判断

我们已经看到了,如果测试的结果为真,Python会做些什么。不过,如果测试为假,Python又会做一些什么呢?在Python中,有以下3种可能。

elif

如果第一个测试结果为假,可以利用关键字elif(这是else if的简写)让Python再做另一个测试,例如:

在if后面,elif语句你想要多少就可以有多少。

else

如果所有其他测试结果都是假,做其他工作。这要利用else关键字完成。它总是在最后出现,也就是完成if和所有elif语句之后。

继续下一行代码

如果if块后面没有放任何其他东西,程序会继续执行下一行代码(如果有的话),或者会结束(如果再没有更多代码)。

通过以上3种情形,我们可以得到if语句的一般形式:

ifcondition_1:

statement_block_1

elifcondition_2:

statement_block_2

else:

statement_block_3

如果 "condition_1" 为 True 将执行 "statement_block_1" 块语句

如果 "condition_1" 为False,将判断 "condition_2"

如果"condition_2" 为 True 将执行 "statement_block_2" 块语句

如果 "condition_2" 为False,将执行"statement_block_3"块语句

Python 中用elif代替了else if,所以if语句的关键字为:if – elif – else

注意:

1、每个条件后面要使用冒号(:),表示接下来是满足条件后要执行的语句块。

2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。

多个条件的判断

如果想要判断好几个不同的条件该怎么办?假设你要为8岁以上的人创建一个游戏,另外你希望玩家至少上三年级。这就要满足两个条件。下面是判断这两个条件的一种方法:

注意第一个print行缩进8个空格,而不只是4个空格。这是因为每个if都需要自己的代码块,所以都要缩进4个空格。

我们也称这种叫if嵌套语句,在这样的语句中,可以把 if...elif...else 结构放在另外一个 if...elif...else 结构中。如下形式:

if表达式1:语句if表达式2:语句elif表达式3:语句else:语句

elif表达式4:语句

else:语句

and、or和not操作符

and关键字表示两个或两个以上的条件都必须为真才能执行下面的代码块,我们用and关键字来对上面最后的例子更改看看:

两个或两个以上的条件都必须为真,这个if语句执行代码块。

or关键字也是用来把多个条件放在一起。如果使用or,只要任意一个条件为真,就会执行代码块。可以试试以下代码:

还可以用not把比较倒过来,表示相反的判断。

这行代码:

if not (age < 8) :

与这行代码:

if age >= 8 :

两者的含义是一样的。在这两种情况下,如果年龄是8岁或者超过8岁就会执行代码块,如果年龄小于8就不会执行。

总结一些符号

第4 篇中,我们见过诸如+、-、* 和/ 等数学运算符。在本章中,我们了解了比较操作符、== 等。and、or 和not 关键字也是操作符。它们被称为逻辑操作符(logical operator)。这些操作符用来修改比较,可以结合两个或多个比较(and 和or),或者取反(not)。

下列表格列出了目前为止我们讨论过的所有操作符。

你可能要保存这张图,这样下次就能很容易地查阅这个表了。

END

回顾

ˆˆ比较测试和关系操作符。

ˆˆ缩进和代码块。

ˆˆ使用and和 or结合测试。

ˆˆ使用not来进行反向测试。

测试题

运行这个程序会得到什么输出:

基于第一个问题中的程序,如果把my_number 改为25,输出会是什么?

要检查一个数是否大于30 但小于或等于40,要用哪种if 语句?

要检查用户输入的字母“Q”是大写还是小写,要使用哪种if 语句?

动手试一试

一家商场在降价促销。如果购买金额低于或等于10 元,会给10% 的折扣,如果购买金额大于10 元,会给20% 的折扣。编写一个程序,询问购买价格,再显示折扣(10% 或20%)和最终价格。

一个足球队在寻找年龄在10 到12 岁之间的小女孩加入。编写一个程序,询问用户的年龄和性别(m 表示男性,f 表示女性)。显示一条消息指出这个人是否可以加入球队。

额外提示:要合理地建立程序,如果用户不是女孩就不必询问年龄。

你在长途旅行,刚到一个加油站,距下一个加油站还有200 km。编写一个程序确定是不是需要在这里加油,还是可以等到下一个加油站再加油。这个程序应当问下面几个问题。

(1)你的油箱有多大(单位是升)?

(2)油箱有多满(按百分比,例如,半满就是 50%)?

ˆˆ(3)你的汽车每升油可以走多远(km)?

输出应该像这样:

额外提示:程序中包含一个5 升的缓冲区,以防油表不准。

建立一个程序,用户必须输入密码才能使用这个程序。你当然知道密码(因为它会写在你的代码中)。不过,你的朋友要得到这个密码就必须问你或者直接猜,也可以学习足够的Python 知识查看代码来找出密码!

对程序没什么要求,可以是你已经编写的程序,也可以是一个非常简单的程序,只在用户输入正确的口令时显示一条“You’re in!”之类的消息。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180213G0E2TU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券