zoukankan      html  css  js  c++  java
  • Python 基础知识点的个人理解(一)

    1.Python可变类型和不可变类型

      Python数据类型可以分类两大类,可变类型和不可变类型,可变类型包括(列表,字典),不可变类型是(数值型,字符型,元组)

      不可变类型:比如数值型,如果指向一个变量的数值被更改的话,那么这个变量的地址也会变化,这是因为这个变量重新指向了一个新的对象,并不是在原来的数值上修改得来的。

      可变类型:比如列表,如果一个变量指向该列表,此列表的中的元素发生变化的时候,此变量指向的地址也就是改变列表的地址是不会发生变化的,也就是说更改是发生在原有的列表对象上的。

    2.深拷贝和浅拷贝

      深拷贝: 实现:copy模块下的deepcopy()方法

          包含对象里面的子对象的拷贝,所以原始对象的改变不会造成深拷贝里任何子元素的改变

      浅拷贝:实现:copy模块下的copy()方法

          仅仅对对象的顶层做了拷贝,没有拷贝子元素,所以原始数据发生变化,我们拷贝出来的对象也会发生变化

    3.__new__()和__init__()方法的区别

      首先他们的参数有不同,__new__第一个参数时cls,__init__()的第一个参数时self,

      __new__()方法是类静态方法,返回的是类的实例,决定着__init__()方法是否被调用(返回了实例就调用__init__(),没有返回就不调用)

      __init__()方法是实例方法,是对当前对象的初始化

    4.编码和解码问题

        编码/解码本质上是一种映射(对应关系),比如‘a’用ascii编码则是65,计算机中存储的就是00110101,但是显示的时候不能显示00110101,还是要显示'a',但计算机怎么知道00110101是'a'呢,这就需要解码,当选择用ascii解码时,当计算机读到                                00110101时就到对应的ascii表里一查发现是'a',就显示为'a'

        编码:真实字符→二进制串
        解码:二进制串→真实字符

        Python3 把系统默认编码设置为 UTF-8,文本字符和二进制数据区分得更清晰,分别用 str 和 bytes 表示。文本字符全部用 str 类型表示,str 能表示 Unicode 字符集中所有字符,而二进制字节数据用一种全新的数据类型,用 bytes 来表示。

        http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html

    5.列表推导式和生成器

                  对元素进行操作            生产元素    

            multiples = [squared(i) for i in range(30) if i % 3 is 0]
            生成器性能比较高一些






  • 相关阅读:
    matlab实现插值法sin函数
    matlab实现共轭梯度法、多元牛顿法、broyden方法
    matlab实现雅可比、高斯塞德尔、后项误差计算
    matlab实现高斯消去法、LU分解
    matlab实现不动点迭代、牛顿法、割线法
    matlab实现的嵌套乘法、高精度、二分法
    knn手写识别
    python笔记
    动态语言
    Spyder 快捷键
  • 原文地址:https://www.cnblogs.com/abel01250303/p/9742081.html
Copyright © 2011-2022 走看看