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。