Exercise 30: Else 和 If

来源:互联网 发布:php do while 编辑:程序博客网 时间:2024/06/05 04:43

原文链接:http://learnpythonthehardway.org/book/ex30.html

       在上一节练习中,我们做了一些关于 if 语句的练习,然后让你猜了它是什么以及有什么作用。在学习本节之前我会回答上一节研究训练中的每一个问题。上一节的研究训练你应该做了吧?

1、你认为 if 对于它下一行的代码做了什么? If 语句为代码创建了一个所谓的“分支”,就跟 RPG 游戏中的情节分支一样。if 语句告诉你的脚本,“如果这个布尔表达式值为真,那么就继续执行其下面的代码,否则的话跳过执行。

2、为什么if下面的语句需要四个空格位置的缩进?一行以冒号结尾就是来告诉Python你要准备创建一个新的代码”块“,而缩进四个空格就是来告诉Python哪些代码行是在这个块中的。这就和这本书上半部分提到的当你创建一个函数时做的事情一样。

3、如果不缩进会发生什么?如果不缩进的话,你最有可能就是得到一个错误提示。Python 的规则里,只要一行以“冒号(colon)” : 结尾,它接下来的内容就应该有缩进。

4、你能将Ex 27中的其它布尔表达式放到if语句中吗?试一试。是的,你当然能,并且你想放多复杂的就放多复杂的,虽然放一些真的很复杂的东西一般来说不是一种不好的编程风格。

5、如何你改变 people ,cats ,dogs的初始化值会发生什么事情?因为你 比较的是数值的大小,如果你改变了这些值,某些位置的 if 语句会被演绎为 True,而它下面的代码区段将被运行。你可以试着修改这些数字,然后在头脑里假想一下那一段代码会被运行。

      把你的回答和我的回答进行比较,确保你真的理解了代码”块“的概念。理解代码块对你在下一节练习中非常重要,在那里所有if语句都需要用到它。

输入下面这些代码并运行它。

people = 30cars = 40buses = 15if 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."

输出结果如下:

c:\>python ex30.pyWe should take the cars.Maybe we could take the buses.Alright ,let's just take the buses.

研究训练:

1、试着猜测下 elif 和 else 有什么作用。

2、改变 cars、people和buses的值,然后跟踪每一个if语句看看将会打印什么。

3、尝试用一些更复杂的逻辑表达式,例如: cars > people and buses < cars。

4、对面上面的每一行代码用英文描述它们都做了什么。

学生遇见的常见问题:

如果有多个 elif 代码块也是True会发生什么?
答:如果有多个模块为True的话,那么Python启动和运行顶部的第一个模块代码,所以它只会运行第一个为True的代码块。

0 0
原创粉丝点击