2021Python基础面试题,简单好用,实践经验
Posted 程序员唐丁
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021Python基础面试题,简单好用,实践经验相关的知识,希望对你有一定的参考价值。
1、请简单介绍一下Python的单例模式
单例模式有以下特征:1、单例类只能有一个实例;2、必须自行创建这个实例;3、必须自行向整个系统提供这个实例。
实现方法之一使用__new__方法
原理:new方法执行先于init方法
class Person(object):
_instance = None
def __new__(cls, *args, **kwargs):
if not cls._instance:
cls._instance = super().__new__(cls, *args, **kwargs)
return cls._instance
2、Python的数据结构有哪些,哪些是可变的?哪些不可变?
可变:列表、集合、字典
不可变:数值、元组、字符串
3、Python是如何进行内存管理的?
从三个方面来说,一是对象的引用计数机制,二是垃圾回收机制,三是内存池机制。
4、python之禅?
import this
大概意思:优美胜于丑陋,简洁胜于复杂
5、Python中单下划线、双下划线、头尾双下划线的区别?
- 头尾双下划线一般是系统定义的变量
- 单下划线类似于Java中被protected修饰的变量,只能允许其本身与子类进行访问
- 双下划线类似于Java中被private修饰的变量,只能允许其本身进行访问
6、Python中的装饰器有什么作用?
装饰器本身是个嵌套函数,可以在不改变被修饰函数的情况下,扩展被修饰函数的功能
7、当被修饰函数有多个装饰器时,执行顺序是怎样的?
- 装饰器函数在被装饰函数定义好后立即执行。多个装饰器的调用顺序是自下往上的
- 被装饰函数执行时,装饰器的执行顺序是从上往下的
8、Python如何删除list中重复的元素
先转成set后再转成list,利用了集合的不可重复性
9、Python中pass语句的作用是什么?
不执行任何操作,用作占位符
10、Python中赋值、浅拷贝和深拷贝的区别?
-
赋值:创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个。
-
浅拷贝:创建一个新的对象,如果引用的方式修改其中一个对象,另外一个也会改变
-
深拷贝:创建一个新的对象,并且递归的复制它所包含的对象,修改其中一个,另外一个不会改变
11、正则匹配中.*和.*?的区别?
不带问号的是贪婪匹配,带问号的是非贪婪匹配
12、re中match()和search()的区别?
- match()必须从头开始匹配
- search()可以在任何位置开始匹配
13、python中单引号、双引号、三引号的区别?
单引号和双引号没区别,三引号可以直接换行
14、什么是Python的列表表达式?
[表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] ]
15、写一个Python的三元表达式?
"male" if flag==1 else "female"
16、python中的多线程能充分发挥cpu的性能吗?
不能,因为Python的默认解释器CPython有GIL(全局解释器锁),所以任何时刻只有一个线程在运行。
17、Python的字典中的键具有什么特性?
不可变性
18、解释一个Python中进程、线程和协程的区别?
-
进程是系统资源分配的基本单位
-
线程是轻量级进程,一个进程可以有多个线程,一个进程下的多个进程可以共享进程的资源。且进程和线程都由操作系统控制。
-
协程又称为微线程,由用户程序自己控制。
19、简单说一下Flask和Django的区别?
Django: 大而全,但是耦合性高。Auth,Permission,admin基本没用
开发快,符合MVC模式
Flask: 微框架,很小巧。需要哪些功能,自己装。
需要熟悉MVC模式
20、Python类中有哪些方法?
实例方法、类方法、静态方法,其中类方法和静态方法不需要初始化实例即可调用。
本公众号现提供以下服务:教务系统成绩和课表查询、四六级查询、小说和影视资源获取、教资成绩查询(即将上线)、专利查询(即将上线)、计算机等级考试查询(即将上线)
公众号承接安卓自动化脚本、网站、微信小程序等程序开发,有需要的伙伴欢迎洽谈~~
以上是关于2021Python基础面试题,简单好用,实践经验的主要内容,如果未能解决你的问题,请参考以下文章