python面试题

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

 

posted @ 2018-05-22 18:25  爬呀爬Xjm  阅读(360)  评论(0编辑  收藏  举报