资讯专栏INFORMATION COLUMN

python开发-常见面试题

FingerLiu / 1736人阅读

摘要:今天总结一下中常见的面试题与的区别比较变量内存地址和值是否相等,仅仅比较变量的值是否相等需要注意当变量的值较小时时,的值是,这是由于定义变量时底层的实现决定的,例如小整数对象池两个变量的值就会相同,导致的值为。

今天总结一下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的元素

未完待续...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42736.html

相关文章

  • 见面试题—css实现垂直水平居中

    摘要:常见面试题实现垂直水平居中前言面试中常常被问到,如何使用来实现一个元素的垂直水平方向上居中,特别是笔试题的时候,这道题目的出现频率还是比较高的,当然,在我们的生活中,也常常会有垂直水平居中的需求。 常见面试题—css实现垂直水平居中 前言 面试中常常被问到,如何使用css来实现一个元素的垂直水平方向上居中,特别是笔试题的时候,这道题目的出现频率还是比较高的,当然,在我们的生活中,也常常...

    gougoujiang 评论0 收藏0
  • 前端见面试题总结

    摘要:个人总结的一些常见面试题欢迎各位同时非常欢迎贡献问题一起来完善不定期更新常见前端面试题总结 个人总结的一些常见面试题,欢迎各位star,issues,同时非常欢迎贡献问题!一起来完善.不定期更新常见前端面试题总结

    ingood 评论0 收藏0
  • 70 个 Spring 最见面试题,Java 晋升必会

    摘要:容器自动完成装载,默认的方式是这部分重点在常用模块的使用以及的底层实现原理。 对于那些想面试高级 Java 岗位的同学来说,除了算法属于比较「天方夜谭」的题目外,剩下针对实际工作的题目就属于真正的本事了,热门技术的细节和难点成为了主要考察的内容。 这里说「天方夜谭」并不是说算法没用,不切实际,而是想说算法平时其实很少用到,甚至面试官都对自己出的算法题一知半解。 这里总结打磨了 70 道...

    Ashin 评论0 收藏0
  • 前端见面试题(实战遇到)

    摘要:浏览器内核常用的块元素和内联元素数据类型语句前端优化方法会话跟踪方法和区别循环输出网站优化清除浮动方法,优缺点和区别截取长文本写方法截取字符串响应式布局浏览器兼容正则表达式验证身份证源码自己如何封装一个固定一个按钮在右下角画一个三角形同步和 1、浏览器内核2、常用的块元素和内联元素3、数据类型 *4、SQL语句5、前端优化方法 *6、会话跟踪方法 *7、display : none 和...

    时飞 评论0 收藏0
  • css-flex见面试题

    摘要:废话不多说内容宽度等分左右布局,一侧定宽,一侧自适应撑满固定宽度自适应宽度未知高宽上下左右居中未知高度上下左右居中这个效果就不展示了,可以做到未知宽高,和已知宽未知高的居中效果。 废话不多说! flex-内容宽度等分 //css .box { display: flex; } .box div { ...

    ZweiZhao 评论0 收藏0

发表评论

0条评论

FingerLiu

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<