习题 30: Else 和 If?

前一习题中你写了一些 “if 语句(if-statements)”,并且试图猜出它们是什么,以及实现的是什么功能。在你继续学习之前,我给你解释一下上一节的加分习题的答案。上一节的加分习题你做过了吧,有没有?

  1. 你认为 if 对于它下一行的代码做了什么? If 语句为代码创建了一个所谓的“分支”,就跟 RPG 游戏中的情节分支一样。if 语句告诉你的脚本:“如果这个布尔表达式为真,就运行接下来的代码,否则就跳过这一段。”
  2. 为什么 if 语句的下一行需要 4 个空格的缩进? 行尾的冒号的作用是告诉 Python 接下来你要创建一个新的代码区段。这根你创建函数时的冒号是一个道理。
  3. 如果不缩进, 会发生什么事情? 如果你没有缩进,你应该会看到 Python 报错。Python 的规则里,只要一行以“冒号(colon)” : 结尾,它接下来的内容就应该有缩进。
  4. 把习题 27 中的其它布尔表达式放到 if语句 中会不会也可以运行呢?试一下。 可以。而且不管多复杂都可以,虽然写复杂的东西通常是一种不好的编程风格。
  5. 如果把变量 people, cats, 和 dogs 的初始值改掉, 会发生什么事情? 因为你比较的对象是数字,如果你把这些数字改掉的话,某些位置的 if 语句会被演绎为 True,而它下面的代码区段将被运行。你可以试着修改这些数字,然后在头脑里假想一下那一段代码会被运行。

把我的答案和你的答案比较一下,确认自己真正懂得代码“区段”的含义。这点对于你下一节的练习很重要,因为你将会写很多的 if 语句。

把这一段写下来,并让它运行起来:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
people = 30
cars = 40
buses = 15


if cars > people:
    print "We should take the cars."
elif cars < people:
    print "We should not take the cars."
else:
    print "We can't decide."

if buses > cars:
    print "That's too many buses."
elif buses < cars:
    print "Maybe we could take the buses."
else:
    print "We still can't decide."

if people > buses:
    print "Alright, let's just take the buses."
else:
    print "Fine, let's stay home then."

你应该看到的结果?

$ python ex30.py
We should take the cars.
Maybe we could take the buses.
Alright, let's just take the buses.
$

加分习题?

  1. 猜想一下 elifelse 的功能。
  2. cars, people, 和 buses 的数量改掉,然后追溯每一个 if 语句。看看最后会打印出什么来。
  3. 试着写一些复杂的布尔表达式,例如 cars > people and buses < cars
  4. 在每一行的上面写注解,说明这一行的功用。

Project Versions

Table Of Contents

Previous topic

习题 29: 如果(if)

Next topic

习题 31: 作出决定

This Page

新疆时时彩开奖现场 时时彩99 时时彩和值尾数是什么 免费江西时时彩软件 金诺时时彩软件的公式
江西时时彩走势图dbshishicai88 江西时时彩开奖时间段 江西时时彩选号专家推荐 重庆时时彩软件助手 谁玩江西时时彩
江西时时彩平台网址 时时彩软件免费下载基地 时时彩后三万能7码 世爵时时彩平台333 时时彩平台开户
重庆时时彩黄金计划 内蒙古时时彩软件 飞腾时时彩工作室 时时彩三星软件下载 时时彩最好的独胆技巧
时时彩平台源码java 幸运农场走势图 新疆十一选五多少期 牛牛射 北京快乐8官网
云南11选5走势图技巧 11选5多乐彩大赢家 梭哈平台 有声小说下载 北京pk10玩法技巧攻略
贵州快三开奖结果等 极速赛车艺术字 诈金花游戏单机版下载 118比分直播 江西快三
pc蛋蛋官网 新疆风采35选7开奖 云南时时彩012 多乐彩走势图 山西十一选五遗漏 任五 遗漏走势