月考题:
python 全栈11期月考题
一 基础知识:(70分)
1.文件操作有哪些模式?请简述各模式的作用(2分)
2.详细说明tuple、list、dict的用法,以及它们的特点(3分)
3.解释生成器(generator)与函数的不同,并实现且使用简单generator(3分)
4.如何理解lambda函数/表达式(2分)
5.a=10
b=20
def test(a,b):
print(a,b)
c = test(b,a)
print(c)
上述代码中,打印出来的值a,b,c分别是什么?为什么?(4分)
6. 描述一下@property是做什么用的,简单写一个实例并执行(4分)
7.d={'k1':'v1','k2':[1,2,3],('k','3'):{1,2,3}}(4分)
请用程序实现:
1)输出上述字典中value为列表的key(2分)
2)如果字典中的key是一个元祖,请输出对应的value值。(2分)
3)d[('k','3')]对应的value是一个什么数据类型(1分)
8.如果不使用@wrapper装饰器,请在a()之前加入一句代码,达到相同的效果(2分)
def wrapper(func):
def inner(*arg, **kwargs):
func(*arg, **kwargs)
return inner
@wrapper
def a(arg):
print(arg)
a()
9.请处理文件7th_questions,输出所有以'T'开头的行(5分)
10.读登陆文件夹中的代码,请为这段代码画流程图(8分)
11 默写10个字符串对象的内置方法,描述它的作用(5分)
12.有如下代码,写出调用的顺序以及结果(5分)
def f1():
print('funcname is f1')
def f2():
print('funcname is f2')
return 1
def f3(func1):
ll = func1()
print('funcname is f3')
return ll
print(f3(f2))
13. 创建一个闭包函数需要满足哪几点?(2分)
14.将时间打印出成一个2017/10/01 18:08:15的格式(3)
将 "2017-11-18 17:43:43" 转换为结构化时间
15.用什么模块能知道文件夹存不存在?(1)
怎么获取这个文件夹的大小?(2)
16 简单解释Python中static method(静态方法)和class method(类方法)(2)
17.请描述一下__new__方法和__init__的区别以及是做什么的(2)
18. 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?(编程题)(5)
19.有这个一个test2文件,文件中模拟一个网站的页面定义了多个函数,现在有个需求是不使用if,else条件语句,进行判断我想访问那个页面
例如:
请输入你要访问的url>>>:login
他就提示我们 ---- 这是一个登陆页面!说明登陆成功了
20.实现一个发红包的编程题(使用random)编程题
二 面向对象(30分)
1.请简述类、对象、实例化、实例这些名词的含义(2分)
2.面向对象的三大特性是什么?(3分)
3.有一个类定义:(5分)
class Person:
def __init__(self,name,age):
self.name = name
self.age = age
1)初始化10个不同的对象(2)
2)求最高age的对象的name(3)
4. 模拟cs游戏(15分)
1)人物角色分为警察和匪徒两种,定义成两个类(10分)
所有的警察的角色都是police
每个警察都有自己独有名字,生命值,武器,性别
每个都可以开枪攻击敌人,切攻击目标不能是police
所有的警察的角色都是terrorist
每个匪徒都有自己独有名字,生命值,武器,性别
每个都可以开枪攻击敌人,切攻击目标不能是terrorist
2)实例化一个警察,一个匪徒,警察攻击匪徒,匪徒掉血(2分)
3)提取警察类和匪徒类相似之处定义成一个父类,使用继承的方式减少代码重复(3分)
5 读代码(10分)
5(1)
class Base:
def f1(self):
self.f2()
def f2(self):
print('...')
class Foo(Base):
def f2(self):
print('9999')
obj = Foo()
obj.f1()
问题1:面向对象中的self指的什么?(2分)
问题2:运行结果并简述原因(3分)
5(2)
class JustCounter:
__secretCount = 0
def count(self):
self.__secretCount += 1
print(self.__secretCount)
class Bars(JustCounter):
def count(self):
print(self.__secretCount)
counter1 = JustCounter()
counter2 = Bars()
counter1.count()
counter2.count()
print (counter1.__secretCount)
问题1:简述counter1.count()执行流程?(2分)
问题2:运行结果并简述原因(3分)
附加思考题(20分):
有一个类的init方法如下:
class Person:
def __init__(self,name,age,sex,weight):
self.name = name
self.sex = sex
self.age = age
self.weight = weight
假设有100个person的对象,
若两个对象的obj1,obj2的name和sex属性相同
即obj1.name==obj2.name and obj1.sex==obj2.sex
我们认为两个对象为同一个对象,已知一个列表中的100个对象,对这100个对象进行去重。
提示:
重写Person类重的两个内置方法
7th_questions文件内容如下:
One year like any old other year
In a week like any week
Monday lying down, half asleep
People doing what people do
Loving,working,and
getting through no portraits on the walls Of Seventh Avenue
Then Tuesday came and went
Like a helicopter overhead
The letter that she left, cold addressed in red