Python 第4章课后习题参考答案

第4章课后习题参考答案
一、单选题

  1. 表达式[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]
  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}
  3. 已知 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]
  4. 已知字典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’}
  5. 关于 Python 的列表,以下选项中描述错误的是______。(答案为A)
    A. 列表的长度不可变 B. 列表用[]表示
    C. 列表是一个可以修改数据项的序列类型 D. 使用 list()可以创建一个空列表
  6. ______是 Python 的映射类型。(答案为B)
    A. 元组 B. 字典
    C. 字符串 D. 列表
  7. 下列程序输出结果是______。(答案为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
  8. 下列语句,可用于创建列表的是______。(答案为B)
    A. (1,2,3) B. [1,2,3]
    C. {1,2,3} D. <1,2,3>
  9. 字典中值的数据类型可以是______。(答案为D)
    A. 字典 B. 元组 C. 数值 D. 以上都可以
  10. 下列类型中属于可变类型的是______。(答案为D)
    A. str B. int C. tuple D. list
  11. 下列语句中,能创建元组的是______。(答案为A)
    A. t=1, B. t=[1] C. t=(1) D. t={1}
  12. 下列能正确创建字典的是______。(答案为A)
    A. a=dict() B. a={x:10,y:20}
    C. a=dict([1,2],[3,4]) D. a=(1,2,3)
  13. 可变参数**kw 收集关键字参数,并将这些参数存储到一个______中。(答案为C)
    A. 列表 B. 元组 C. 字典 D. 数组
  14. 执行下列程序后,屏幕输出结果是______。(答案为C)
    k=11,13,15
    print(k)
    A. 11,13,15 B. [11,13,15]
    C. (11,13,15) D. {11,13,15}
  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<l en(ls):
    if : (SuShu(ls[i])==1)
    s=s+ls[i]
    (n=n+1)
    i=i+1
    print(“n={},s={}”.format(n,s))
    三、编程题
  16. 现有某高校所有教职工新冠疫苗接种调查数据。列表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)
  1. 现有某高校一年级新生视力数据。列表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)

猜你喜欢

转载自blog.csdn.net/weixin_50804299/article/details/128466827