• Python练习题(二)


    1. Python 里 match 与 search 的区别?


    match()函数只检测 RE 是不是在 string 的开始位置匹配,
    search()会扫描整个 string 查找匹配;
    也就是说 match()只有在 0 位置匹配成功的话才有返回,
    如果不是开始位置匹配成功的话,match()就返回 none。

    2.什么是死锁呢?


    若干子线程在系统资源竞争时,都在等待对方对某部分资源解除占用状态,结果是谁也不愿先解锁,
    互相干等着,程序无法执行下去,这就是死锁。
    GIL 锁(有时候,面试官不问,你自己要主动说,增加 b 格,尽量别一问一答的尬聊,不然最后等
    到的一句话就是:你还有什么想问的么?)
    GIL 锁 全局解释器锁(只在 cpython 里才有)
    作用:限制多线程同时执行,保证同一时间只有一个线程执行,所以 cpython 里的多线程其实是伪
    多线程!

    3.Flask 项目中如何实现 session 信息的写入?


    Flask 中有三个 session:
    第一个:数据库中的 session,例如:db.session.add()
    第二个:在 flask_session 扩展中的 session,使用:from flask_session importSession,使用
    第三方扩展的 session 可以把信息存储在服务器中,客户端浏览器中只存储 sessionid。
    第三个:flask 自带的 session,是一个请求上下文, 使用:from flask import session。自带的
    session 把信息加密后都存储在客户端的浏览器 cookie 中。

    4.Python 函数调用的时候参数的传递方式是值传递还是引用传递?


    Python 的参数传递有:位置参数、默认参数、可变参数、关键字参数。
    函数的传值到底是值传递还是引用传递,要分情况:
    不可变参数用值传递:
    像整数和字符串这样的不可变对象,是通过拷贝进行传递的,因为你无论如何都不可能在原处改变
    不可变对象
    可变参数是引用传递的:
    比如像列表,字典这样的对象是通过引用传递、和 C 语言里面的用指针传递数组很相似,可变对象
    能在函数内部改变。

    5.什么是 lambda 函数?它有什么好处?


    lambda 函数是匿名函数;使用 lambda 函数能创建小型匿名函数。这种函数得名于省略了用 def
    声明函数的标准步骤;是得程序扁平化,已于结合其他代码

    4G 内存怎么读取一个 5G 的数据?


    方法一:
    可以通过生成器,分多次读取,每次读取数量相对少的数据(比如 500MB)进行处理,处理结束后
    在读取后面的 500MB 的数据。
    方法二:
    可以通过 linux 命令 split 切割成小文件,然后再对数据进行处理,此方法效率比较高。可以按照行
    数切割,可以按照文件大小切割。

    6.说明一下 os.path 和 sys.path 分别代表什么?平时的操作有哪些?


    os.path 主要是用于对系统路径文件的操作。
    sys.path 主要是对 Python 解释器的系统环境参数的操作(动态的改变 Python 解释器搜索路径)。

    os.path.join()将分离的各部分组合成一个路径名
    os.mkdir/makedirs 创建目录/多层目录
    os.rmdir/removedirs 删除目录/多层目录
    sys.version 获取 Python 解释程序的版本信息
    sys.modules 返回系统导入的模块字段,key 是模块名,value 是模块

    7.请简述什么是并行,什么是并发。python中,有几种多任务模式?分别是并行还是并发?


    并行:同一时刻多个任务同时运行
    并发:在同一时间间隔内多个任务都在运行,但是并不会在同一时刻同时运行,存在交替执行的情况。
    python中多任务有多进程(并行),多线程(并发),多协程(并发)
    实现并行的库是什么(multiprocessing),实现并发的库是什么(threading)

  • 相关阅读:
    JAVA-基础-网络通信协议
    JAVA-基础-线程安全
    JAVA-基础-多线程
    IDEA安装破解JFrameDesigner
    windows IIS安装memadmin
    exe应用程序安装为windows服务
    远程管理virtual box的几种方式
    手动修改注册表更改MAC地址
    在火狐插件中使用socket编程与java进行通信
    定制自己的firefox插件并在selenium中使用
  • 原文地址:https://www.cnblogs.com/Jack666/p/9605579.html
Copyright © 2020-2023  润新知