Python面试题练习
Posted windyrainy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python面试题练习相关的知识,希望对你有一定的参考价值。
1、实现1--100之和
1 #解答一 2 print sum(xrange(101)) 3 4 #解答二 5 s=0 6 for i in xrange(101): 7 s = s + i 8 print s
2、如何在一个函数内部修改全局变量
#coding=utf-8 name = "ryan" #全局变量 def fun(): country = "China" #局部变量 print name global name #声明全局变量 name = "joe" #修改全局变量 print name fun() print name
3、谈下GIL
GIL是python的全局解释器锁,同一进程中假如有多个线程运行,一个线程在运行python程序的时候会霸占python解释器(加了一把锁即GIL),使该进程内的其他线程无法运行,等该线程运行完后其他线程才能运行。如果线程运行过程中遇到耗时操作,则解释器锁解开,使其他线程运行。所以在多线程中,线程的运行仍是有先后顺序的,并不是同时进行。
多进程中因为每个进程都能被系统分配资源,相当于每个进程有了一个python解释器,所以多进程可以实现多个进程的同时运行,缺点是进程系统资源开销大。
4、实现列表去重的方法
#coding=utf-8 #解答一:使用Set集合 a = [1,2,3,3,4,4,4] a = list(set(a)) #解答二 a = [1,2,3,3,4,4,4] b=[] for i in a: if i not in b: b.append(i) a=b #解答三 a = [1,2,3,3,4,4,4] c={} for i in a: if a.count(i) > 1: c.update({a.count(i):i}) for i in c: for j in xrange(i-1): a.remove(c[i])
5、fun(*args,**kwargs)中的*args,**kwargs什么意思?
#*args是用来发送一个非键值对的可变数量的参数列表给一个函数 #**kwargs是用来发送一个不定长度的键值对的参数给一个函数
6、python2和python3的range(100)的区别
#python2返回列表,python3返回迭代器,节约内存
7、一句话解释什么样的语言能够用装饰器?
#函数可以作为参数传递的语言,可以使用装饰器
8、简述面向对象中__new__和__init__区别
以上是关于Python面试题练习的主要内容,如果未能解决你的问题,请参考以下文章