[Python]小甲鱼Python视频第052课(像极客一样去思考)课后题及参考解答
# -*- coding: utf-8 -*- """ Created on Wed Mar 27 00:11:46 2019 @author: fengs """ """ 0. 请问以下代码会打印什么内容? >>> def func(): pass >>> print(type(func())) A. <type 'function'> B. <type 'tuple'> C. <type 'NoneType'> D. <type 'type'> 调用了func() 函数,返回了None,应该是选C. """ """ 1. 请问以下代码会打印什么内容? >>> print(type(1J)) A. <type 'unicode'> B. <type 'int'> C. <type 'str'> D. <type 'complex'> 单位虚数表示方法,应该是D。 """ """ 2. 请问以下代码会打印什么内容? >>> print(type(lambda:None)) A. <type 'NoneType'> B. <type 'function'> C. <type 'int'> D. <type 'tuple'> lambda表达式是函数对象,应该是B """ """ 3. 请问以下代码会打印什么内容? >>> a = [1, 2, 3, "FishC", ('a', 'b', 'c'), [], None] >>> print(len(a)) A. 13 B. 7 C. 6 D. 5 7个元素,答案是B """ """ 4. 请问以下代码会打印什么内容? class A: def __init__(self, x): x = x + 1 self.v1 = x class B(A): def __init__(self, x): x = x + 1 self.v2 = x >>> b = B(8) >>> print("%d %d" % b.v1, b.v2) A. 9 10 B. 9 9 C. 10 10 D. 抛出异常 抛出异常(D). 异常1: class A中有语法错误 异常2: class B的构造函数中没有调用父类的构造函数v1不存在 异常3: print % 后的匹配项应该是元组(需要匹配多个时),不能直接用逗号隔开 """ class A: def __init__(self, x): x = x + 1 self.v1 = x class B(A): def __init__(self, x): x = x + 1 self.v2 = x super().__init__(x) b = B(8) print("%d %d" % (b.v1, b.v2)) """ 5. 请问以下代码会打印什么内容? class A: def __init__(self, x): self.x = x x = 666 >>> a = A() >>> a = A(888) >>> a.x A. 666 B. 888 C. None D. 抛出异常 选D,在 a = A() 时就会出异常 关键字参数x没有默认值,若要考察a.x的输出,应该是B,构造函数中的x是局部变量,不是成员变量self.x """ """ 6. 请问以下代码会打印什么内容? values = [1, 1, 2, 3, 5] nums = set(values) def checkit(num): if num in nums: return True else: return False for i in filter(checkit, values): print(i, end=' ') A. 1 2 3 5 B. 1 1 2 3 5 C. 1 2 3 4 3 2 1 D. 抛出异常版权 D 抛出异常,语法缩进错误,for后面的内容,若不考虑缩进问题,应该选 B """ """ 7. 请问以下代码会打印什么内容? values = [1, 1, 2, 3, 5] def transform(num): return num ** 2 for i in map(transform, values): print(i, end=' ') A. 1 1 4 9 25 B. 1 1 2 3 5 C. 0.5 0.5 1 1.5 2.5 D. 2 2 4 6 10 选 A..映射出来的结果是个列表,可以迭代打印出来 """ """ 8. 请问以下代码会打印什么内容? class A: def __init__(self, x): self.x = x a = A(100) a.__dict__['y'] = 50 print(a.y + len(a.__dict__)) A. 2 B. 50 C. 51 D. 52 选D, 50+2 """ """ 9. 请问以下代码会打印什么内容? class A: def __init__(self): pass def get(self): print(__name__) >>> a = A() >>> a.get() A. A B. a C. __main__ D. _A__ 选C,当成独立代码来执行,当前模块名为 __main__ """ """ 10. 请问以下代码会打印什么内容? country_counter = {} def addone(country): if country in country_counter: country_counter[country] += 1 else: country_counter[country] = 1 addone('China') addone('Japan') addone('China') addone("American") print(len(country_counter)) A. 0 B. 1 C. 2 D. 3 选D,相同的不会新建key """ """ 11. 请问以下代码会打印什么内容? dict1 = {} dict1[1] = 1 dict1['1'] = 2 dict1[1.0] = 3 result = 0 for each in dict1: result += dict1[each] print(result) A. 2 B. 3 C. 5 D. 6 选 1.0和1是同一个,3覆盖1 """ """ 12. 请问以下代码会打印什么内容? def dostuff(param1, *param2): print type(param2) dostuff('apples', 'bananas', 'cherry', 'dates') A. <type 'int'> B. <type 'str'> C. <type 'tuple'> D. <type 'dict'> 选C,成为元组,在python2下才能跑,python 3下需要括号 """ """ 13. 请问以下代码会打印什么内容? class A: def __init__(self, a, b, c): self.x = a + b + c a = A(1,2,3) b = getattr(a, 'x') setattr(a, 'x', b+1) print a.x A. 1 B. 2 C. 6 D. 7 选D,不过要注意语法 print(a.x) """ """ 14. 请问以下代码会打印什么内容? list1 = [1, 2] list2 = [3, 4] dict1 = {'1':list1, '2':list2} dict2 = dict1.copy() dict1['1'][0] = 5 result = dict1['1'][0] + dict2['1'][0] print(result) A. 5 B. 6 C. 8 D. 10 浅拷贝,只拷贝了根级对象,修改一个都要修改,输出10, 选D """ """ 15. 请问以下代码会打印什么内容? import copy list1 = [1, 2] list2 = [3, 4] dict1 = {'1':list1, '2':list2} dict2 = copy.deepcopy(dict1) dict1['1'][0] = 5 result = dict1['1'][0] + dict2['1'][0] print(result) A. 5 B. 6 C. 8 D. 10 选B,深拷贝,树结构全部拷贝一遍 5+1 """
~不再更新,都不让我写公式,博客园太拉胯了