前言
在面试之前觉得自己有几个小项目的经验就飘了,自我感觉称不上是 “大侠” 怎么也算是个“少侠” 吧!面完试之后发现原来是“小虾”
。其实项目经验重要,基础题跟算法题更重要,搞好基础题跟算法才是王道,横行霸道,霸道横行,横着走路。豪横!!!
面试官想要快速考察面试者的编程能力是很困难的,因为面试时间长则一个小时,短则二三十分钟。编程基础题跟算法问题是可以短时间考察面试者解决问题能力的最好办法,你会就是会,不会就是不会。
项目经验这个东西可以吹水的地方很多,而且面试官如果不是十分了解面试者的项目的话,是很难判断面试者吹水的成分有多大。如果基础题跟简单算法题都写不出来代表代码水平其实并不高。
面试时看到题目的时候第一感觉就是即眼熟又简单。就是写不出来·····,写了完之后感觉五五开写了一半一半。回来写总结的时候发现写的一半里面估计又错了一半有点小尴尬。
以下是总结完的题目以及答案,如有出错望指正。
文章目录
-
- 前言
- 1. 列出5个 Python标准库以及大概功能说明
- 2. 简要概述对 Python的 GIL(全局解释器锁)的理解
- 3. 面向对象中的__new__和__init__的区别
- 4. with 打开处理文件帮我们做了什么,比常规只用 f.open 有什么好处
- 5. 你目前习惯的版本是 Python2 还是 Python3
- 6. 正则表达式中, `(.*)` 和(.*?)的匹配区别
- 7. 简述Django的 ORM
- 8.写出五条常用的 SQL 语句
- 9. 提高 Python 运行效率的几种方法
- 10. MySQL 的 InnoDB 和 MyISAM 数据库引擎有什么区别?
- 11. 多线程和多进程有什么区别?
- 12. `__name__`的值与作用
- 13. logging 模块的日志等级及其使用场景?
- 14. 反爬机制有哪些
- 15. 切换账号持续爬取数据
- 16. 获取 a标签中的跳转链接
- 总结
1. 列出5个 Python标准库以及大概功能说明
- os:操作系统接口提供操作系统相关的函数
- sys:命令行参数通常用于处理命令行参数
- datetime:处理日期时间
- re:正则匹配
- json:json与Python数据交换
- logging:日志
- random:随机数
- math:数学运算
2. 简要概述对 Python的 GIL(全局解释器锁)的理解
GIL 是 Python 的全局解释器锁,同一进程中假设有多个线程运行,一个线程在运行 Python 程序的时候会霸占 Python 解释器(加了一把锁即 GIL),使该进程内的其他线程无法运行,等该线程运行完后其他线程才能运行。如果线程运行过程中遇到耗时操作,则解释器锁解开,使其他线程运行。所以在多线程中,线程的运行仍是有先后顺序的,并不是同时进行。
多进程中因为每个进程都能被系统分配资源,相当于每个进程有了一个 Python解释器,所以多进程可以实现多个进程的同时运行,缺点是进程系统资源开销大。
3. 面向对象中的__new__和__init__的区别
-
__new__
是在实例创建之前被调用的,因为它的认识就是创建实例然后返回该实例对象,是