zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    web前端的发展态势
    AngularJs 简单入门
    css代码优化篇
    git提交报错:Please make sure you have the correct access rights and the repository exists.
    Activiti工作流框架学习
    遍历map集合的4种方法
    js设置日期、月份增加减少
    Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
    webservice_rest接口_学习笔记
    相互匹配两个list集合+动态匹配${}参数
  • 原文地址:https://www.cnblogs.com/Jack666/p/9605579.html
Copyright © 2011-2022 走看看