最新面试题
1.一行代码实现1–100之和
>>> sum(range(1, 101))
5050
2.如何在一个函数内部修改全局变量
# 利用global在函数声明 修改全局变量
a = 5
def func():
global a
a = 10
func()
print(a) # 结果: 10
3.列出 5 个 Python 标准库
os:提供了不少与操作系统相关联的函数
sys:通常用于命令行参数
re:正则匹配
math:数学运算
datetime:处理日期时间
requests:爬虫
4.字典如何删除键和合并两个字典
>>> dic = {
'name': 'nancy',
'age': 18,
}
>>> dic
{'name': 'nancy', 'age': 18}
>>> del dic['name']
>>> dic
{'age': 18}
>>> dic2 = {'name': 'Lily'}
>>> dic.update(dic2)
>>> dic
{'age': 18, 'name': 'Lily'}
>>>
5.谈下 Python 的 GIL
GIL 是 Python 的全局解释器锁,同一进程中假如有多个线程运行,一个线程在运行 Python 程序的时候会霸占 Python 解释器(加了一把锁即GIL),使该进程内的其他线程无法运行,等该线程运行完后其他线程才能运行。如果线程运行过程中遇到耗时操作,则解释器锁解开,使其他线程运行。所以在多线程中,线程的运行仍是有先后顺序的,并不是同时进行。
多进程中因为每个进程都能被系统分配资源,相当于每个进程有了一个 Python 解释器,所以多进程可以实现多个进程的同时运行,缺点是进程系统资源开销大。
6.Python 实现列表去重的方法
# 先通过集合去重,在转列表
list1 = [11, 12, 10, 13, 14, 11, 12]
set1 = set(list1)
print(set1) # [10, 13, 14, 11, 12]
list1 = list(list1)
7.一句话解释什么样的语言能够用装饰器?
函数可以作为参数传递的语言,可以使用装饰器
8.Python 内建数据类型有哪些
整型--int
布尔型--bool
字符串--str
列表--list
元组--tuple
字典--dict
9.简述 with 方法打开处理文件帮我们做了什么?
打开文件在进行读写的时候可能会出现一些异常状况,如果按照常规的f.open写法,我们需要try,except,finally,做异常判断,并且文件最终不管遇到什么情况,都要执行finally f.close()关闭文件,with方法帮我们实现了finally中f.close
10.列表[1,2,3,4,5],请使用map()函数输出[1,4,9,16,25],并使用列表推导式提取出大于10的数,最终输出[16,25]
>>> l1 = [1, 2, 3, 4, 5]
>>> [x for x in map(lambda x: x ** 2, l1) if x > 10]
[16, 25]
11.Python 中生成随机整数、随机小数、0–1之间小数方法
import random
print(random.randint(1, 10)) # 产生 1 到 10 的一个整数型随机数
print(random.random()) # 产生 0 到 1 之间的随机浮点数
print(random.uniform(1.1, 5.4)) # 产生 1.1 到 5.4 之间的随机浮点数,区间可以不是整数
print(random.choice('tomorrow')) # 从序列中随机选取一个元素
print(random.randrange(1, 100, 2)) # 生成从1到100的间隔为2的随机整数
12.避免转义给字符串加哪个字母表示原始字符串?
r 表示需要原始字符串,不转义特殊字符