python高级编程

包和模块

    包:  package,在Python中包是用来包裹模块的文件夹,但并不是所有的文件夹就是包,在Python中包里面有一个__init__.py
            注:包是文件夹,但文件夹不一定是包
    模块:XXX.py
            常见的导包方式:           import package.module
                                                    import package.module as 别名
                                                    from package import  module
                                                    from package1,package2,…… from module
                                                    from package import * 导入所有模块

is和==

        都是用来判断变量的
        is是用来判断两个变量的内存地址
        ==是用来判断两个变量的值
    小整形缓存区(-5~256),当变量的取值在这个小整形缓存区范围内会在内存中开辟新的空间存储
    字符串缓存区,但字符串不能包含特殊字符

 深拷贝和浅拷贝

    深拷贝:    引用复制(基本数据)——主要操作的是栈内的复制——变量。使用递归的方式完成拷贝
    浅拷贝:   拷贝对象,对象是存储在堆中,拷贝的是堆内存。  只拷贝了对象的第一层
    注:需要拷贝对象的时候,一般建议使用浅拷贝(一层:效率高,占用内存少),如果需要完全分离就是要深拷贝
    不可变类型(元组、字符串、数值)浅拷贝和深拷贝永远只有一份
        思考:元组元数是可变的(元素可以是列表),浅拷贝和深拷贝结果?
        >>> a=(1,2,3,[4,5],6)
        >>> b=copy.copy(a)
        >>> id(b)
        21188392
        >>> id(a)
        21188392
        >>> c=copy.deepcopy(a)
        >>> id(c)
        21224976

生成器

    列表推导式:
        作用: 快速得到一个需要的列表
        生成一个0~100的列表:   法一:    ls=[0,1,2,3,4,……,100]
                                                  法二:    ls=[x for x in range(101)]
                                                  带条件的:  ls=[x for x in range(101) if x % 2 == 0]
                                                  循环套循环:[i*j for i in range(10) for j in range(10)]
          循环套循环 问题:假设生成的列表特别多时,空间浪费就非常大,引起大量的元素占用空间
    列表生成器:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值