python开发面试问题_python开发-常见面试题

今天总结一下python中常见的面试题:

1.is与==的区别

is比较变量内存地址和值是否相等,==仅仅比较变量的值是否相等

需要注意:

当变量的值较小时(a=1, b=1时,a is b的值是True,这是由于python定义变量时底层的实现

决定的,例如小整数对象池)两个变量的id值就会相同,导致is的值为True。

2.列表排序

sort():将原列表排序

soretd():生成新的一排序列表,原列表不变

In [47]: l1

Out[47]: [1, 4, 3, 8, 3]

In [48]: sorted(l1)

Out[48]: [1, 3, 3, 4, 8]

In [49]: l1

Out[49]: [1, 4, 3, 8, 3]

In [51]: l1.sort()

In [52]: l1

Out[52]: [1, 3, 3, 4, 8]

sort()函数的应用:

# 按照info中字典的name排序

In [39]: info = [{"name": 'laownag', "age": 20}, {"name": 'laoli',

"age": 21}, {"name": 'laoliu', "age": '23'}]

# 使用参数key,参数值是一个函数

In [40]: info.sort(key=lambda x:x["name"])

In [41]: info

Out[41]:

[{'name': 'laoli', 'age': 21},

{'name': 'laoliu', 'age': '23'},

{'name': 'laownag', 'age': 20}]

sort()中的两个参数:

参数1:key,参数值是一个函数,依据这个函数排序

参数2:reverse,是否降序排列

3.装饰器

现场写一个装饰器,比如:写一个装饰器,统计函数的执行时间,执行时间大于2秒的输出bad;否则输出good

import time

def wrapper(func):

def inner():

start = time.time()

ret = func()

end = time.time()

if (end - start) > 1:

print("bad")

else:

print("good")

return inner

写一个装饰器,可以捕获函数忠执行的异常:

def wrapper_cacth_exception(func):

"""

捕获异常

:param func:

:return:

"""

def wrapper(a, b):

try:

return func(a, b)

except Exception as e:

return e

return wrapper

4.统计list中每个值出现的次数,这个题目主要考察使用collections中的defaultdict

from collections import defaultdict

users = ["wyzane1", "wyzane2", "wyzane3", "wyzane2"]

default_dict = defaultdict(int)

for user in users:

default_dict[user] += 1

print(default_dict)

当然,还有另外一种方法也可以:主要使用了dict中的setdefault方法

user_dict = {}

for user in user:

user_dict.setdefault(user, 0)

user_dict[user] += 1

print(user_dict)

5.mysql常用引擎及区别

这个就自己百度吧。

6.enumerate的使用

for i in enumerate(range(3)):

print(i)

打印结果:

(0, 0)

(1, 1)

(2, 2)

7.合并两个List的方法

l1 = [1, 2, 3]

l2 = [4, 5, 6]

l1.extend(l2) # 把l2的元素放入l1中

l1 + l2 # 生成一个新的列表,包含l1和l2的元素

未完待续...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值