2.8 练习
1. 什么是数据?什么是数据类型?
2. Python 中的数值类型有哪些?对数值类型能执行什么运算?
3. Python 中的字符串有哪些表示方式?对字符串类型能执行什么运算?
4. Python 中的布尔类型提供了哪两个值?对布尔类型数据能执行什么运算?
5. Python 中的列表类型和其他编程语言中常见的数组类型有何异同?
6. Python 中的字符串类型和列表类型有何异同?
7. Python 中的元组类型与列表类型有何异同?
8. 说 Python 中的变量是动态类型的,这是什么意思?
9. 哪些运算符针对不同类型的数据有不同意义?
10. 利用 Python 计算以下表达式。如果出错,找出原因。
(1)4.0 / 10.0 + 3.5 * 2
(2)10 % 4 + 6 /2
(3)abs(4 ? 20 / 3) ** 3
(4)sqrt(4.5 ? 5.0) + 7 * 3
(5)3 * 10 / 3 + 10 % 3
(6)3L ** 3
11. 将下列数学式用 Python 表达式表示出来。假设已通过 import math 导入了数学库。
(1)(a + b) ´ c
(2)n(n - 1) / 2
(3)
(4)
(5)(y2 - y1)/(x2 - x1)
12. 设计程序:输入球体半径 r,计算球体的体积()和表面积()。
13. 设计程序:输入平面上两个点的坐标(x1,y1)和(x2,y2),计算两点间距离。距离公式为 d = 。
14. 设计程序:输入以英尺英寸为单位的身高数据,转换成以米为单位的数据。(1 英尺=12 英寸=0.305 米)
15. 设计程序:输入 5 个考试分数,计算平均分。
16. 假设已经执行了如下语句:
>>> import string
>>> s1 = "programming"
>>> s2 = "language"
(1)求下列各表达式的值。
a)s1[1]
b)s1[:4]
c)s1[0] + s2[:3]
d)s2[5:len(s2)]
e)"Python " + s2
f)2 * (s1[:2] + s2[-1])
g)string.count(s1,'r') + string.find(s1,'r')
h)string.ljust(string.upper(s2),10)
(2)利用 s1、s2 和字符串操作,写出能产生下列结果的表达式。
a)'gram'
b)'ProgLang'
c)'la la la'
d)' language '
e)'progrAmming lAnguAge'
17. 求下列字符串格式化操作的结果。如果出错,解释原因。
(1)"%s has won %d gold medals." % ("China",38)
(2)"Hello %s." % ("Tom","Tim")
(3)"%0.2f %0.2f" % (3.1416,2.718)
(4)"Time left %02d:%05.2f" % (1,5.432)
(5)"%3d" % ("14")
18. 将下列条件用布尔表达式表示出来:
(1)a 大于 b,或者 a 小于等于 b 且 c 不等于 0。
(2)a 和 b 的差不超过 0.005。
(3)字符串 s 以“水”开头,并且包含子串“酒旗”。
(4)字符串 s1 的长度为 10,或者 s1 在字符串 s2 中出现 2 次。
19. 若 P 表示“x 小于等于 y 并且 x 大于 0”,那么 not P 表示什么?
20. 假设已经执行了如下语句:
>>> s1 = [1,2,3,4]
>>> s2 = ['a','b','c']
求下列各表达式的值。
(1)s1 + s2
(2)2 * s1 + 3 * s2
(3)s1[:3]
(4)s2[0:len(s2)]
21. 将第 20 题中的 s1 和 s2 改为元组,重做(1)~(4)。
22. 设计程序:输入五分制的分数(0~5),输出相应的等级制分数:5=A,4=B,3=C,2=D,1=F,0=F。(提示:仿照程序 2.5 的查找方法)
23. 设计程序:输入百分制的分数(0~100),输出相应的等级制分数:90~100=A,80~89=B,70~79=C,60~69=D,0~59=F。