4.3 嵌套代码块
大多数编程语言允许我们在条件表达式或者if
语句条件满足时执行代码块。我们在[w for w in sent7 if len(w) < 4]
这样的代码中已经看到条件测试的例子。在下面的程序中,我们创建一个叫word
的变量包含字符串值'cat'
。if
语句中检查len(word) < 5
是否为真。它确实为真,所以if
语句的代码块被调用,print
语句被执行,向用户显示一条消息。别忘了要缩进,在print
语句前输入四个空格。
>>> word = 'cat'
>>> if len(word) < 5:
... print('word length is less than 5')
... ![[1]](/projects/nlp-py-2e-zh/Images/4b5cae275c53c53ccc8f2f779acada3e.jpg)
word length is less than 5
>>>
使用 Python 解释器时,我们必须添加一个额外的空白行,这样它才能检测到嵌套块结束。
注意
如果你正在使用 Python 2.6 或 2.7,为了识别上面的print
函数,需要包括以下行︰
>>> from __future__ import print_function
如果我们改变测试条件为len(word) >= 5
来检查word
的长度是否大于等于5
,那么测试将不再为真。此时,if
语句后面的代码段将不会被执行,没有消息显示给用户:
>>> if len(word) >= 5:
... print('word length is greater than or equal to 5')
...
>>>
if
语句被称为一种控制结构,因为它控制缩进块中的代码将是否运行。另一种控制结构是for
循环。尝试下面的代码,请记住包含冒号和四个空格:
>>> for word in ['Call', 'me', 'Ishmael', '.']:
... print(word)
...
Call
me
Ishmael
.
>>>
这叫做循环,因为 Python 以循环的方式执行里面的代码。它以word = 'Call'
赋值开始,使用变量word
命名列表的第一个元素。然后,显示word
的值给用户。接下来它回到for
语句,执行word = 'me'
赋值,然后显示这个新值给用户,以此类推。它以这种方式不断运行,直到列表中所有项都被处理完。