Python 面试题1

最新面试题

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 表示需要原始字符串,不转义特殊字符
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值