上面的两个例子:
- 如果屏幕是激活的(screen_active = True),且游戏没有被暂停(game_paused = False),那么游戏被视为是激活的(game_active = True)
- 如果用户既不是管理员(admin_user = False)也不是所有者(owner_user = False),那么就不能编辑(can_edit = False)
如果 if 语句处的条件为 True,即测试通过,就执行第一组缩进的代码块(灰色)
如果测试的结果为 False,就执行第二组缩进的代码块(else 后的)
这次 age 小于 18,条件测试未通过,因此执行 else 代码块中的代码
elif: 即 else if 的缩写形式,python 偏好在无歧义的地方多使用缩写形式,能少打一些字符。
1 处的 if 测试检查一个人是否未满 4 岁,2 处的 elif 代码行其实是另一个 if 测试,它仅在前面的测试未通过时才会运行。
在这里,由于这个人不小于 4 岁,因此第一个条件测试未通过。
程序接着判断,由于这个人未满 18 岁,因此第二个条件测试通过了,Python 打印相应的消息,并跳过 else 代码块。
当用户年满 18 岁时,前两个条件测试都不能通过。在这种情况下,将执行 else 代码块,指出门票价格为 40 美元。
将数值 0、空值 None、空字符串“”、空列表[]、空元组()、空字典{} 用作条件表达式时,Python 都会返回 False。
首先定义一个列表,其中包含比萨店供应的配料。(当然了,如果比萨店供应的配料是固定的,也可以使用一个元组来存储它们。)
然后创建另一个列表,其中包含顾客点的配料,注意其中包含了一个比萨店不存在的配料 'french fries'。
接下来,遍历顾客点的配料列表。在这个循环中,对于顾客点的每种配料,我们都会通过箭头处 if 语句块来检查它是否在披萨店供应的配料列表中。
如果答案是肯定的,就将其加入比萨,否则打印一条消息,告诉顾客不供应这种配料。
可选拓展建议配合阅读《流畅的 Python》等进阶书籍