面试题汇总(三)

1.编写一个查询和打印功能的函数;要求能在当前目录以及当前目录的子目录下查找文件名包含指定字符串的文件;并打印出完整路径

import os

def search(path, name):
   # listdir可以列出给定的目录文件名
   file_list = os.listdir(path)
   print(file_list)
   # 遍历目录
   for x in file_list:
       # 判断要查找的文件名是否在目录中
       if name in x:
           # 输出查询文件的路径
           print(os.path.join(path, x))



path = input('请输入文件夹目录:')
name = input('请输入要查询的文件:')
search(path, name)

2.python中search和match的区别

search和match都是正则表达式里面的函数:
match()函数只检测字符串开头位置是否匹配,匹配成功才会返回结果,否则返回None.
 
search()函数会在整个字符串内查找模式匹配,只到找到第一个匹配然后返回一个包含匹配信息的对象,
该对象可以通过调用group()方法得到匹配的字符串,如果字符串没有匹配,则返回None。          

3.python中类变量和实例变量的区别

1.类变量不通过实例化后可直接打印输出,类变量存储在类的内存中。

2、如果同时有类变量和实例变量,程序执行时,首先去找实例变量,如果实例变量不存在,就去执行类变量。

4.请介绍下装饰器?怎么保留修饰函数的元数据

装饰器(Decorators)是 Python 的一个重要部分。简单地说:他们是修改其他函数的功能的函数。他们有助于让我们的代码更简短,也更Pythonic(Python范儿}

通过 functools模块中的wraps, update_wrapper方法实现,每个都可单独实现保留修饰函数的元数据

5.python全局锁GIL

定义:简单来说就是一个互斥体(或者说锁),这样的机制只允许一个线程来控制Python解释器

优点:

  • 提高单线程程序的执行速度

  • 更易于集成c拓展模块

缺点:

  • 无法充分利用多核,无法很好计算密集型上发挥优势

posted @ 2019-08-22 11:27  陈文鑫  阅读(194)  评论(0编辑  收藏  举报