• 上海python14期第二次阶段性考试


    上海python14期第二次阶段考

    1 介绍

    满分80分

     

    考试范围:

    1. 基础题
    2. 机试题

    考试时间:

        周日:

    上午8:30点-12:00点

    下午2:00点-6:00点

     

    2 基础题(60分)

    1.写代码是要避免循环导入,什么是循环导入?

    答:a导入了b模块,b又导入了a模块

    用的时候可以在局部导入,不在全局中使用,避免循环导入

     

    2.模块的搜索顺序

    答:   1、使用纯python代码编写的Py文件

    2、包含一系列模块的名

    3、使用C编写并链接到python解释器中的内置模块

    4、使用C或C++编译的扩展模块

     

    3.以下代码什么时候使用

     

    ```python

    if __name__ ==  "__main__":

           print("test")

    ```

    答:运行文件时用

     

     

     

    4.什么是面向过程编程思想?

           答:解决问题的步骤,即先干什么再干什么,基于面向过程开发程序就好比在设计一条流水线,是一种机械式的思维方式。

     

     

          

    5.有如下变量 请使用hashlib 为其加密 并 加盐

    答:import hashlib

           Str = ‘hello word’

           Md5 = hashlib.md5()

           Md5.update(password.encode(‘utf-8’))

           Salt = ‘一二三四五‘

           Md5.update(salt.encode(‘utf-8))

     

          

     

    6.判断一个对象是否属于str类型,判断一个类是否是另外一个类的子类?

    答:用__dict__

     

    7.定义一个老师类,定制打印对象的格式为‘<name:C_DSB age:18 sex:male>’

    class Teacher:
        def __init__(self,name,age,sex):
            self.name = name
            self.age = age
            self.sex = sex
        def __call__(self, *args, **kwargs):
            print('<name:%s,age:%s,sex:%s>'%(self.name,self.age,self.sex))

    teacher = Teacher('egon',18,'mela')
    teacher()

     

    8.定义一个自己的open类,控制文件的读或写,在对象被删除时自动回收系统资源

    答:

     

    9.什么是反射?反射的4个方法分别是什么?分别的作用是什么?

    答:在程序运行过程中可以’动态‘获取对象信息

                  四种方法:hasatter 判断有无属性

                                        getattr   得到获取属性

                                         setattr    修改

                                          delattr  删除

                               

                               

     

    10.property的作用是什么,简述内部实现原理

    答:伪装成对象的数据属性,对象在访问该属性时会触发功能执行,保证了属性访问的一致性。

     

    11.__str__的作用是什么?

    答:在打印对象时会自动触发,然后将返回值(必须是字符串类型)当做本次打印的结果。

     

     

    12.学生类与,教师类同时拥有,姓名,性别,年龄三个属性,老师类比学生类多一个工资属性,请编写代码以减少重复代码!

    答:class Base:    #定义一个父类,下面继承父类

                 def __init__(self,name,age,sex):

                         self.name = name

                         self.age = age

                         self.sex = sex

           class Student(Base):

                  pass

           class Teacher(Base):

                  def __init__(self,salary):

                         self.salary = salary

     

     

    13.封装就等于隐藏这种说法是否正确,为什么?

    答:仅仅只是一种变形操作,在类外部无法直接访问,但知道了类名和属性就可以拼出名字访问了!

     

    14.类中的 __getattr__ 方法什么时候被执行?

    答:获取属性时运行

     

    15.什么是抽象类?

    答:不能正常实例化

     

    16.OSI七层网路协议分别是哪些 ?

    物理层,数据链路层,网络层,传输层,会话层,表示层,应用层

     

    17.以太协议,IP协议,TCP/UDP协议,分别工作在哪些层

    答:IP工作在网络层,TCP/UDP工作在传输层

     

    18.端口号用于标识什么?

    答:标识全世界范围内独一无二的一个基于肉络通信的应用程序

     

     

    19.简述三次握手与四次挥手的经历

    答:三次握手:第一次:客户端发请求给服务端,第二次:服务端听到请求,然后发个确认给客户端,第三次,客户端确认传输。

    四次挥手:第一次:客户端请求断开连接,第二次:服务端确认请求并准备断开连接,第三次:服务端关闭连接并通知客户端,第四次,客户端确认关闭。

    20.什么是面向对象编程思想?

    答:核心是‘整合‘二字,就是把数据与功能整合到一起的产物。

    21.什么是面向对象三大特性?分别的作用是什么?
    答:封装:把数据与功能都整合到一起

           继承:是一种创建新类的方式,新建的类可以继承一个或多个父类

           多态:指的是一类事物有多种形态


    22.__getattr__在什么时候触发?

    答:调用时触发

    23.__getattrubite__在什么时候触发?
    答:
    24.__call__在什么时候触发?

    答:如果想让一个对象可以加括号调用,需要在该对象类中添加__call__方法!

    25.什么是元类?

    答:就是用来实例化产生类的类

    26.如何用元类控制类的创建,请写代码?

    答:class People;

    def __init__(self,name,age):

    self.name = name

    self.age = age

    def say(self):

    print(‘%s;%s’%(self.name,self.name))

    print(People.__dict__)

    obj=调用类()

    obj=People(‘egon’,18)

    print(type(obj))


     

    27.对象的绑定方法、类的绑定方法与静态方法的区别是什么?

    答:@classmethod后该函数就绑定到了类,绑定到类的方法就是专门给类用的,对象也可以调用,只不过自动传入的第一个参数仍然是类

    @staticmdthod 为非绑定方法,也称为静态方法,是一个普通函数,因而没有自己传值那么一说

    28.对象的属性查找顺序是什么?

           答:对象-à类—>父类

     

    29.什么是新式类?什么是经典类?

    答:经典类是:深度优先

    新式类是:广度优先

           30.Python面向对象中的多继承的继承关系如何查找?

    答:1、子类会先于父类被栓查

    2、多个父类会根据它们在列表中的顺序被检查

    3、如果对下一个类存在两个合法的选择,选择第一个父类

    3机试题(60分)

    - 选课系统
            1、管理员功能

    -  登录(2分)

    -  注册(2分)

    - 创建学校(5分)

    - 创建课程(5分)

    - 创建老师(5分)

     

    2、学生功能
            -  登录(2分)

    -  注册(2分)

    - 选择学校(5分)

    - 选择课程(5分)

    - 查看分数(5分)

     

    3、老师功能

    -  登录(2分)

    -  查看教授课程(5分)

    -  选择教授课程(5分)

    - 查看课程下学生(5分)

    - 修改分数(5分)

     

     

     

     

  • 相关阅读:
    定时器
    sortable.js 华丽丽的排序
    jqGrid一些操作
    session 共享
    数组排序 和 二分法查找
    关于map
    文件导入
    文件导出
    文件下载
    float 保留两位小数
  • 原文地址:https://www.cnblogs.com/acnjanna2019/p/12732107.html
Copyright © 2020-2023  润新知