python易错知识集合】的更多相关文章

本篇用于记录在写leetcode时遇到的python易错知识. 2019.8.29 1.Python range() 函数用法: range(start, stop[, step]) start: 计数从 start 开始.默认是从 0 开始.例如range(5)等价于range(0, 5); stop: 计数到 stop 结束,但不包括 stop.例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5 step:步长,默认为1.例如:range(0, 5) 等价于 range(0…
python中复数实现(-2) 0.5和开根号sqrt(-2)的区别** (-2)**0.5和sqrt(-2)是不同的,前者是复数后者是会报错的. print((-2)**0.5) #输出:(8.659560562354934e-17+1.4142135623730951j) import math math.sqrt(-2)#报错 ValueError: math domain error Python用循环构造的函数数组,运行这个数组里面的函数后返回值都一样 functions = [] f…
1. Python查找一个变量时会按照“局部作用域”, “嵌套作用域”, “全局作用域”,“内置作用域”的顺序进行搜索. 在实际开发中,我们应该尽量减少对全局变量的使用,因为全局变量的作用域和影响过于广泛,可能会发生意料之外的修改和使用,除此之外全局变量比局部变量拥有更长的生命周期,可能导致对象占用的内存长时间无法被垃圾回收.事实上,减少对全局变量的使用,也是降低代码之间耦合度的一个重要举措,同时也是对迪米特法则的践行.减少全局变量的使用就意味着我们应该尽量让变量的作用域在函数的内部,但是如果我…
1. #!/usr/bin/env python # -*- coding:utf-8 -*- 'one #报错 File "C:\Users\shuxiu\Desktop\test.py", line 4 'one ^ SyntaxError: EOL while scanning string literal EOL是行尾(end of line),错误原因:在发现字符串结尾之前先找到了行的结尾.…
问题1. int和list是不一样的 >>> a=1 >>> b=a >>> a+=1 >>> a,b (2, 1) >>> a=[1,2,3,4] >>> b=a >>> a+=[5] >>> a,b ([1, 2, 3, 4, 5], [1, 2, 3, 4, 5]) 通俗地讲,类型为int时,a和b是“不一样的”:类型为list时,a和b是“一样的”.术语叫…
1. #ifdef  和#if defined 的区别: 后者可以组成复杂的预编译条件,而如果判断的是单个宏定义的时候,两种用法的效果都是一样的. 2.#if 0 { code }#endif        //表示不编译这段代码,等同于注释的作用,#if 1 等于需要编译的.这个结构一般的用处就是你先前写的代码,现在用不上了,右不想删除,用这个方法比注释方便.…
li = [] for x in range(10): print(x) //在函数没有执行前(li[0]()),for 循环中x已经执行完,x会一直为 9 def fun(): print(x) //一直为 9 ,fun函数在for循环中是没有被调用的 return x li.append(fun) print(li[0]()) //9 li = [lambda :x for x in range(10)] print(type(li)) #<class 'list'> print(type…
name = "lzl" def f1(): print(name) def f2(): name = "eric" f1() f2() //结果为 lzl 记住在函数未执行之前,作用域已经形成了,作用域链也生成了…
关于嵌套: 嵌套使用中,  retrun inner  ---> 返回的是函数的地址 retrun inner() :    --->  运行inner()函数   ---> 运行inner()函数后的返回值a(假设)返回上级  -->       retrun inner()得到返回值a 如果函数没有指定返回值,那么默认的返回值就是 None 举例1: name = "老师" def outer(): name = "小屁孩" def in…
最近替另一个项目招人,要求基础知识好,随便问了一些基础题,发现了一些易错的点,总结一下. 1.判断一个空数组 var arr = []; 1)JSON.stringify(arr) == "[]" 2)arr instanceof Array && arr.length == 0 3)Array.prototype.isPrototypeOf(arr) && arr.length == 0 测试一个对象是否在另一个对象的原型链上 注意:此处要注意,单纯判…