问题答案由本人整理
1.基础语法是否熟悉?介绍一下
Python和其他语言最大的区别就是使用行和缩进,而不是大括号({})或者分号(;)来控制类、函数或者逻辑判断。Python使用换行来表示语句的结束。但同时可以用左斜杠()将一行语句分成多行。Python 使用单引号(')、双引号(")和三引号('''或""")来表示字符串。其中单引号和双引号的区别不大,字符串中含有单引号或者双引号时需用转义符号()或双引号及单引号包裹即可。三引号则支持字符串换行。
2.有哪些关键字?解释其作用
Python学习交流群:1004391443
Python中的关键字可以在Python交互模式中输入下面代码查看:
import keyword keyword.kwlist
3. 有哪些内置方法?解释其作用
4.解释一下什么是动态语言?动态强类型是指什么?
动态语言是一类在运行时可以改变其结构的语言:比如新的函数、对象、甚至代码都可以被引进,已有的函数可以被删除或是其他结构上的变化,
动态强类型要分成两部分理解,一部分是动态类型,另一部分就是强类型。
动态类型语言就是在运行时,确定类型的语言。即编译时月类型无关。一般在变量使用之前不需要声明变量类型,而变量的类型通常是有被赋值的值的类型决定。
强类型语言就是强制类型定义的语言。也就是说,一旦一个白能量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。
强类型定义语言是类型安全的语言。
5.是否有编码规范的概念?采用的是那种编码规范
我理解的代码规范就是类似操作指南,最简单的就是变量的命名方式。对于个人来说使用好的编码规范可以提高自己代码的可读性。对于团队而言可以提高团队合作的效率、降低维护成本。
Python 中最有名的编码规范就是PEP 8-Python
Python PEP-8编码风格指南中文版
6.解释一下深拷贝和浅拷贝
深拷贝需要导入copy模块,使用deepcopy()
b = copy.deepcopy(a)
a和b完全拷贝了父对象和及其子对象,两者是完全独立的
浅拷贝使用copy
b = a.copy()
a和b 是独立的对象,但他们的子对象还是指向同一对象(相当于引用)
7.lambda的用法及其作用
下面是一个lambda的例子:
g = lambda x:x+1
lamdba 定义了一个匿名函数,例子中的x为入口参数, x+1为函数体。如果用函数表示的话 :
def g(x): return x+1
lamdba 简化了函数定义的书写形式。lamdba的作用就是减少了单行函数的定义。
8.解释一下闭包及其作用
在计算机科学中,闭包(Closure)是词法闭包(Lexical Closure)的简称,是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。
闭包的作用就是有一些功能需要重用但不足以定义为类的行为就可以使用闭包。闭包会比类占用更少的资源。装饰器就是闭包的一个应用,除此之外闭包还可以用于封装。
9.实现一个简单的装饰器,用来对某个函数的结果进行缓存
import functools import time CACHE = {} def cache_it(func): @functools.wraps(func) def inner(*args, **kwargs): key = repr(*args, **kwargs) try: result = CACHE[key] except KeyError: resuslt = func(*args, **kwargs) CAHE[key] = result return result return inner import functools import time CACHE = {} def cache_it(func): @functools.wraps(func) def inner(*args, **kwargs): key = repr(*args, **kwargs) try: result = CACHE[key] except KeyError: resuslt = func(*args, **kwargs) CAHE[key] = result return result return inner
10.Python中集中容器类型的差别及使用场景有哪些?
11.列表推导式的使用和场景有哪些?
12.介绍一下yield的用法
13.常见的内置库有哪些?具体说明它们的用法
14.介绍一下你了解的 magic method (魔术方法)及其作用
15.解释一下面向对象的概念及其在编程中的作用
16.如何实现单例模式?
17.如何对python对象进行序列化?
18.是否能够熟练编写多线程和多进程程序?
19.使用socke编写一个简单的HTTP服务器,成功返回success即可
20.如何理解Python中的GIL?这对我们的日常开发有什么影响?
21.解释一下协程、线程和进程之间的差别