Python编程入门练习题题目汇总开课

Python题目

一:谈下python的GIL

python的GIL是python的全局解释器锁,同一个进程中如果有多个线程运行,一个线程运行的时候会霸占解释器,上了个锁即GIL,进程内其他线程无法运行。如果遇到耗时操作,GIL会打开,其他线程先运行,所以多线程仍然是有先后顺序的。

二:fun(*args,**kwargs)中的*args,**kwargs什么意思?

用于函数的接收参数。可以接收补丁数量的参数。

*args是用来接收一个非键值对的可变数量的参数列表

**kwargs允许接收不定长度的键值对。

三:列出python中可变数据类型和不可变数据类型,并简述原理

不可变:int,str,tuple不允许变量的值发生变化,如果改变了值,相当于创建一个新的对象,相同值的对象,内存中的地址是一样的。

可变对象:list,dict允许变量的值发生变化,例如append操作后,改变的是原对象的值。如果是两个相同值的对象,内存中的地址也是不一样的。

四:正则表达式匹配中,(.*)和(.*?)匹配区别?

(.*)是贪婪匹配,尽可能多的匹配

(.*?)是尽可能少的匹配结果

五:举例说明异常模块中tryexceptelsefinally的相关意义

else没有捕捉到异常,执行else里面的,finally不管有没有异常都执行finally里面的参见withopen里面不论是否成功打开文件,都会执行close()。

六:提高python运行效率的方法

1、使用生成器,节约内存

2、优化for循环

3、核心模块用CpythonPyPy等,提高效率

4、多进程,多线程、协程

5、判断可能性大的放到前面

七:简述mysql和redis区别

redis:内存级非关系数据库,速度快,作网页缓存;

mysql:关系型数据库检索有一定io操作,访问速度慢;

八:列出常见MYSQL数据存储引擎

InnoDB:支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(


转载请注明:http://www.aierlanlan.com/rzdk/3035.html