posted @ 2019-07-15 21:37
anobscureretreat
阅读(11696)
推荐(0)
摘要:
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] b = filter(lambda x: x % 2 != 0, a) for i in b: print(i)
阅读全文
posted @ 2019-07-15 18:28
anobscureretreat
阅读(548)
推荐(0)
摘要:
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] b = [i for i in a if i % 2 != 0] print(b)
阅读全文
posted @ 2019-07-15 18:26
anobscureretreat
阅读(1140)
推荐(0)
posted @ 2019-07-15 18:21
anobscureretreat
阅读(681)
推荐(0)
摘要:
var = 5 def func(): global var var = 6 print(6)
阅读全文
posted @ 2019-07-15 18:14
anobscureretreat
阅读(463)
推荐(0)
posted @ 2019-07-15 18:09
anobscureretreat
阅读(504)
推荐(0)
摘要:
num = 'Hello world'.count('l')
阅读全文
posted @ 2019-07-15 17:57
anobscureretreat
阅读(253)
推荐(0)
摘要:
封装一个原本重复使用的正则表达式
阅读全文
posted @ 2019-07-15 17:56
anobscureretreat
阅读(823)
推荐(0)
摘要:
-(.*)是贪婪匹配,会把满足正则的尽可能多的往后匹配 -(.*?)是非贪婪匹配,会把满足正则的尽可能少匹配
阅读全文
posted @ 2019-07-15 17:54
anobscureretreat
阅读(2250)
推荐(0)
摘要:
try..except..else没有捕获到异常,执行else语句 try..except..finally不管是否捕获到异常,都执行finally语句
阅读全文
posted @ 2019-07-15 17:53
anobscureretreat
阅读(127)
推荐(0)
摘要:
让关键代码依赖于外部包:你可以为紧急的任务使用C、C++或机器语言编写的外部包,这样可以提高应用程序的性能 使用生成器,因为可以节约大量内存 多个if elif条件判断,可以把最有可能先发生的条件放到前面写,这样可以减少程序判断的次数,提高效率 使用较新的Python版本 在排序时使用键(key)
阅读全文
posted @ 2019-07-15 17:52
anobscureretreat
阅读(1429)
推荐(0)
摘要:
issue中查询是否有相似bug assert / try-except / IDE单步调式 框架可以查询源码或者查询官方文档
阅读全文
posted @ 2019-07-15 17:51
anobscureretreat
阅读(514)
推荐(0)
posted @ 2019-07-15 17:09
anobscureretreat
阅读(167)
推荐(0)
摘要:
@staticmethod:不需要表示自身对象的self和自身类的cls参数,就跟使用函数一样。 @classmethod也不需要self参数,但第一个参数需要是表示自身类的cls参数。
阅读全文
posted @ 2019-07-15 17:01
anobscureretreat
阅读(123)
推荐(0)
摘要:
传址 不可变类型(数值型、字符串、元组): 因变量不能修改,所以运算不会影响到变量自身 可变类型(列表字典):函数体运算可能会更改传入的参数变量。
阅读全文
posted @ 2019-07-15 16:59
anobscureretreat
阅读(622)
推荐(0)
摘要:
(1,)– tuple; (“1”) – str; (1) – int; >>> (2,)(2,)>>> (2)2>>> ("6")'6'>>>
阅读全文
posted @ 2019-07-15 16:53
anobscureretreat
阅读(1156)
推荐(0)
摘要:
lambda 函数是一种快速定义单行的最小函数,省去了定义函数,只是一个表达式, 它将创建一个匿名函数。 格式: 例子
阅读全文
posted @ 2019-07-15 16:49
anobscureretreat
阅读(150)
推荐(0)
posted @ 2019-07-15 16:44
anobscureretreat
阅读(185)
推荐(0)
摘要:
可迭代对象:任何你可以用for ... in ... 的对象都是可迭代对象, list,strings, files, sockets…。 当你创建一个list的时候,你一个个的获取list里面的值,这就是可迭代对象 迭代器:它是一个带状态的对象,他能在你调用next()方法的时候返回容器中的下一个
阅读全文
posted @ 2019-07-15 16:42
anobscureretreat
阅读(122)
推荐(0)
摘要:
为什么不能用 dct1 = dct2 赋值?因为指向的是同一个内存地址 针对复合型对象而言,深浅拷贝会有如下区别: - 浅拷贝:创建一个新复合型对象, 然后将所有原对象包含的其他对象的内存引用插入到新对象里面 - 深拷贝:创建一个新复合型对象, 将所有的原对象的的拷贝值插入到新对象中
阅读全文
posted @ 2019-07-15 16:26
anobscureretreat
阅读(124)
推荐(0)
摘要:
不管在处理文件过程中是否发生异常,都能保证 with 语句执行完毕后已经关闭了打开的文件句柄。如果使用传统的 try/finally 范式,则要使用类似如下代码: 格式: context_expression 要返回一个上下文管理器对象,该对象并不赋值给 as 子句中的 target(s) ,如果指
阅读全文
posted @ 2019-07-15 16:18
anobscureretreat
阅读(186)
推荐(0)
摘要:
__new__ 控制类实例创建过程时使用, 会在__init__ 调用之前调用, 调用这个方法之后,会返回一个实例 == __init__中的 self __init__ 控制初始化一个类实例, 不会返回任何东西,它只负责初始化一个类实例
阅读全文
posted @ 2019-07-15 14:53
anobscureretreat
阅读(113)
推荐(0)
摘要:
为了能让一个函数接受任意数量的位置参数:* 为了接受任意数量的关键字参数:** *参数只能出现在函数定义中最后一个位置参数后面,而**参数只能出现在最后一个参数 解决的问题:构造一个可接受任意数量参数的函数
阅读全文
posted @ 2019-07-15 14:51
anobscureretreat
阅读(127)
推荐(0)
摘要:
>>> int("1.6") Traceback (most recent call last): File "", line 1, in ValueError: invalid literal for int() with base 10: '1.6' >>> float("1.6") 1.6 >>>
阅读全文
posted @ 2019-07-15 14:41
anobscureretreat
阅读(448)
推荐(0)
摘要:
可变类型(mutable):变量进行append、+=等这种操作后 == 改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。
阅读全文
posted @ 2019-07-15 14:30
anobscureretreat
阅读(3601)
推荐(0)
摘要:
删除字典某个键 – del 合并两个字典 – update() 对一个巨大的字典进行遍历 py2使用iteritems() ;py3使用items()
阅读全文
posted @ 2019-07-15 13:59
anobscureretreat
阅读(146)
推荐(0)
posted @ 2019-07-15 13:41
anobscureretreat
阅读(158)
推荐(0)
摘要:
字符编码: py3中默认字符编码是unicode;py2中默认字符编码是 ASCII,如果文件中出现了中文,需要在顶部加入coding声明#coding:utf8 让用户输入:py3中直接使用input(); py2中需要使用raw_input() range和xrange:py3中的range =
阅读全文
posted @ 2019-07-15 13:38
anobscureretreat
阅读(196)
推荐(0)
摘要:
python2 另外,在Python3中上面的代码的输出有何不同(假设代码中的print语句都转化成了Python3中的语法结构) 在Python2中,代码的输出是: 默认情况下,如果两个操作数都是整数,Python2默认执行整数运算。所以,5/2 结果是2,而5./2结果是2.5 注意你可以通过下
阅读全文
posted @ 2019-07-15 13:23
anobscureretreat
阅读(637)
推荐(0)
摘要:
a=[1,2,4,2,4,5,7,10,5,5,7,8,9,0,3] a.sort() last=a[-1] for i in range(len(a)-2,-1,-1): if last==a[i]: del a[i] else: last=a[i] print(a)
阅读全文
posted @ 2019-07-15 12:55
anobscureretreat
阅读(1144)
推荐(0)
摘要:
答:解决方法是在function的开始插入一个global声明:
阅读全文
posted @ 2019-07-15 09:24
anobscureretreat
阅读(656)
推荐(0)
摘要:
答:术语叫贪婪匹配( <.> )和非贪婪匹配(<.?> ) 例如:
阅读全文
posted @ 2019-07-15 09:19
anobscureretreat
阅读(986)
推荐(0)
摘要:
1,使用set函数,set(list) 2,使用字典函数,
阅读全文
posted @ 2019-07-15 09:16
anobscureretreat
阅读(860)
推荐(0)
摘要:
答:lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数 lambda函数:首要用途是指点短小的回调函数
阅读全文
posted @ 2019-07-15 09:14
anobscureretreat
阅读(743)
推荐(0)
摘要:
这里能说的很多。你应该提到下面几个主要的点: Python在内存中存储了每个对象的引用计数(reference count)。如果计数值变成0,那么相应的对象就会小时,分配给该对象的内存就会释放出来用作他用。 偶尔也会出现引用循环(reference cycle)。垃圾回收器会定时寻找这个循环,并将其回收。举个例子,假设有两个对象o1和o2,而且符合o1.x == o2和o2.x == ...
阅读全文
posted @ 2019-07-15 09:12
anobscureretreat
阅读(311)
推荐(0)
摘要:
答:PyChecker是一个python代码的静态分析工具,它可以帮助查找python代码的bug, 会对代码的复杂度和格式提出警告 Pylint是另外一个工具可以进行codingstandard检查
阅读全文
posted @ 2019-07-15 09:09
anobscureretreat
阅读(793)
推荐(0)
摘要:
答:re模块中match(pattern,string[,flags]),检查string的开头是否与pattern匹配。 re模块中research(pattern,string[,flags]),在string搜索pattern的第一个匹配值。
阅读全文
posted @ 2019-07-15 09:08
anobscureretreat
阅读(746)
推荐(0)
摘要:
答:赋值(=),就是创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个。 浅拷贝:创建一个新的对象,但它包含的是对原始对象中包含项的引用(如果用引用的方式修改其中一个对象,另外一个也会修改改变){1,完全切片方法;2,工厂函数,如list();3,copy模块的copy()函数} 深拷贝:创建一个新的对象,并且递归的复制它所包含的对象(修改其中一个,另外一个不会改变){copy...
阅读全文
posted @ 2019-07-15 09:06
anobscureretreat
阅读(1145)
推荐(0)