python相关问题及答案
1、一行代码实现1-100之和
sum(range(1,101))
2、如何在一个函数内部修改全局变量
a = 1 def test(): global a #利用global修改全局变量 a = 2 print(a) return test() print(a)
3、列出5个python标准库
os、datetime、sys、re、、math
4、字典如何删除键和合并两个字典
dic = {'name':'sunny','age':18,'sex':'female'} del dic['sex'] print(dic) #结果:{'name': 'sunny', 'age': 18} dic1 = {'sex':'female'} dic.update(dic1) print(dic) #结果:{'name': 'sunny', 'age': 18, 'sex': 'female'}
5、谈下python的GIL
6、python实现列表去重的方法(先通过集合去重,再转列表)
li = [1,2,2,3,3] a = set(li) #a : {1, 2, 3} print(list(a)) #a : [1, 2, 3]
7、fun(*args,**kwargs)中的*args,**kwargs什么意思
*args称之为Non-keyword Variable Arguments,无关键字参数;
**kwargs称之为keyword Variable Arguments,有关键字参数;
当函数中以列表或者元组的形式传参时,就要使用*args;
当传入字典形式的参数时,就要使用**kwargs。
8、python2和python3的range(100)的区别
python2返回列表,python3返回迭代器,节约内存
9、一句话解释什么样的语言能够用装饰器?
函数可以作为参数传递的语言,可以使用装饰器
10、python内建数据类型有哪些?
整型-int 布尔型-bool 字符串-str 列表-list 元组-tuple 字典-dict
11、简述面向对象中__new__和__init__的区别
__init__是初始化方法,创建对象后,就立刻被默认调用了,可接收参数。
1)__new__至少要有一个参数xxx,代表当前类,此参数在实例化时由python解释器自动识别
2)__new__必须要有返回值,返回实例化出来的实例,这点在实现__new__时要特别注意,可以return父类(通过super当前类名xxx)__new__出来的实例,或者直接是object的__new__出来的实例
3)__init__有一个参数self,就是这个__new__返回的实例,__init__在__new__的基础上可以完成一些其他初始化的动作,__init__不需要返回值
4)如果__new__创建的是当前类的实例,会自动调用__init__函数,通过return语句里面调用的__new__函数的第一个参数xxx是来保证是当前类实例,如果是其他类的类名,name实际创建返回的就是其他类的实例,其实就不会调用当前类的__init__函数,也不会调用其他类的__init__函数。
12、