码迷,mamicode.com
首页 > 编程语言 > 详细

Python面试题练习

时间:2019-04-05 14:25:28      阅读:302      评论:0      收藏:0      [点我收藏+]

标签:去重   全局变量   def   试题   one   方法   war   长度   函数   

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
View Code

2、如何在一个函数内部修改全局变量

技术图片
#coding=utf-8
name = "ryan"   #全局变量
def fun():
    country = "China" #局部变量
    print name
    global name     #声明全局变量
    name = "joe"    #修改全局变量
    print name
fun() 
print name
View Code

3、谈下GIL

技术图片
GIL是python的全局解释器锁,同一进程中假如有多个线程运行,一个线程在运行python程序的时候会霸占python解释器(加了一把锁即GIL),使该进程内的其他线程无法运行,等该线程运行完后其他线程才能运行。如果线程运行过程中遇到耗时操作,则解释器锁解开,使其他线程运行。所以在多线程中,线程的运行仍是有先后顺序的,并不是同时进行。
多进程中因为每个进程都能被系统分配资源,相当于每个进程有了一个python解释器,所以多进程可以实现多个进程的同时运行,缺点是进程系统资源开销大。
View Code

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])
View Code

 5、fun(*args,**kwargs)中的*args,**kwargs什么意思?

技术图片
#*args是用来发送一个非键值对的可变数量的参数列表给一个函数
#**kwargs是用来发送一个不定长度的键值对的参数给一个函数
View Code

6、python2和python3的range(100)的区别

技术图片
#python2返回列表,python3返回迭代器,节约内存
View Code

7、一句话解释什么样的语言能够用装饰器?

技术图片
#函数可以作为参数传递的语言,可以使用装饰器
View Code

8、简述面向对象中__new__和__init__区别

 

Python面试题练习

标签:去重   全局变量   def   试题   one   方法   war   长度   函数   

原文地址:https://www.cnblogs.com/windyrainy/p/10658404.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!