[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

"""

  

posted @ 2019-03-27 00:53  Alimy  阅读(561)  评论(0编辑  收藏  举报