程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2023-05(1)

python面试题No4

发布于2019-07-30 10:32     阅读(3568)     评论(0)     点赞(6)     收藏(10)


  1. python 中 match 与 search 的区别 ?

match() 函数只检测RE是不是在string的开始位置匹配, 只有在开始位置匹配成功的话才会返回, 否则返回None .

search()函数会在整个string内查找匹配,只到找到第一个匹配然后返回一个包含匹配信息的对象,该对象可以通过调用group()方法得到匹配的字符串,如果字符串没有匹配,则返回None .

 

  2. python匹配HTML tag时, < .* > 和 < .*? > 有什么区别 ?

< .* >  贪婪匹配. 从第一个"  <  " 开始 直到最后一个 " > " 中间所有的字符都会匹配到 包括 " < > " .

< .*? > 非贪婪匹配. 从第一个 " < " 开始 到遇到的第一个 " > " 结束匹配. so 中间字符都会匹配, 但是不会包含 " < > " .  

 

  3.什么是lambda函数?它的好处是什么?

lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。

lambda函数:首要用途是指点短小的回调函数。

lambda [arguments] : expression

>>> a=lambda x,y : x+y

>>> a(3,11)

 

  4. 谈谈 对 python  GIL锁 的理解 ?

GIL 锁,全局解释器锁,作用就是,限制多线程同时执行,保证同一时间内只有一个线程在执行。

​ 线程非独立的,所以同一进程里线程是数据共享,当各个线程访问数据资源时会出现竞状态,即数据可能会同时被多个线程占用,造成数据混乱,这就是线程的不安全。

​ 所以引进了互斥锁,确保某段关键代码、共享数据只能由一个线程从头到尾完整地执行,但这个有个致命问题,死锁。

​ 死锁:若干子线程在系统资源竞争时,都在等待对方对某部分资源解除占用状态,结果谁也不愿意先解锁,互相等待,程序无法执行下去,这就是死锁。
  注: 需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念。像 JPython 就没有GIL。然而因为CPython是大部分环境下默认的Python执行环境。所以在很多人的概念里CPython就是Python,也就想当然的把GIL归结为Python语言的缺陷。所以这里要先明确一点:GIL并不是Python的特性,Python完全可以不依赖于GIL。

https://blog.csdn.net/Com_ma/article/details/79169848

 



所属网站分类: 技术文章 > 博客

作者:可爱宝宝

链接:https://www.pythonheidong.com/blog/article/2344/6fbe55300cb3e102c49e/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

6 0
收藏该文
已收藏

评论内容:(最多支持255个字符)