Python从入门到精通
上QQ阅读APP看书,第一时间看更新

1.7 语句

语句是一个指令块,表示的是一段代码的执行过程。与表达式不同的是,语句通常是没有值的,而表达式一定会产生一个值。举个简单的例子:a = 1 + 2,这条语句表示将表达式1+2的结果赋值给变量a。

1.7.1 条件控制语句

在程序中,经常需要根据某种条件来对代码的执行过程进行控制。大多数编程语言提供了一些控制语句来实现这样的控制过程。

在Python中使用if关键字来定义条件控制语句。所谓条件控制,即当条件发生时,就执行相应的操作。例如,如果明天下雨,那么我会待在家里,否则我会出去爬山。这里,“明天下雨”是一个条件,“明天不下雨”也是一个条件,用编程语言来进行翻译,可以写出如下伪代码。

if  明天下雨:
        待在家里
else:
出去爬山

编程小知识

伪代码,简言之即不能运行的代码,常以自然语言等来描述编程语言中的逻辑过程。

以上伪代码中的else语句表示“否则”的意思,它表达的是“明天不下雨”这个条件。另外,可以同时设立很多条件:如果明天下雨或者刮大风,那么我会待在家里,否则我会出去爬山。

if  明天下雨 or 刮大风:
        待在家里
else:
出去爬山

以上伪代码中的or是逻辑运算操作符,用来连接多个条件,表示多个条件中只要其中一个为真即可。逻辑运算符and表示多个条件中,所有条件必须同时满足。

下面继续添加条件:如果明天下雨或者刮大风,那么我会待在家里;如果明天既不下雨又不刮大风,但是气温很高,那么我会去维多利广场购物;否则我会去爬山。

if  明天下雨 or 刮大风:
        待在家里
elif  明天气温很高:
        去维多利广场购物
else:
出去爬山

以上伪代码中的 elif 是else if的简写,表示“否则,如果”的意思,elif 表达的是在if中的条件不满足的情况下,再根据 elif 的条件进行判断,如果条件满足就执行相应的操作。

在Python中通过elif来表达分支条件时,必须先有if才能有elif,这也是符合现实生活中的语义的。不管是if 还是elif,它们后面的表达式必须能转换为逻辑上的真或假,Python解释器根据表达式的值来判断条件的真假,条件为真就执行相应的指令,条件为假则继续判断其他的条件分支。

Python中的关键字True用来表示条件中的真值,False表示条件中的假值。False等价于数学中的0值,True是非0值。表达式的值如果为0或空值,那么表达式的值就是False,否则就是True。

编程实例:判断计算表达式

实例代码
# 定义a变量
a = 1
# 定义b变量
b = 2
if a+b < 0:
    """
    (1)下面的代码与首行保持缩进,程序中的缩进空格数保持统一
    (2)在1.11节会对Python代码的缩进进行讲解
    """
    print("a+b < 0")
elif a+b < 3:
    # 注意代码缩进
    print("a+b < 3") 
else: 
    # 注意代码缩进
print("a+b >=3")
代码解析

“<”是关系运算符,表示逻辑上的小于,print()是Python中的内置函数,将内容输出到终端。代码中定义了变量a的值为1,变量b的值为2。

Python解释器在执行以上代码时,主要做了以下4步操作。

(1)计算表达式a+b的值,a+b的值等于3。

(2)计算表达式3<0的值,值为假,故不会执行a+b<0下面的代码。

(3)继续判断分支条件elif中的表达式3<3的值,值为假,同样不会执行a+b<3下面的代码。

(4) else语句表示除上述条件之外的条件:a+b不小于0、不小于3,那a+b的值一定是大于或等于3的,故程序会执行else语句下的代码,即print("a+b >= 3")。

1.7.2 循环控制语句

循环结构从字面上来理解,是重复运动的结构。昼夜交替是一种循环结构:从白天到晚上,再从晚上到白天,如此周而复始,生生不息。

编程中的循环结构,即重复执行某一段代码的程序结构。在Python中使用while或for关键字来定义循环控制结构。while结构同if结构一样,后面接表达式,表达式的值如果为真,则会一直执行while结构中的代码。

本节以while做实例演示,伪代码如下。

while True:
"我爱Python"   

在该例子中,程序会不断输出while 结构中的“我爱Python”。通过Python中的关键字break可以退出循环结构。

while True:
    # 代码与首行保持缩进
    "我爱Python"
break 

添加break语句后,输出一次“我爱Python”,就退出了循环。

编程实例:判断计算结果

实例代码
a = 1
b = 2
while a+b < 0: 
    # 代码与首行保持缩进
    print("a+b < 0") 
print("a + b > 0")
代码解析

在这段代码中,定义了变量a的值为1,变量b的值为2。Python解释器在执行以上代码时主要做了以下3步操作。

(1)计算表达式a+b的值,a+b的值等于3。

(2)计算表达式3 < 0的值,值为假,故不会循环执行while结构下面的代码:print("a+b < 0")。

(3) Python解释器最终执行的代码是print("a +b > 0")。

1.7.3 空语句

在Python中用pass 来表示空语句。空语句,顾名思义,即不包含任何语句。使用空语句是为了保持程序结构的完整性,起占位符的作用。

1.7.4 课后习题

请读者完成以下4题。

(1)定义一个字符串变量,然后判断这个字符串值的真假。如何定义一个输出值为假的字符串?

(2)定义一个输出值非0的表达式。

(3)将描述“如果明天天气好并且我有空,那我就去爬山,否则,我得忙工作的事”转换成if语句的伪代码描述。

(4)将描述“如果学好了Python,那我会一直从事Python的开发工作”转换成while语句的伪代码描述。