• python小例子(三)


    1.提高Python运行速度的方法

    (1)使用生成器,节约大量内存;

    (2)循环代码优化,避免过多重复代码的执行;

    (3)核心模块使用cpython,pypy等;

    (4)多进程,多线程,协程;

    (5)多个if elif判断,可以把最可能发生的放在前面;

    2.mysql和redis的区别?

    redis:内存型菲关系数据库,数据存放在内存中,速度快;

    mysql:关系型数据库,数据存放在硬盘中,检索的话,会有一定的I/O操作,速度较慢;

    3.列出常见MYSQL数据存储引擎

    InnoDB:支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。 

    MyISAM:插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,那么选择MyISAM能实现处理高效率。如果应用的完整性、并发性要求比 较低,也可以使用。

    MEMORY:所有的数据都在内存中,数据的处理速度快,但是安全性不高。如果需要很快的读写速度,对数据的安全性要求较低,可以选择MEMOEY。它对表的大小有要求,不能建立太大的表。所以,这类数据库只使用在相对较小的数据库表。

    4.简述cookie和session的区别

    (1)session 在服务器端,cookie 在客户端(浏览器);

    (2)session 的运行依赖 session id,而 session id 是存在 cookie 中的,也就是说,如果浏览器禁用了 cookie ,同时 session 也会失效,存储Session时,键与Cookie中的sessionid相同,值是开发人员设置的键值对信息,进行了base64编码,过期时间由开发人员设置;

    (3)cookie安全性比session差;

    5.简述线程、进程

    进程:

    (1)操作系统进行资源分配和调度的基本单位,多个进程之间相互独立;

    (2)稳定性好,如果一个进程崩溃,不影响其他进程,但是进程消耗资源大,开启的进程数量有限制;

    线程:

    (1)CPU进行资源分配和调度的基本单位,线程是进程的一部分,是比进程更小的能独立运行的基本单位,一个进程下的多个线程可以共享该进程的所有资源;

    (2)如果IO操作密集,则可以多线程运行效率高,缺点是如果一个线程崩溃,都会造成进程的崩溃;

    应用:

    IO密集的用多线程,在用户输入,sleep 时候,可以切换到其他线程执行,减少等待的时间;

    CPU密集的用多进程,因为假如IO操作少,用多线程的话,因为线程共享一个全局解释器锁,当前运行的线程会霸占GIL,其他线程没有GIL,就不能充分利用多核CPU的优势;

    6.几种魔术方法

    __init__:对象初始化方法

    __new__:创建对象时候执行的方法,单列模式会用到

    __str__:当使用print输出对象的时候,只要自己定义了__str__(self)方法,那么就会打印从在这个方法中return的数据

    __del__:删除对象执行的方法

    7.使用lambda函数对list排序foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4],输出结果为[0,2,4,8,8,9,-2,-4,-4,-5,-20],正数从小到大,负数从大到小。

  • 相关阅读:
    【IT笔试面试题整理】字符串的组合
    【IT笔试面试题整理】字符串的排列
    进程与线程的区别?转
    【IT笔试面试题整理】判断一个树是否是另一个的子树
    【IT笔试面试题整理】连续子数组的最大和
    【IT笔试面试题整理】反转链表
    【IT笔试面试题整理】不用加减乘除做加法
    java Singleton 几种方式解析转
    【IT笔试面试题整理】判断链表是否存在环路,并找出回路起点
    【IT笔试面试题整理】删除无序链表中重复的节点
  • 原文地址:https://www.cnblogs.com/xiximayou/p/11756079.html
Copyright © 2020-2023  润新知