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

  • 相关阅读:
    IIT(ISM) Virtual Farewell E Dictator's plan for Valentine's day! 二分
    HDU
    LightOJ
    HDU 4407 Sum 容斥原理
    HDU 4686 Arc of Dream 矩阵快速幂
    uoj418
    Gym101237C The Palindrome Extraction Manacher
    Codeforces 100032 K
    codechef Suffix Palindromes
    Codeforces 932G Palindrome Partition
  • 原文地址:https://www.cnblogs.com/zhuyalong/p/11060309.html
Copyright © 2011-2022 走看看