python笔试题汇总

欢迎python爱好者加入:学习交流群 667279387

一、基本语法

1、什么是lambda函数?它有什么好处?

lambda作为一个表达式,定义了一个匿名函数。lambda和普通的函数相比,就是省去了函数名称而已,同时这样的匿名函数,又不能共享在别的地方调用。

2、介绍一下except的用法和作用

try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理.

try :
<语句> #运行别的代码
except <名字>:
<语句> #如果在try部份引发了'name'异常
except <名字>,<数据>:
<语句> #如果引发了'name'异常,获得附加的数据
else:
<语句> #如果没有异常发生

3、单引号,双引号,三引号的区别

单引号,双引号括字符串,三引号用于自由换行。字符串变量赋值,用单双引号没有关系,但是当字符串中出现单引号时,单引号括起来内部单引号要用反斜杠转义,双引号括起来内部单引号不需要额外处理。
1. 单引号和双引号用法都是一样的,但是如果字符串里有相同的字符时要使用\进行转义。
2. 三引号与他们不同之处:里面是什么内容输出就是什么内容

4、请解释下GIL

Python代码的执行由Python 虚拟机(也叫解释器主循环,CPython版本)来控制,Python 在设计之初就考虑到要在解释器的主循环中,同时只有一个线程在执行,即在任意时刻,只有一个线程在解释器中运行。对Python 虚拟机的访问由全局解释器锁(GIL)来控制,正是这个锁能保证同一时刻只有一个线程在运行。

5、copy和deepcopy的区别

  1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。
  2. copy.deepcopy 深拷贝 拷贝对象及其子对象

7、使用一个装饰器,查看函数的运行时间,有什么作用

扫描二维码关注公众号,回复: 2048202 查看本文章

二、WEB框架

1、在django中定义了两个模型,书籍和作者,书籍有三个字段分别为:title,author,publish_time,作者有三个字段分别为:name,age,address。其中书籍和作者是多对多的关系,查看一本书籍的所有作者和某个作者的全部书籍。

2、django的MTV代表什么

M 代表模型(Model):负责业务对象和数据库的关系映射(ORM)。
T 代表模板 (Template):负责如何把页面展示给用户(html)。
V 代表视图(View):负责业务逻辑,并在适当时候调用Model和Template。

3、简述你使用的web框架是怎样实现MVC模式的。

把数据存取逻辑、业务逻辑和表现逻辑组合在一起的概念有时被称为软件架构的 Model-View-Controller (MVC)模式。 在这个模式中, Model 代表数据存取层,View 代表的是系统中选择显示什么和怎么显示的部分,Controller 指的是系统中根据用户输入并视需要访问模型,以决定使用哪个视图的那部分。
Django 紧紧地遵循这种 MVC 模式,可以称得上是一种 MVC 框架。 以下是 Django 中 M、V 和 C 各自的含义:
M : 数据存取部分,由django数据库层处理。
V : 选择显示哪些数据要显示以及怎样显示的部分,由视图和模板处理。
C : 根据用户输入委派视图的部分,由 Django 框架根据 URLconf 设置,对给定 URL 调用适当的 Python 函数。

4、简述你熟悉的ORM框架的使用机制和实现原理。

三 、编程题

1、请用python实现非阻塞socket通讯

2、请写出一段python代码实现删除一个list里面的重复元素。

如果只是简单的取出重复的元素可以如下操作
>>> a
[1, 5, 2, 1, 9, 1, 5, 10]
>>> set(a)
{1, 2, 10, 5, 9}
如果取出重复的元素之后还要保持原来的顺序可以按照下面的方法

def dedupe(items):
     seen = set()
    for item in items:
        if item not in seen:
            yield item
            seen.add(item)
>>> a = [1, 5, 2, 1, 9, 1, 5, 10]
>>> list(dedupe(a))
[1, 5, 2, 9, 10]

欢迎python爱好者加入:学习交流群 667279387

猜你喜欢

转载自blog.csdn.net/hjxzb/article/details/78430396