我们学习的最主要目的,还是为了找一个好的工作,人生的转折点,就是有一个好的机遇,顺利走完下一步,大家在一起学习编程语言,基本上对知识的掌握都差不多,我们不能保证面试的时候,自己所学的知识点都能用的上,但是必考题掌握了解,也能基本达到标准,下面一起来看下哪些必考内容吧。
1、== 和 is 的区别?
== 比较的是值,is比较的是值和引用(对象内存空间)
比如:
>>> a = 123>>> b = 123>>> a == bTrue>>> a is bTrue>>> id(a)9670848>>> id(b)9670848
只要是不可变类型变量(数值型,字符串),只要值一样,对象内存空间也一样。
可变类型变量的is 和 ==
>>> c = [1,2,3]>>> d = [1,2,3]>>> c == dTrue>>> c is bFalse>>> id(c)140470599331072>>> id(d) 140470599331200
对于可变类型,每一个变量的内存空间都是不一样的。
2、Python中单下划线_foo与双下划线__foo与__foo__的成员理解
1、 _foo 不能直接用于’from module import *’
2、__foo解析器用_classname__foo来代替这个名字,以区别和其他类相同的命名
3、__foo__代表python里特殊方法专用的标识
3、__new__和__init__的区别?
1、__new__是一个静态方法,而__init__是一个实例方法
2、__new__方法会返回一个创建的实例,而__init__什么都不返回
3、只有在__new__返回一个cls的实例时,后面的__init__才能被调用
4、当创建一个新实例时调用__new__,初始化一个实例时用__init__
4、sinstance和issubclass的作用?
1、sinstance(object,classinfo),用于判断object是否是classinfo的一个实例,或者object是否是classinfo类的子类的一个实例,如果是返回True.
2、issubclass(class,classinfo),用于判断class是否是classinfo类的子类,如果是返回True.
5、以下Python2和Python3的说法正确的有(ABC)
A、Python3使用 print 必须要以小括号包裹打印内容
B、Python2中使用ascii编码,Python3中使用utf-8编码
C、Python2中是raw_input()函数,Python3中是input()函数
D、Python2中range(1,10)返回列表,Python3中返回迭代器
答案选D:python2中返回是列表,在python3中返回是range类型,并不是迭代器。
6、如何理解 python的GIL?
GIL 的全程为 Global Interpreter Lock ,意即全局解释器锁。在 Python 语言的主流实现 CPython 中,GIL 是一个货真价实的全局线程锁,在解释器解释执行任何 Python 代码时,都需要先获得这把锁才行,在遇到 I/O 操作时会释放这把锁。如果是纯计算的程序,没有 I/O 操作,解释器会每隔 100 次操作就释放这把锁,让别的线程有机会执行,这个次数可以通过sys.setcheckinterval。如果不释放这把锁其他的程序会处于等待状态。
7、简述with方法打开处理文件帮我们做了什么?
打开文件在进行读写操作时可能会出现一些异常状况,如果按照常规的file.open写法,我们需要try,except,finally,做异常判断,并且文件最终不管遇到什么情况,都要执行finally的file.close()关闭文件with方法帮我们实现了finally中file.close()操作。
如下:
上述就是python基本的考题内容了,大家可以多浏览掌握学习,对我们找工作都是有一定帮助的!