欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python笔试题汇总

程序员文章站 2022-06-04 16:50:02
...

欢迎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、使用一个装饰器,查看函数的运行时间,有什么作用

二、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

相关标签: python 笔试题