IT虾米网

python面试题总结详解

admin 2018年05月30日 编程语言 165 0

1、一行代码实现1--100之和

In [1]: sum(range(1,101)) 
Out[1]: 5050
1-100求和

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

a=520 
def fun(): global a 
    a=1314 fun() 
print(a)

3、列出5个python标准库

  • sys通常用于命令行参数

  • datatime日期相关函数

  • os与操作系统相关函数

  • time时间相关函数

  • re正则表达式

4、字典如何删除键和合并两个字典

#删除 d1={'name':'xjm','age':21} 
del d1['name'] 
print(d1) 
#合并 d2={'name':'xmm'} 
d1.update(d2) 
print(d2)

5、谈下python的GIL

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

6、python实现列表去重的方法

列表可重复,而集合不可重复,所以可以先转集合,再转回列表

>>> list1=[1,2,3,4,5,4,3,2,1] 
>>> a=set(list1) 
>>> a 
{1, 2, 3, 4, 5} 
>>> list2=list(a) 
>>> list2 
[1, 2, 3, 4, 5]

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

当函数的参数不确定时,可以用这两个。

args可以用来传递非键值对的可变长度的参数--元祖

akwargs可以用来传递不定长的键值对的参数--字典

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

函数可以作为参数传递的语言,可以使用装饰器

9、python内建数据类型有哪些?

  • 整型--int

  • 布尔型--boolena

  • 字符串--string

  • 列表--list

  • 元祖--tuple

  • 字典--dict

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

  __init__是初始化方法,创建对象后,被立刻默认调用了,可接受参数

  • __new__至少要一个参数cls,代变当前类,此参数在实例化由python自动识别

  • __new__必须要有返回值,返回实例出来的实例。

  • __init__有一个参数self,就是这个__new__返回的实例,不需要返回值

11、with方法打开处理文件帮我们做了什么?

  实现了finally中f.close

12、[1,2,3,4,5],请使用map()函数输出[1,4,9,16,25],并使用列表推导式提取出大于10的数,最终输出[16,25]

13、python中生成随机整数,0--1之间小数方法

  随机整数:random.randint(a,b),生成区间内的整数

  0--1随机小数:random.random(),不传参

In [17]: random.randint(1,100) 
Out[17]: 35 
 In [18]: random.random() 
Out[18]: 0.2341779825853031

 14、避免转义字符。哪个字母表示原始字符串?

  r,表示需要原始字符串,不转义特殊字符

15、python中断言方法举例

  assert()方法,断言成功,则程序继续执行,断言失败,则程序报错

16、如何捕获异常,python的异常机制有哪些?

  程序发生异常,会中断程序,调用python默认的异常处理器,并在终端输出异常信息

  当程序遇到问题时,不让程序结束,而是越过错误,继续向下运行

1 try: 
2     print(3/0) 
3 except: 
4     ZeroDivisionError
发布评论

分享到:

IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

Java架构师学习路线详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。