python-知识点汇总

文档目录

基础知识

解释型语言VS编译型语言

编译型语言:
执行程序都需要一边转换一边执行,用到哪些源代码就将哪些源代码转换成机器码,因为每次执行程序都需要重新转换源代码,所以解释型语言的执行效率天生就低于编译型语言。


1)问题:Python的内置数据类型有哪些?
答案:整形(int)、字符型(string)、布尔型(Boolean)、列表(list)、元组(tuple)、字典(dictionary)、集合(set);

2)问题:列出python中可变数据类型和不可变数据类型,并简述原理?

答案:

不可变数据类型:数值型(int)、字符串型(string)和元组(tuple);
不允许变量的值发生变化,如果改变了变量的值,则相当于是新建了一个对象,而对于相同的值的对象,在内存中则只有一个对象(一个地址),如下图用id()方法可以打印对象的id,判断是否为同一个对象;

可变数据类型:列表(list)和字典(dict);
允许变量的值发生变化,即如果对变量进行append、+=等这种操作后,只是改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。

3)问题:举例说明异常模块中try except else finally的相关意义?
答案:

try…except…else没有捕获到异常,执行else语句;
try…except…finally不管是否捕获到异常,都执行finally语句;

4)问题:==和 is 的区别是什么?!=和is not运算符的区别是什么?
答案:
1)比较两个对象或值的相等性;
is运算符用于检查两个对象是否属于同一内存对象。
2)!=如果两个变量或对象的值不相等,则返回true。
is not是用来检查两个对象是否属于同一内存对象。

>>> 
>>> list_a = ["aa","bb","cc"]
>>> list_b = ["aa","bb","cc"]
>>> list_a == list_b
True
>>> list_a is list_b
False
>>> 
>>> list_c = ["dd","ee","ff"]
>>> list_a != list_c
True
>>> list_a is not list_c
True
>>>


5)问题:举例说明如何实现一个栈?
答案:

6)问题:代码举例说明如何实现 一个单列模式的类?
答案:

7)问题:Python中的module和package是什么?

答案:module是构造程序的方式,每个python程序文件都是一个模块,可以导入其他模块的对象或属性;
pachage是文件夹,可以包含子package或者其他module;

8)问题:python中断言方法运行结果说明?
答案:逻辑中断言成功则执行后面逻辑,否则程序报错;

9)问题:计算机中“位”、“比特”、“字节”、“字”的关系?
答案:

位(bit):音译为“比特”,是计算机内部存储数据的最小单位;一般用 “b”表示;

字节(byte),是计算机中数据处理的基本单位。计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成,所以1byte = 8bit。字节一般用大写B表示,也可以表示成1B = 8bit;通常1个字节可以存入一个ASCII码,2个字节可以存放一个汉字国标码

字(word),计算机进行数据处理时,一次存取、加工和传送的数据长度称为字。一个字通常由一个或多个(一般为字节的整数位)字节构成

字长,计算机每个字所包含的位数称为字长。字长是指它一次可处理的二进制数字的数目。所以字长是衡量计算机性能的一个重要因素。

10)问题:Python的GIL锁原理是什么?

GIL(Global Interpreter Lock) 是python的全局解释器锁,同一进程中假如有多个线程运行,一个线程在运行python程序的时候会霸占python解释器(加了一把锁即GIL),使该进程内的其他线程无法运行,等该线程运行完后其他线程才能运行。如果线程运行过程中遇到耗时操作,则解释器锁解开,使其他线程运行。所以在多线程中,线程的运行仍是有先后顺序的,并不是同时进行。

多进程中因为每个进程都能被系统分配资源,相当于每个进程有了一个python解释器,所以多进程可以实现多个进程的同时运行,缺点是进程系统资源开销大。

11)问题:Python 的垃圾回收机制的原理是什么?
答案:

12)问题:解释一下什么样的语言可以使用装饰器?
答案:函数可以作为参数传递的语言,可以使用装饰器;

13)问题:简述Python面向对象中__new__和__init__区别?
答案:

14)问题:Python中如何跨模块共享全局变量?
答案:可以定义一个包含全局变量的新的模块,在每个别的模块内导入该模块

15)问题:解释如何在Python中删除文件?
答案:导入os模块,使用命令os.remove(filename)或os.unlink(filename);

16)问题:简述Python中with方法打开处理文件帮我们做了什么?

答案:打开文件在进行读写操作时可能会出现一些异常状况,如果按照常规的f.open写法,需要try…except…finally,做异常判断,并且最终都要执行finally f.close()关闭文件,with方法内部实现了finally中f.close方法;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值