第4章课后习题参考答案
一、单选题
- 表达式[1,2]*3 的值为______。(答案为A)
A. [1,2,1,2,1,2] B. [1,2,3]
C. [1,2] D. [1,1,1,2,2,2]
- 已知集合 x={1,2,3}, y={3,4,5},则 x-y 结果是______。(答案为A)
A. {1,2} B. {1,2,3}
C. {1,2,4,5} D. {4,5}
- 已知 x=[10,20,30,40,50,60,70],执行 x[1:-2]的结果是______。(答案为B)
A. [20, 30, 40, 50, 60] B. [20, 30, 40, 50]
C. [20, 30, 40] D. [30, 40, 50]
- 已知字典x={“red”:1,“green”:2},执行语句x[3]="blue"之后,则x的值为______。(答案为D)
A. {‘red’: 1, 3: ‘blue’} B. {3: ‘blue’, ‘green’: 2}
C. {‘red’: 1, ‘green’: 2, ‘blue’:3 } D. {‘red’: 1, ‘green’: 2, 3: ‘blue’}
- 关于 Python 的列表,以下选项中描述错误的是______。(答案为A)
A. 列表的长度不可变 B. 列表用[]表示
C. 列表是一个可以修改数据项的序列类型 D. 使用 list()可以创建一个空列表
- ______是 Python 的映射类型。(答案为B)
A. 元组 B. 字典
C. 字符串 D. 列表
- 下列程序输出结果是______。(答案为B)
x=[10,20,30,40]
s=0
for i in x:
if i>30:
break
s=s+i
print(s)
A. 30 B. 60 C. 100 D. 0
- 下列语句,可用于创建列表的是______。(答案为B)
A. (1,2,3) B. [1,2,3]
C. {1,2,3} D. <1,2,3>
- 字典中值的数据类型可以是______。(答案为D)
A. 字典 B. 元组 C. 数值 D. 以上都可以
- 下列类型中属于可变类型的是______。(答案为D)
A. str B. int C. tuple D. list
- 下列语句中,能创建元组的是______。(答案为A)
A. t=1, B. t=[1] C. t=(1) D. t={1}
- 下列能正确创建字典的是______。(答案为A)
A. a=dict() B. a={x:10,y:20}
C. a=dict([1,2],[3,4]) D. a=(1,2,3)
- 可变参数**kw 收集关键字参数,并将这些参数存储到一个______中。(答案为C)
A. 列表 B. 元组 C. 字典 D. 数组
- 执行下列程序后,屏幕输出结果是______。(答案为C)
k=11,13,15
print(k)
A. 11,13,15 B. [11,13,15]
C. (11,13,15) D. {11,13,15}
- 已知 a={2,4,7,10},b={1,2,7},则表达式 a&b 的值是______。(答案为A)
A. {2,7} B. {4,10}
C. {1,2,4,7,10} D. {1,2,7}
二、程序改错题
程序功能:统计给定列表中素数个数,计算它们的和,并输出。
def SuShu(a): #“”“判断素数”“”
result=0
for j in range(2,a):
if(a%j==0):
result=0
break;
else:
result=1
return result
ls=[11,27,97,87,23,29,231,187,37,68]
n=i=0
(s=0)
while i if : (SuShu(ls[i])==1)
s=s+ls[i]
(n=n+1)
i=i+1
print(“n={},s={}”.format(n,s))
三、编程题
- 现有某高校所有教职工新冠疫苗接种调查数据。列表s中的数据是教职工年龄,列表t是对应的调查结果,1表示同意接种,0表示暂不接种。请编写程序统计其中30~50岁(包括30岁和50岁)同意接种疫苗的教职工数。
s=[58,43,38,51,38,45,26,38,34,53,25,24,34,59,59,25,50,52,36,27,
42,31,38,54,31,34,50,57,51,59,38,44,39,43,43,36,31,59,30,44,
29,50,32,54,41,37,56,24,43,59,51,26,36,42,44,56,38,25,23,41,
27,28,26,35,22,31,37,59,58,39,49,40,35,24,47,38,53,52,49,35,
23,27,27,46,38,43,28,22,37,25,34,32,52,49,46,34,27,22,38,29]
t=[1,0,1,0,1,1,0,1,1,0,0,0,0,1,0,1,1,0,1,0,0,0,0,1,1,1,1,0,1,
0,0,0,1,1,0,0,1,1,0,0,1,0,1,1,1,1,0,0,1,1,0,0,0,1,1,0,1,0,
1,0,1,0,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,0,1,1,1,0,1,1,
1,0,1,0,0,0,1,1,0,1,0,1,0]
参考答案:
n=0
for i in range(len(s)):
if 50>=s[i]>=30 and t[i]==1:
n=n+1
print(n)
- 现有某高校一年级新生视力数据。列表s中的数据是视力值,列表t是对应的学生性别,其中0表示男生,1表示女生。请编写程序,分别计算男生和女生的平均视力值,输出男生和女生的平均视力值之差,并将计算得到的差(取绝对值,保留两位小数)。
s=[5.0,4.7,3.6,4.7,5.0,4.2,3.5,3.9,5.0,3.2,4.6,4.5,3.5,3.2,4.9,3.3,4.1,4.3,3.2,4.8,4.3,3.5,3.2,3.3,4.1,3.8,4.1,3.6,5.1,4.2,3.6,3.9,4.0,4.5,4.7,3.5,3.8,3.6,4.5,3.2,4.5,3.4,4.5,4.6,4.2,4.2,5.0,3.2,4.0,3.2,4.3,3.0,3.7,4.8,5.0,3.8,4.4,4.7,4.5,3.2,4.1,3.6,4.8,5.0,5.1,4.9,3.9,4.1,4.6,3.0,4.7,4.2,4.6,3.7,5.1,4.5,4.5,4.4,3.3,4.6,3.6,3.7,4.9,3.1,3.0,4.5,4.7,4.0,4.1,5.1,4.7,4.7,4.1,4.2,3.9,4.4,3.9,4.5,3.9,4.8,4.5,3.0,3.3,3.2,3.0,3.5,3.6,4.8,4.6,3.3,4.5,3.7,4.0,3.4,4.8,3.6,4.4,4.4,4.8,5.0,3.2,3.6,4.1,3.3,3.7,3.4,4.1,4.1,3.6,5.1,4.5,3.3,4.6,4.9,4.6,3.8,3.4,4.7,4.7,4.6,4.4,3.0,4.3,4.6,3.8,4.4,3.8,3.0,5.0,3.6,4.7,3.9,4.3,4.4,4.2,4.0,3.8,5.0,4.2,3.4,4.1,4.1,4.0,5.0,4.7,4.8,3.9,4.4,3.5,4.4,3.6,3.2,4.7,3.1,4.4,3.7,3.3,4.5,3.7,4.3,4.7,4.6,5.1,3.2,3.8,3.6,3.7,4.2,4.5,4.5,3.5,3.2,3.8,3.6,3.3,3.7,4.8,3.5,3.1,5.0,4.8,3.6,3.5,3.5,4.1,3.9,4.4,4.1,4.7,3.2,4.3,4.4,3.5,4.5,4.0,3.3,3.3,3.5,4.8,4.6,3.4,4.4,3.4,4.0,3.9,5.1,3.8,3.2,4.9,3.9,4.7,3.1,4.5,3.6,3.2,3.3,4.5,4.4,4.1,3.2,4.7,4.9,3.7,3.7,3.1,3.9,4.5,3.1,3.8,4.5,5.0,5.0,5.0,4.0,5.0,4.9,3.8,4.2,3.4,4.9,4.3,4.0,4.2,3.2,4.2,3.1,4.2,4.0,4.6,4.9,4.7,3.3,3.4,3.8,3.7,4.4,3.4,3.2,4.5,3.8,4.8,4.1,4.1,4.7,3.4,3.7,4.6,4.3,3.3,3.0,4.8,3.7,3.0,4.7,3.4,3.4,3.9,3.6,3.4,4.2,3.7,4.7,3.3,5.0,3.3,4.0,3.1,3.2,4.5,4.1,3.9,3.1,3.2,4.9,3.5,3.8,4.5,3.5,4.2,4.5,3.5,4.7,3.3,4.7,4.3,4.9,4.5,4.5,3.6,4.8,3.8,4.5,3.1,3.5,4.6,4.5,3.9,3.5,5.0,4.1,4.6,4.8,4.8,4.4,3.8,4.5,3.2,3.6,3.4,5.0,4.4,3.7,3.6,3.2,4.5,3.0,3.9,3.6,4.6,4.4,4.4,3.4,3.8,4.4,4.4,3.5,4.9,4.2,4.6,3.4,4.9,3.9,5.1,4.2,4.8,3.1,3.9,4.7,4.8,4.1,3.8,3.4,4.5,4.5,3.1,3.2,3.3,4.0,4.5,3.8,4.5,3.8,4.2,4.4,3.5,4.5,3.3,4.9,3.2,3.0]
t=[0,1,1,1,0,0,1,0,1,0,0,1,1,0,1,1,1,1,1,0,1,0,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0,0,0,1,1,1,0,1,1,0,1,0,1,0,1,0,1,0,0,1,1,0,1,0,1,1,0,1,0,0,1,0,0,0,0,0,1,1,0,0,1,1,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,0,1,0,0,0,1,0,0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,1,0,1,0,1,1,0,0,0,1,0,1,0,1,0,0,1,0,1,1,1,0,1,0,0,0,0,1,0,0,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,0,0,1,1,0,0,1,0,1,0,1,1,1,0,1,1,0,0,0,1,0,1,1,1,1,0,0,0,1,1,0,0,1,1,0,1,1,0,0,0,1,1,1,0,0,1,1,1,0,0,0,0,1,1,0,1,0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,0,1,0,0,0,0,1,0,0,1,1,0,1,0,1,1,1,1,0,1,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,1,0,1,1,1,0,1,0,1,1,0,0,1,0,1,0,0,1,1,1,1,0,0,1,0,0,0,1,0,0,1,0,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,0,0,0,1,1,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,1,1,0,0,0,1,1,0,1,0,0,0,0,0,1,1,1]
参考答案:
d1=d2=n1=n2=0
for i in range(len(s)):
if(t[i]==0):
n1=n1+1
d1=d1+s[i]
else:
n2=n2+1
d2=d2+s[i]
d=d1/n1-d2/n2
if(d<0):
d=-d
print("{0:.2f}".format(d))
3.已知列表:s=[2,0,2,0,0,5,2,3],请编写程序实现如下功能:①按列表元素的值生成对应字符:元素的值大于0,生成对应个数的字符@,若是0生成1个字符&;② 将所有生成的字符连接成一个字符串并输出。
参考答案:
t=""
for c in s:
if c>0:
for j in range(c):
t=t+"@"
else:
t=t+"&"
print(t)
(4)已知字符串:t=“198t2845a7293R489234S892b8347348C82923”,请编写程序实现:
①将相邻的字符交换位置,即第1个和第2个、第3个和第4个、 …交换位置;
②将所有字母转换为大写,并输出。
参考答案:
s=""
n=len(t)
for i in range(0,n,2):
s=s+t[i+1]+t[i]
t=s.upper()
print(t)
(5)现有列表s存储的是一批字符,编写程序实现将其中的小写字母按先后次序连接成一个字符串,并输出。
s=[‘l’,‘e’,‘W’,‘M’,‘h’,‘T’,‘N’,‘r’,‘g’,‘r’,‘W’,‘c’,‘m’,‘Z’,‘W’,‘X’,‘F’,‘F’,‘K’,‘O’,‘P’,‘7’,‘J’,‘J’,‘9’,‘S’,‘C’,‘M’,‘O’,‘W’,‘r’,‘c’,‘n’,‘0’,‘W’,‘A’,‘t’,‘E’,‘Q’,‘E’,‘C’,‘w’,‘k’,‘M’,‘R’,‘E’,‘B’,‘M’,‘y’,‘d’,‘M’,‘s’,‘a’,‘c’,‘E’,‘p’,‘C’,‘F’,‘q’,‘m’,‘O’,‘m’,‘f’,‘Y’,‘b’,‘W’,‘Z’,‘X’,‘d’,‘1’,‘r’,‘X’,‘k’,‘e’,‘k’,‘p’,‘w’,‘O’,‘6’,‘K’,‘j’,‘L’,‘0’,‘t’,‘I’,‘4’,‘T’,‘l’,‘U’,‘b’,‘m’,‘r’,‘m’,‘E’,‘U’,‘Q’,‘8’,‘1’,‘K’,‘i’,‘h’,‘N’,‘V’,‘h’,‘k’,‘J’,‘g’,‘G’,‘s’,‘W’,‘M’,‘4’,‘o’,‘Q’,‘d’,‘Z’,‘b’,‘7’,‘f’,‘5’,‘0’,‘i’,‘1’,‘w’,‘Z’,‘B’,‘J’,‘g’,‘B’,‘S’,‘f’,‘d’,‘n’,‘i’,‘N’,‘v’,‘q’,‘V’,‘1’,‘0’,‘O’,‘3’,‘y’,‘F’,‘2’,‘D’,‘l’,‘z’,‘M’,‘E’,‘v’,‘S’,‘c’,‘3’,‘s’,‘2’,‘A’,‘J’,‘Z’,‘A’,‘q’,‘O’,‘T’,‘v’,‘h’,‘9’,‘s’,‘F’,‘v’,‘O’,‘y’,‘I’,‘U’,‘n’,‘N’,‘H’,‘7’,‘J’,‘x’,‘k’,‘c’,‘x’,‘S’,‘5’,‘j’,‘P’,‘B’,‘m’,‘O’,‘h’,‘p’,‘K’,‘F’,‘2’,‘E’,‘m’,‘I’,‘I’,‘L’,‘3’,‘r’,‘C’,‘U’,‘a’,‘W’,‘k’,‘c’,‘u’,‘b’,‘U’,‘9’,‘m’,‘1’,‘N’,‘t’,‘0’,‘f’,‘w’,‘D’,‘j’,‘S’,‘c’,‘6’,‘G’,‘m’,‘r’,‘f’,‘r’,‘s’,‘9’,‘r’,‘z’,‘E’,‘8’,‘p’,‘b’,‘H’,‘g’,‘Z’,‘W’,‘9’,‘u’,‘G’,‘R’,‘I’,‘H’,‘q’,‘h’,‘p’,‘V’,‘h’,‘o’,‘3’,‘H’,‘E’,‘z’,‘i’,‘u’,‘H’,‘T’,‘q’,‘C’,‘H’,‘W’,‘p’,‘A’,‘9’,‘G’,‘u’,‘o’,‘0’,‘q’,‘k’,‘x’,‘2’,‘Q’,‘8’,‘a’,‘n’,‘l’,‘p’,‘n’,‘E’,‘P’,‘M’,‘e’,‘X’,‘6’,‘6’,‘w’,‘9’,‘D’,‘m’,‘8’,‘c’,‘T’,‘K’,‘B’,‘W’,‘v’,‘u’,‘A’,‘T’,‘F’,‘Z’,‘l’,‘r’,‘K’,‘t’,‘I’,‘3’,‘D’,‘F’,‘1’,‘X’,‘8’,‘3’,‘3’,‘Y’,‘E’,‘u’,‘G’,‘3’,‘T’,‘O’,‘L’,‘o’,‘T’,‘Y’,‘A’,‘M’,‘U’,‘B’,‘C’,‘T’,‘0’,‘r’,‘v’,‘k’,‘S’,‘6’,‘x’,‘J’,‘F’,‘G’,‘B’,‘f’,‘a’,‘w’,‘8’,‘1’,‘N’,‘w’,‘X’,‘O’,‘a’,‘a’,‘s’,‘y’,‘T’,‘K’,‘Q’,‘C’,‘e’,‘1’,‘i’,‘F’,‘L’,‘n’,‘D’,‘I’,‘T’,‘6’,‘m’,‘N’,‘0’,‘k’,‘k’, ‘X’,‘C’,‘r’,‘y’,‘4’,‘W’,‘O’,‘R’,‘P’,‘G’,‘k’,‘M’,‘t’,‘r’,‘H’,‘5’,‘9’,‘k’,‘B’,‘R’,‘i’,‘Z’]
参考答案:
t=""
for c in s:
if 'z'>=c>='a':
t=t+c
print(t)