- 4.3 嵌套代码块
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)...CallmeIshmael.>>>
这叫做循环,因为 Python 以循环的方式执行里面的代码。它以word = 'Call'赋值开始,使用变量word 命名列表的第一个元素。然后,显示word的值给用户。接下来它回到for语句,执行word = 'me'赋值,然后显示这个新值给用户,以此类推。它以这种方式不断运行,直到列表中所有项都被处理完。
