原文链接: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 = 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."
输出结果如下:
c:\>python ex30.py
We 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、对面上面的每一行代码用英文描述它们都做了什么。