zoukankan      html  css  js  c++  java
  • 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],正数从小到大,负数从大到小。

  • 相关阅读:
    UI、JS框架----Bootstrap、Metro
    重构—改善既有代码的设计4——构筑测试体系
    重构—改善既有代码的设计3——代码的坏味道
    正则匹配-URL-域名
    pgAdmin的数据恢复
    重构—改善既有代码的设计2
    重构—改善既有代码的设计1
    Levenshtein Distance,判断字符串的相似性
    最大匹配字符串LCS,The Longest Common Substring
    email
  • 原文地址:https://www.cnblogs.com/xiximayou/p/11756079.html
Copyright © 2011-2022 走看看