习题4 变量和命名
你已经学会了print和算术运算。下一步要学的是“变量”(variable)。在编程中,变量只不过是用来指代某个东西的名字。程序员通过使用变量名可以让他们的程序读起来更像自然语言。而且因为程序员的记性都不怎么好,变量名可以让他们更容易记住程序的内容。如果他们没有在写程序时使用好的变量名,在下一次读到原来写的代码时他们会大为头疼的。
如果被这个习题难住了的话,想想之前教过的,要注意找到不同点、关注细节。
1.在每一行的上面写一行注释,给自己解释一下这一行的作用。
2.倒着读你的.py文件。
3.朗读你的.py文件,将每个字符也朗读出来。
ex4.py
1 cars = 100
2 space_in_a_car = 4.0
3 drivers = 30
4 passengers = 90
5 cars_not_driven = cars - drivers
6 cars_driven = drivers
7 carpool_capacity = cars_driven * space_in_a_car
8 average_passengers_per_car = passengers / cars_driven
9
10
11 print "There are", cars, "cars available."
12 print "There are only", drivers, "drivers available."
13 print "There will be", cars_not_driven, "empty cars today."
14 print "We can transport", carpool_capacity, "people today."
15 print "We have", passengers, "to carpool today."
16 print "We need to put about", average_passengers_per_car, "in each car."
注意
space_in_a_car中的_是下划线(underscore)字符。如果你不知道怎样输入这个字符的话就自己研究一下。这个字符在变量里通常被用作假想的空格,用来隔开单词。
应该看到的结果
习题4 会话
$ python ex4.py
There are 100 cars available.
There are only 30 drivers available.
There will be 70 empty cars today.
We can transport 120.0 people today.
We have 90 to carpool today.
We need to put about 3 in each car.
附加练习
当我刚开始写这个程序时我犯了个错误,Python告诉我这样的错误信息:
Traceback (most recent call last):
File "ex4.py", line 8, in <module>
average_passengers_per_car = car_pool_capacity / passenger
NameError: name 'car_pool_capacity' is not defined
用你自己的话解释一下这个错误信息,解释时记得使用行号,而且要说明原因。
下面是更多的附加练习。
1.我在程序里用了4.0作为space_in_a_car的值,这样做有必要吗?如果只用4会有什么问题?
2.记住4.0是一个“浮点数”,自己研究一下这是什么意思。
3.在每一个变量赋值的上一行加上一行注释。
4.记住=的名字是等于,它的作用是为东西取名。
5.记住_是下划线字符。
6.将Python作为计算器运行起来,就跟以前一样,不过这一次在计算过程中使用变量名来做计算,常见的变量名有i、x、j等。
常见问题回答
=(单等号)和==(双等号)有什么不同?
=的作用是将右边的值赋给左边的变量名。==的作用是检查左右两边是否相等。习题27中你会学到==的用法。
写成x=100而非x = 100也没关系吧?
是可以这样写,但这种写法不好。操作符两边加上空格会让代码更容易阅读。
词语间的空格有没有办法不让print打印出来?
你可以通过这样的方法实现:print "Hey %s there." % "you",后面马上就会讲到。
怎样倒着读代码?
很简单,假如说你的代码有16行,你就从第16行开始,和我的第16行比对,接着比对第15行,依此类推,直到全部检查完。
为什么space用了4.0?
这个主要就是为了让你见识一下浮点数,并且提出这个问题。看看附加练习吧。