虎瘦oo雄心在 2018-09-13 21:37:28 初学者学习Python的时候,会有一些梗非常不适应,这些是Python特有的地方,今天我罗列出一些,希望对初学者有帮助!
1.Python中多重循环如何退出比如我们在进行嵌套循环的时候,需要立刻退出,用break是不行的: 如果有其他语言基础的同学,会想当然的认为break就退出来啦!但是Python不行,看答案: 解决的办法:直接return或者加变量控制 2. 列表删除里面的坑前段时间小密圈同学问我,比如我们有一个列表里面有多个相同的值,假如:nums=[1,6,6,3,6,2,10,2,100],我想去掉6,可以这样写: 结果答案:会让你大跌眼镜:>>[1, 2, 2, 3, 6, 10, 100]怎么还有一个6啊,有没有搞错啊,完全不理解,特别是新手很不理解这样的结果。我们慢动作细细分解: 解释:
3.神奇的闭包大家都知道函数里面的变量使用完成之后,都是消失,除非你是全局变量。 但是神奇的Python里面有一个功能,可以记住父函数的内容,仿佛有记忆功能,比如: 解释:我们在init_nums会返回一个闭包的函数地址,这个函数有记忆功能,能记住在父函数里面的base_num的值,这一特性在某些地方非常有用! 4.深浅拷贝区别1).浅拷贝 一般使用copy.copy(),可以进行对象的浅拷贝.它复制了对象但对于对象中的元素,依然使用原始的引用. 使用copy对a进行浅拷贝,b复制了a的对象,但是b里面的[2,3,4]和a里面的[2,3,4]其实都是指向同一块内存地址,所以改变了a[1]之后,b里面的b[1]也发生了改变! 2).深度拷贝 深度拷贝需要用copy.deepcopy()进行深拷贝。它会复制一个容器对象,以及它里面的所有元素(包含元素的子元素) 当对a列表进行深度拷贝之后,b复制了a的对象,但是b里面的[2,3,4]和a里面的[2,3,4]其实都是指向不同的内存地址. a[1].append(5) print (a) print (b)>> [1, [2, 3, 4, 5]]#因为是深度拷贝,改变了a[1],b[1]内容不会改变 [1, [2, 3, 4]] 5. 一切皆对象如果你遇到下面的代码,不要怀疑写错了,先看一下: 1).函数可以当变量传递 2) .类也是一样的 Python里面一些皆对象,变量,任何函数方法,类统统都是对象,都是一类公民,都可以自由进行任何操作,这一点要注意。 上面这几个是Python和其他语言不太一样的地方,希望对初学者有帮助,Python还要很多好玩的技巧和语法,后面会继续讲解! |
|