python基础知识点总结

作者: Python新视界 | 来源:发表于2019-12-30 15:51 被阅读0次

手写一个完整的装饰器模版

# 用于修复被装饰对象的名称空间

from functools import wrape

def wrapper(func):

    @wraps(func)

    def inner(*args, **kwargs):

        # func执行之前的操作

        res = func(*args, **kwargs)

        # func执行之后的操作

        return res

    return inner

简述面向对象三大特性及各自特点

'''

封装:将属性和方法放在类的内部,通过类的实例化出对象,用对象访问属性或方法,隐藏功能的实现细节,可设置访问权限

好处:提高了代码的复用性,安全性,降低代码的冗余度

继承:实现代码的重用,也可以理解为让类与类之间建立父子关系,使子类拥有父类的属性和方法,并可衍生出自己独有的属性和方法。需要注意的是,在python中存在多继承,这是其他编程语言没有的一个特性

好处:减少代码的重用,提高代码的可读性,规范编程模式

多态:同一个方法,不同对象调用,实现的功能不一样。python中的多态不像其他编程语言,崇尚“鸭子类型”,即不用通过具体的继承关系来约束其他类,只要这些不同的类具有相同的方法名,利用统一的方式来调用

好处:增加代码的灵活度,调用方法,不会影响到类的内部设计

'''

简述解释性语言和编译性的区别

'''

- 解释型:每次执行程序都要重新编译,降低了执行效率,但提供相应的解释器后,跨平台比较容易,调试方便,比如说Python,JavaScript、C#

- 编译型:一次编译,重复执行,执行效率相对较高,但由于编译成特定的机器码,导致跨平台性差,调试麻烦,比如C,C++,PHP

总结:

解释型语言,执行速度慢、效率低;依靠解释器、跨平台性好

编译型语言,执行速度快、效率高;依靠编译器、跨平台性较差

java语言(了解)

可以说是编译型,所有的java代码都要编译,不经过编译啥也没有;

也可以说是解释型,java代码编译后不能直接运行,在jvm上解释运行

由于java对于多种不同的操作系统有不同的jvm,所以java实现了真正意义上的跨平台

'''

列举你所知道的python2与python3之间的区别

# 参照https://www.cnblogs.com/zengyi1995/p/10736673.html

# 参照https://www.cnblogs.com/xiaoyuanqujing/articles/11721989.html

'''

1.解释器默认编码

    python2:ASCII

    python3:utf-8

2.str(字符串)的区别

    python2:Unicode类型表示字符串序列,str类型表示字节序列

    python3:str类型表示字符串序列,byte类型表示字节序列

3.输入

    python2:raw_input('请输入用户名:')

    python3:input('请输入用户名')  # 等价于python2中的raw_input

    ps:python2中的input()必须指定数据类型,否则会抛异常

4.输出

    python2:

    print('hello', 'world')  # 结果:('hello','world')

    print '你好'  # 结果:你好

    python3:

    print('hello', 'world')  # 结果:hello world

    print('你好') # 结果:你好

5.数字的表示

    python2:64位机器,范围-2^63~2^63-1;超出这个范围,自动转换成long(长整型)

    python3:所有整型都是int,没有long(长整型)

6.整除:1/2的结果

    python2:0 只保留整数位

    python3:0.5 保留所有内容

7.range/xrange

    python2:

        range:在内存中立即把所有的值创建

        xrange:不会在内存中立即创建,边循环边创建

    python3:

        range:不会在内存中立即创建,边循环边创建,等价于python2中的xrange

        没有xrange

8.dict(字典)的keys/values/items方法

    python2:返回列表,可通过索引取值

    python3:返回类,只能通过循环取值

9.新式类和经典类

    python2:没有继承Object类的类是经典类,继承了Object类的类是新式类

    python3:默认所有类都继承Object类,只有新式类,没有经典类

    ps:

    新式类:广度优先,遵循mro

    经典类:深度优先,不遵循mro

10.global和nonlocal

    python2:使用关键字global声明某个变量为全局变量,但嵌套函数中,声明某个变量为非局部变量无法实现

    python3:除了global关键字,新增了关键字nonlocal,实现了嵌套函数中,声明某个变量为非局部变量

'''

什么是匿名函数。匿名函数一般结合什么一起使用,请列举几个常用的

'''

不用显式定义的函数,即没有函数名的函数,通过lambda关键字表示。本身没有任何意义,就是一个表达式,一般结合内置函数使用,比如max,min,sorted,map,reduce,filter

ps:

max(可迭代对象, key=函数对象):根据函数对象返回结果为依据,返回可迭代对象中的最大值

min(可迭代对象, key=函数对象):根据函数对象返回结果为依据,返回可迭代对象中的最小值

sorted(可迭代对象, [key=函数对象], [reverse=True]):根据函数对象返回的结果作为依据(可选),对可迭代对象进行排序,默认为升序,reverse=True表示结果为降序(该参数可选)

map(函数对象,可迭代对象):将可迭代对象中的元素依次通过函数对象修改后,依次映射到map对象中,通过转换成容器类型的数据展示,只能转换一次

reduce(函数对象, 可迭代对象, [初始值]):使用前,导包→from functools import reduce;每次从可迭代对象中获取两个元素进行累积计算,即reduce(func,[1,2,3]) 等价于 func(func(1,2),3)。如果求和,初始值默认为0,求乘积时,初始值为1(该参数可选)

filter(函数对象, 可迭代对象)根据函数对象中的返回值是True还是False决定保留还是丢弃可迭代对象中的元素,如果该元素在函数对象中的结果为True,则添加到filter对象中,通过转换成容器类型数据展示,只能转换一次

'''

相关文章

  • 完结篇

    至此,Python基础知识基本就这些了 后面会进行知识点总结

  • python学习总结

    python基础语法总结 参考:Python基础语法总结 参考:1.Python标识符 在 Python 里,标识...

  • 学习计划:第02周(20190722-20190728)

    知识点:Python数据分析基础 Python基础 Python环境安装 下载、安装Anaconda3 这里选择y...

  • 2018-10-31

    2018-10-31学习总结 知识层面 python基础知识点 “#”有什么意义 带#是注释,方便使用者理解,运行...

  • 一张图汇总Pygame基础知识点

    近期总结了Python Pygame的基础知识点,分享给大家。说明:图片较大,建议电脑端打开,下载后使用。否则可能...

  • 干货!测试入门Java必会的27个知识点!

    前面我给大家总结了上手python的21个知识点,干货!测试入门Python必会的21个知识点![https://...

  • python基础知识点总结

    数据类型: 数字类型(int、float、bool(True or False)、complex) 字符串(str...

  • Python基础知识点总结

    list 1.Python基础知识 2.判断语句和循环语句 3.字符串、列表、元组、字典 4.函数 5.文件的操作...

  • Python基础知识点总结

    常用数据类型 整数、浮点数、字符串、布尔值、空值、 字符串编码 默认使用unicode编码,通过encode转换成...

  • python基础知识点总结

    手写一个完整的装饰器模版 # 用于修复被装饰对象的名称空间 from functools import wrape...

网友评论

    本文标题:python基础知识点总结

    本文链接:https://www.haomeiwen.com/subject/hpfmoctx.html