标签:计算机 class out gmail war 就是 lex 字母 汉字
1、简述 解释型 和 编译型 编程语言?
编译型语言:
解释型语言:
2、Python解释器种类以及特点?
3、位和字节的关系?
4、b、B、KB、MB、GB 的关系?
5、请至少列举5个 PEP8 规范?
6、列举python2和python3的区别?
print ‘a‘
,py3使用print(‘a‘)
;range(n)
返回列表,py3返回迭代器,节约内存;raw_input()
,py3中是input()
7、匿名函数?
需要使用函数但是又不行去命名的情况下使用。
foo = lambda x:x**2
foo()
# 等价于
def foo(x):
return x**2
8、pass的作用?
9、*arg 和 **kwarg作用?
10、is 和 == 的区别
11、简述Python的深浅拷贝
str,tuple
),对 可变容器中的元素(lst,dict
)进行内存地址引用,一旦容器中元素改变,那么引用都会改变;12、Python垃圾回收机制? 2
a=20,b=a
,此对象的引用计数就会加1。当使用del删除变量指向的对象时,如果对象的引用计数不为1,比如3,那么此时只会让这个引用计数减1,即变为2,当再次调用del时,变为1,如果再调用1次del,此时会真的把对象进行删除;13、Python的 可变类型 和 不可变类型?
14、列举常见的内置函数?
dir(__builtin__) # win列出所有内置函数
abs()
pow(x,y) # x**y
round()
dir()
str()
set()
list()
max()
min()
id()
getattr()
setattr()
15、一行代码实现 9*9 乘法表
ele = ''
for x in range(1,10):
for y in range(1,x+1):
ele= ele + '%sx%s=%s' % (x,y,x*y)+ '\t'
ele+='\n'
print(ele)
# 一行代码实现
print('\n'.join('\t'.join(['%sx%s=%s' % (x,y,x*y) for y in range(1,x+1)]) for x in range(1,10)))
16、列举常用模块都有哪些?
time、datetime、collection、re、os、random、json、pickle、hashlib、subprocess。
17、re的match和search区别?
18、正则表达式的贪婪和非贪婪匹配区别?
默认贪婪匹配,匹配越多越好, 非贪婪匹配在pattern后面追加?
!
In [16]: m = re.match('\d+',s)
In [17]: m
Out[17]: <_sre.SRE_Match object; span=(0, 2), match='12'>
In [18]: m = re.match('\d+?',s)
In [19]: m
Out[19]: <_sre.SRE_Match object; span=(0, 1), match='1'>
19、如何实现[‘1’,’2’,’3’]
变成[1,2,3]
?
# 原地修改
lst = ['1', '2', '3']
for k,v in enumerate(lst):
lst[k] = int(v)
print(lst)
# 创建新列表
l1 = [int(x) for x in lst]
print(l1)
# map_reduce原地修改
lst = list(map(lambda x:int(x),lst))
print(lst)
20、如何用一行代码生成[1,4,9,16,25,36,49,64,81,100]
?
print([i**2 for i in range(1,11)])
21、谈谈你对闭包的理解?
22、__new__
和__init__
区别?
__new__
是在实例创建之前被调用的,因为它的任务就是创建一个空实例然后将其返回,是个静态方法;__init__
是当实例对象创建完成后才被调用,可以设置对象属性的一些初始值。23、你知道几种设计模式?
24、编码和解码你了解过么?
编码规则有:
ascii 1byte
gbk 2byte
unicode 2byte 包含与所有字符的映射关系,内存中的通用格式
utf8 可变长,汉字3bytes,字母1byte,传输时候可以用utf8编码
25、列表推导list comprehension和生成器的优劣。
26、什么是装饰器?如果想在函数之后进行装饰,应该怎么做?
27、手写个使用装饰器实现的单例模式?
def singleton(cls):
instance = {}
def _singleton(*args):
if cls not in instance:
# 调用类的init方法,采用dict模式其他类可以重复使用
instance[cls] = cls(*args)
return instance[cls]
return _singleton
@singleton
class People(object):
def __init__(self,name, age):
self.name=name
self.age=age
def add(self):
pass
s = People('alex',23)
s1 = People('kate',28)
print(s==s1) # True
28、使用装饰器的单例和使用其他方法的单例,在后续使用中,有何区别?
29、手写正则邮箱地址
pattern = '[1-9a-z]+@(qq|126|163|gmail|foxmail|yahoo)\.com'
import re
m = re.match(pattern,s)
print(m.group())
30、多进程与多线程的区别?CPU密集型适合用什么?
31、介绍下协程,为何比线程还快?
标签:计算机 class out gmail war 就是 lex 字母 汉字
原文地址:https://www.cnblogs.com/fqh202/p/9416329.html