@zhangyu756897669
2017-08-18T13:21:31.000000Z
字数 2938
阅读 686
python官方文档
在上篇文章中,你知道单个指令的基础知识,程序只是一系列的说明。但是编程的真正实力不仅仅是样运行(或执行)一个指令。 根据表达式的评估,程序可以决定跳过指令,重复,或选择运行的几个指令之一. 实际上,你几乎不希望你的程序从第一行代码开始,执行每一行,直到最后。控制语句可以决定在哪些条件下执行哪些Python指令。
这些流程控制语句直接对应于流程图中的符号,因此我将提供本章讨论的代码的流程图。 Figure 2-1 显示如果下雨该怎么做的流程图。按照从开始到结束箭头所做的路径。
在此流程图中,从开始到结束通常有多种方式。计算机程序中的代码行也是如此。 流程图表示具有菱形的这些分支点,而其他步骤用矩形表示。起始和结束步骤用圆角矩形表示。
但是在您了解流控制语句之前,您首先需要学习如何表示是和否选项,您需要了解如何将这些分支点编写为Python代码。为此,让我们来探索布尔值,比较运算符和布尔运算符。
整数,浮点和字符串数据类型具有无限数量的可能值,布尔数据类型只有两个值:True和False。 (布尔值大写,因为数据类型以数学家乔治·布尔(George Boole)命名.) 当键入Python代码时,布尔值True和False缺少围绕字符串的引号,并且它们总是以大写T或F开头,其余的单词以小写形式.
spam = True
spam
true
True = 2+2
比较运算符比较两个值,并计算为单个布尔值。 Table 2-1 lists the comparison operators. 表2-1列出了比较运算符。
符号 | 含义 |
---|---|
== | 等号 |
< | 小于 |
> | 大于 |
<= | 小于等于 |
= |
大于等于 |
!= | 不等号 |
这些运算符根据您给出的值评估为True或False。现在让我们尝试一些运算符,从==和!=开始。
42 == 42
'hello' = 'hello'
42 < 100
82 > 100
myage = 24
myage > 50
正如你所期望的那样,当两边的值相同时,==(等于)计算结果为True,当两个值不同时,!=(不等于)计算结果为True。 ==和!=运算符实际上可以使用任何数据类型的值。
请注意,整数或浮点值将始终不等于字符串值。表达式42 =='42'❶计算为False,因为Python认为整数42与字符串'42'不同。
==和=运算符之间的区别
你可能已经注意到==操作符(等于)有两个等号,而=运算符(赋值)只有一个等号。很容易将这两个操作者相互混淆。只要记住这些要点:
==操作符(等于)询问两个值是否相同。
=运算符(赋值)将右侧的值放在左侧的变量中。
和and和or是经常使用的两个布尔值(或表达式),因此它们被认为是二进制运算符。如果两个布尔值都为True,则该运算符将一个表达式计算为True;否则,它评估为False。
True and True
True and False
False or False
False or True
不同于and 和 or 运算符, not操作符只对一个布尔值进行操作。NOT 运算符在简单计算中被称为相反的布尔值。
not True
not not not not True
由于比较运算结果为布尔值,因此可以在布尔运算符的表达式中使用它们。
您还可以在表达式中使用多个布尔运算符,以及比较运算符。
(4 < 5) and (5 < 6)
(4 < 5) and (9 < 6)
(1 == 2) or (2 == 2)
2 + 2 == 4 and not 2 + 2 == 5 and 2 * 2 == 2 + 2
条件控制语句通常以称为条件的部分开始,后面跟着一个称为子句的代码块。在了解Python的具体条件控制语句之前,我将介绍一个条件和代码块。
到目前为止,你所看到的布尔表达式都可以被视为条件,这与表达式是一样的;条件在条件控制语句的代码中只是一个更具体的名称。条件总是计算为布尔值True或False。条件控制语句根据其条件是True还是False决定要做什么,几乎每个条件控制语句都使用一个条件。
Python代码行可以按块组合在一起。您可以知道块的开始和结束于代码行的缩进。块有三个规则。
当代码前有缩进时,块开始。
块可以包含其他块。
当缩进减小到零或包含块的缩进时,块结束。
块通过查看一些缩进的代码更容易理解,所以让我们在小游戏程序的一部分找到这些块,如下所示:
name = 'Mary'
password = 'swordfish'
if name == 'mary':
print ('Hello Mary')
if password == 'swordfish':
print('Access granted.')
else:
print('Wrong password.')
if name = 'Zhang Yu'
print ('Hi, Zhang Yu')
name = 'Bob'
if name == 'Alice':
print('Hi, Alice.')
else:
print('Hello, stranger.')
name = 'Dracula'
age = 4000
if name == 'Alice':
print('Hi, Alice.')
elif age < 12:
print('you are not Alice, kiddo.')
elif age > 2000:
print('Unlike you, Alice is not an undead, immortal vampire.')
elif age > 100:
pirnt('You are not Alice, grannie.')
您可以在最后一个elif语句之后有一个else语句。在这种情况下,保证至少有一个(只有一个)的子句被执行。如果每个if和elif语句中的条件都为False,则执行else子句。
name = 'Bob'
age = 30
if name == 'Alice':
print('Hi, Alice.')
elif age < 12:
print('You are not Alice, kiddo.')
else:
print('You are neither Alice nor a little kid.')