• python常见面试考点


    python知识点

    python的数据类型

    分为三个大类,number数值类型,字符串类型,组合类型,而数组类型分为整数型int 浮点数float 虚数(复数),bool布尔类型,字符串类型有string和字节类型,组合类型分为列表list, 元组tuple 集合set dictionary字典

    其中不可变数据类型有number数值类型,字符串类型,元组tuple

    python 的字符串方法

    1.capitalize()格式化字符串,将首字母转为大写。

    2.count()统计字符或字符串出现的次数

    3.endswith()判断字符串是否以XXX结尾

    4.startswith()判断字符串是否以XXX开头

    5.index()查询字符串和字符下标。

    6.format()格式化字符串

    7.lower()将字符串转为小写

    8.upper()将字符串转为大写

    9.split()将字符串分割,返回列表

    10.join()拼接迭代对象

    11.replace(old,new)替换字符串

    12.strip()清除两侧空格
    等等

    python的装饰器

    装饰器:指定义一个函数,该函数用来为其他函数添加额外的功能,拓展原来函数的功能,符合我们的开闭原则。

    pyhton的浅拷贝和深拷贝

    引入copy模块

    copy.copy()浅拷贝,只拷贝原数据的首地址,通过原数据首地址,去获取内容;浅拷贝去改变拷贝后的内容,会影响原数据内容,耗时短,占用空间小。

    copy.deepcopy()深拷贝,自己新开辟了一块内存,将拷贝的内容全部拷贝过来。

    深拷贝,改变拷贝后的内容,不影响原数据内容,但是时间长,占用空间大。

    *arg和**kwargs

    都是可变参数。

    *arg表示任何多个无名参数,本质上是tuple。

    **kwargs表示关键字参数,本质上是一个字典。

    python多线程和多进程

    线程必须在某个进程中执行。
    一个进程可包含多个线程,其中有且只有一个主线程。

    CPU是多核时是支持多个线程同时执行。但在Python中,无论是单核还是多核,同时只能由一个线程在执行。其根源是GIL的存在。GIL的全称是Global Interpreter Lock(全局解释器锁),来源是Python设计之初的考虑,为了数据安全所做的决定。某个线程想要执行,必须先拿到GIL,我们可以把GIL看作是“通行证”,并且在一个Python进程中,GIL只有一个。拿不到通行证的线程,就不允许进入CPU执行。

    Python提供两个模块进行多线程的操作,分别是threadthreading

    • 方法1:直接使用threading.Thread()

    • 方法2:继承threading.Thread来自定义线程类,重写run方法

    Python要进行多进程操作,需要用到muiltprocessing库,其中的Process类跟threading模块的Thread类很相似。所以直接看代码熟悉多进程。

    方法1:直接使用Process

    方法2:继承Process来自定义进程类,重写run方法

    python2和python3的区别

    1、不等于<>比较运算符,python3不识别,pyhon2.7中!=和<>都能运行。

    2、print函数的使用,python3必须加括号,python2加不加都行。

    3、python2 的默认编码是ASCII,python3的默认编码是UTF-8。

    4、python3字符串解码后会在内存里自动转换成Unicode,而python2不会。如果在文件头指定了解码编码,python2和python3都会按指定解码,所有系统都支持Unicode,所以python3只要指定对了解码编码,在哪个系统上都可以正常显示,python2如果不是gbk编码的,解码后windous就会是乱码。

    5、python2中有Unicode数据类型,python3中没有,字符串都是Unicode格式的str数据类型。

    6、用户输入不同,python3中只有input()输出都是str和python2中的raw_input()一样,而python2中也有input(),输入字符串要带引号,数字输出相应的数字类型

    7、python2以前没有布尔型,0表示False,用1表示True;Python3 把 True 和 False 定义成关键字,它们的值还是 1 和 0,可以和数字运算。

    8、python2的除法中不是浮点数则只返回商,python3除法返回值正常。

    9、python3运行程序可以识别相同目录下普通文件夹中的模块,python2只能识别文件夹标识后的包中的模块。

    10、创建类时,python2分为经典类和新式类,新式类就是继承object的类,经典类是没有继承的类,而python3中全部是新式类,默认继承object。在属性查找时,经典类查找方式为深度优先,新式类是广度优先。仅python3中有类的mro函数方法,输出继承父类的顺序列表。

    以上都是在前辈们的基础上,学习收集出来的,如有侵权请联系我。

  • 相关阅读:
    MySQL安装配置教程 (手把手保姆级安装)
    java 获取本周开始时间
    云仓是什么?如何选择优质云仓?
    云扩RPA携手中联教育引领财务机器人教学创新
    二叉树基本操作实现 && 树和二叉树&& 二叉树进阶oj && 堆的基本概念 && 优先级队列的使用_
    弘辽科技:淘宝店铺一直没流量怎么办?淘宝网店没有流量怎么办?
    设计原则之【单一职责原则】
    Java版本+企业电子招投标系统源代码+支持二开+招投标系统+中小型企业采购供应商招投标平台
    uniapp滚动页面改变背景颜色
    三分钟实战手写Spring Boot Starter
  • 原文地址:https://blog.csdn.net/qq_49070696/article/details/127118362