摘要:使用timeout_decorator模块进行处理,该模块提供了装饰器 [root@web1 ~]# pip install timeout_decorator [root@web1 ~]# vim a.py #!/usr/bin/env python3 #-*- coding: utf-8 -*-
阅读全文
摘要:ipython中无法使用tab补全,并且调用方法直接推出 报错 In [2]: help(open) Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/IPython/terminal/pt
阅读全文
摘要:柯里化 将原本接收两个参数的函数转换为一个新的只接收一个参数的函数 举例 def add(x, y): return x + y print(add(1, 2)) 运行结果 3 使用柯里化 def add(x): def _add(y): return x + y return _add foo =
阅读全文
摘要:定义 一个函数可以作为另一个函数的变量、参数、返回值等。在数学中,形如y=fn(fn1(x)) 两种高阶函数 参数为函数 def foo(): print("foo")def bar(func): func() print("bar")bar(foo) 返回值为函数 def outer(x): de
阅读全文
摘要:递归函数recursion 函数直接或者间接调用自身,这就是递归函数。能用递归函数解决的问题,一般使用循环也可以解决。递归函数一定要有边界 递归函数的案例 一、斐波那契数列 求斐波那契数列前n项 def fib(n): return 1 if n < 1 else fib(n - 1) + fib(
阅读全文
摘要:闭包概念 自由变量:嵌套函数中,未在本地作用域中定义的变量,但在外层函数中定义了 内层函数引用了外层函数中定义的自由变量,就形成闭包。函数调用后,闭包的变量值不会被丢弃。 def outer(): lst = [0] def inner(): lst[0] += 1 return lst[0] re
阅读全文
摘要:变量名的查找规则 Python 在查找变量或者“名称”时,是按照 LEGB 规则查找的:Local-->Enclosed-->Global-->Built in L —— Local(function);本地作用域、局部作用域的命名空间。在函数被调用时创建、调用结束消亡 E —— Enclosing
阅读全文
摘要:作用域 标识符的可见范围就是作用域,也就是常说的变量的作用域 全局作用域 在整个代码运行环境内都可见 举例 x = 5 def fn(): print(x) fn() 运行结果 5 局部作用域 在函数、类内部可见。局部变量的范围不能超过其所在的局部作用域 def fn(): x = 5 return
阅读全文
摘要:函数的返回值 Python的函数使用return语句返回“返回值”,所有的函数都有返回值,如果没有return语句,隐式调用return None 测试return语句后的语句是否执行 def test(x): print(x) return x print(x + 1) ## 该语句不会执行,因为
阅读全文
摘要:参数解构 当给函数传参的时候,可以在集合类型前使用*或**,把集合类型的参数解开,提取所有元素作为实参。提取的元素数目要和形参匹配,类型也要匹配 字典类型使用**解构关键字参数,非字典类型使用*解构 举例说明 def add(x, y): ret = x + y print(ret) add(*(4
阅读全文
摘要:函数 由函数名、参数列表以及语句块构成的能实现某种功能的代码段。函数可以按照功能组织代码,减少代码冗余。是结构化编程的核心 函数的定义 使用def语句定义函数 def 函数名(参数列表): 函数体( 代码块 ) [return 返回值] 函数定义时,参数列表称为形式参数 语句块以4个空格缩进,如果没
阅读全文
摘要:eval函数用于计算字符串表达式的值,并返回结果。 语法 eval(source, globals=None, locals=None, /) 其中source为字符串,Python使用globals全局字典和locals局部字典作为命名空间,将expression当做表达式进行解析和计算 举例 I
阅读全文
摘要:id() 返回对象的唯一标识,CPython返回内存地址 In [12]: a=1 In [13]: id(a) Out[13]: 1444225744 hash() 返回一个不可变对象的哈希值 In [14]: hash(a) Out[14]: 1 In [17]: a=[1,2] In [18]
阅读全文
摘要:生成器表达式 generator expression 生成器是迭代器的一种。与解析式的不同是惰性计算、延迟计算 语法: (返回值 for 元素 in 可迭代对象 if 条件) 使用next()获取生成器的值,每次顺序取一个值,所有值被取完之后再取值就返回None 应用举例 var = ("{:x<
阅读全文
摘要:解析式 Comprehension 解析式是将一个容器类型的可迭代对象转换成另一个对应类型容器的工具。在转换过程中,可以指定元素必须符合一定的条件,才能添加至新的列表中,这样每个元素都可以按需要进行转换。 语法 [返回值 for element in iterable [ if condition
阅读全文
摘要:介绍 字典是由key-value键值对组成的可变的、无序的、key不重复的数据集 键的类型:可以是整数和任何不可变的类型,也可以是非整数。如浮点数、字符串或元组。 字典的定义和初始化 dict() In [12]: d1=dict() In [13]: d={} In [14]: print(typ
阅读全文
摘要:set性质 可变的、无序的、不重复的元素的集合 set定义和初始化 语法: set() -> 空集合 set(iterable) -> set对象 In [2]: s1=set() In [3]: s1 Out[3]: set() In [4]: s2=set(range(5)) In [5]: s
阅读全文
摘要:封装 使用逗号将多个值组合在一起,返回一个元组,省略了小括号 In [72]: tp1=(1,2) In [73]: type(tp1) Out[73]: tuple In [74]: tp2=1,2 In [75]: type(tp2) Out[75]: tuple In [76]: tp2='a
阅读全文
摘要:定义 如果变量的值不关心,Python中使用 "_"定义此变量,定义成下划线是不希望被使用,除非明确知道这个数据需要使用 例子 In [1]: lst=[2,5,1,6] In [2]: fst,*sec=lst In [3]: fst Out[3]: 2 In [4]: sec Out[4]: [
阅读全文
摘要:切片 使用索引范围访问线性结构。 语法: sequence[start:stop:step],返回[start,stop)区间的序列 start为0时,可以省略,表示从头取到stop-1索引;stop为0也可以省略,表示取start到结尾的整个序列,支持负索引。 start超过左边界,表示取到开头,
阅读全文