python编程从基础到入门 开课吧_Python编程入门练习题题目汇总-开课吧Python习题...

54fbb2fb43166d22a84212c5f01960f09052d268.jpeg?token=62470bbc25a630f02eb199ab27ea635ePython题目

一:谈下python的GIL

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

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

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

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

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

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

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

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

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

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

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

五:举例说明异常模块中try except else finally的相关意义

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

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

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

2、优化for循环

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

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

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

七:简述mysql和redis区别

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

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

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

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

MyISAM:插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,那么选择MyISAM能实现处理高效率。如果应用的完整性、并发性要求比 较低,也可以使用。

九:简述多线程、多进程

进程:

1、操作系统资源分配的基本单位,进程之间相互独立

2、稳定性好,但是资源消耗大。

线程:

1、cpu进行资源分配和调度的基本单位,线程是进程再次细分,是比进程更小的独立运行的基本单位,一个进程下所有线程共享该进程资源,

2、IO操作密集,多线程运行效率高,但是如果其中一个崩溃,进程也会崩溃。

应用:

IO密集型用多线程,等待时候可以切换带其他线程运行;

CPU密集的用多进程,IO操作少,因为线程多霸占GIL,其他线程不能运行,不能充分发挥多核CPU优势。

十:列出几种魔法方法并简要介绍用途

__init__:对象初始化方法;

__new__:创建对象时候执行的方法,单列模式会用到;

__str__:当使用print输出对象的时候,只要自己定义了__str__(self)方法,那么就会打印从在这个方法中return的数据;

__del__:删除对象执行的方法;

十一:MyISAM 与 InnoDB 区别:

1、InnoDB 支持事务,MyISAM 不支持,这一点是非常之重要。事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而 MyISAM就不可以了;

2、MyISAM 适合查询以及插入为主的应用,InnoDB 适合频繁修改以及涉及到安全性较高的应用;

3、InnoDB 支持外键,MyISAM 不支持;

4、对于自增长的字段,InnoDB 中必须包含只有该字段的索引,但是在 MyISAM表中可以和其他字段一起建立联合索引;

5、清空整个表时,InnoDB 是一行一行的删除,效率非常慢。MyISAM 则会重建表;

十二:Linux命令重定向 > 和 >>

Linux 允许将命令执行结果重定向到一个文件,将本应显示在终端上的内容输出/追加到指定文件中;

表示输出,会覆盖文件原有的内容;

表示追加,会将内容追加到已有文件的末尾;

用法示例:

将 echo 输出的信息保存到 里echo Hello Python;

将 tree 输出的信息追加到 文件的末尾tree;

十三::python传参数是传值还是传址?

传的是指针,是引用传递;

对于不可变类型(数值,str,tuple),不会改变原来变量;

对于可变数据类型(list dict),会修改对应变量。

以上得能力测评题你都记住了吗?希望对大家有所帮助,若有所疏漏欢迎指正。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值