zoukankan      html  css  js  c++  java
  • python面试题No4

      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

  • 相关阅读:
    C++笔记
    mongodb文件损坏的恢复--无可恢复数据
    wiredtiger--初学数据恢复
    mongodb异常恢复
    守护进程,互斥锁, IPC ,Queue队列,生产消费着模型
    进程,多进程,进程与程序的区别,程序运行的三种状态,multiprocessing模块中的Process功能,和join函数,和其他属性,僵尸与孤儿进程
    socket之UDP协议,并发编程介绍,操作系统发展史
    半连接数,粘包问题,自定义报头
    socket模块
    网络编程介绍,C/S 架构,网络通讯协议,osi七层
  • 原文地址:https://www.cnblogs.com/zhuyalong/p/11060309.html
Copyright © 2011-2022 走看看