《Think Python 2e》作业实现(二): 变量、表达式和语句
这是什么?
这里是《Think Python 2e》作业实现 !在这里将记录《Think Python 2e》作业的练习记录、终端信息和结果分析。
- 这是《Think Python 2e》哪个版本的作业?
《Think Python:如何像计算机科学家一样思考》第二版。这里主要参考了一个中文网页版《Think Python 2e》中译本。- 可以当成《Think Python 2e》参考答案吗?
这里主要记录了我自己完成作业时所产生的成果及习题总结,基本未参考教材所提供的答案,未免有失规范,参考答案建议还是以 绿茶出版社官方代码 为准。- 不同的解释器版本结果不尽相同,这里用的哪个版本Python解释器?
这里用了Python 3.8.6版解释器,部分用安卓Pydroid 4.01_arm64中的3.8.3版Python解释器,在线解释器用教程推荐的PythonAnywhere中的3.8版Python解释器。
习题2-1:在交互模式中故意犯错
【习题 2.1.1】 42 = n 合法吗?
- 练习记录:
>>> 42 = n
File "<stdin>", line 1
SyntaxError: cannot assign to literal
- 终端信息:
序号 | 终端信息 | 含义 |
---|---|---|
1 | SyntaxError: cannot assign to literal | 不能赋值给文字 |
- 结果分析:只能把后面的值赋值给前面的变量,而数字是无效的变量名
【习题 2.1.2】 那么 x = y = 1呢?
- 练习记录:
>>> x = y = 1
>>> x
1
>>> y
1
- 结果分析:同时为两个变量赋值是可以的
【习题 2.1.3】 有些语言中,每个语句都需要以分号(;)结尾。如果你在 Python 语句的结尾放一个分号,会有什么情况?
- 练习记录:
>>> x = y = 1
>>> print(x);
1
>>> print(x); print(y)
1
1
- 结果分析:Python语句用分号(;)结尾,解释器就解析成分号后的内容为另一个语句
【习题 2.1.4】 如果在语句结尾放的是句号(.)呢?
- 练习记录:
>>> print(x); print(y).
File "<stdin>", line 1
print(x); print(y).
^
SyntaxError: invalid syntax
- 终端信息:
序号 | 终端信息 | 含义 |
---|---|---|
1 | SyntaxError: invalid syntax | 无效语法 |
- 结果分析:Python语句中不能用句号(.)结尾
【习题 2.1.5】 在数学标记中,对于 x 乘以 y,可以这么表达:xy。在Python中这样尝试会有什么结果?
- 练习记录:
>>> x = 2
>>> y = 4
>>> x * y
8
>>> xy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'xy' is not defined
>>> x y
File "<stdin>", line 1
x y
^
SyntaxError: invalid syntax
- 终端信息:
序号 | 终端信息 | 含义 |
---|---|---|
1 | NameError: name ‘xy’ is not defined | xy未定义 |
2 | SyntaxError: invalid syntax | 无效语法 |
- 结果分析:解释器把
xy
解析成一个新的未定义或者赋值的值,而把x y
解析成两个值,所以是无效的语法
习题2-2:用Python解释器做计算器
【习题 2.2.1】 半径为 r r r 的球体的体积是 ( 4 / 3 ) π r 3 π r ^ 3 πr3。半径为 5 的球体体积是多少?
- 练习记录:
>>> (4 / 3) * 3.14 * 5**3
523.3333333333334
【习题 2.2.2】 假设一本书的定价是24.95美元,但是书店打了40%的折扣(6折)。运费是一本3美元,每加一本加75美分。60本书的总价是多少?
- 练习记录:
>>> 24.95 * ((100 - 40) / 100) * 60 + 3 + .75*59
945.4499999999999
【习题 2.2.3】 如果我上午6:52离开家, 以放松跑的速度跑1英里(每英里耗时8分15秒),再以 节奏跑的速度跑3英里(每英里耗时7分12秒),之后又以放松跑的速度跑1英里,我什么时候回到家吃早饭?
- 练习记录:
>>> 6 * 3600 + 52 * 60 + (8 * 60 + 15) + (7 * 60 + 12) * 3 + (8 * 60 + 15)
27006
>>> 27006 // 3600
7
>>> (27006 - 7 * 3600) // 60
30
>>> 27006 - 7 * 3600 - 30 * 60
6
- 结果分析:
- 到家吃早饭时间为7时30分6秒
//
为整除运算符