![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python
东师小镇
这个作者很懒,什么都没留下…
展开
-
Python 的惰性求值与惰性序列
惰性求值在编程语言理论中,惰性求值(英语:Lazy Evaluation),又译为惰性计算、懒惰求值,也称为传需求调用(call-by-need),是一个计算机编程中的一个概念,它的目的是要最小化计算机要做的工作。它有两个相关而又有区别的含意,可以表示为“延迟求值”和“最小化求值”。避免不必要的计算,带来性能的提升(最小化求值)。 对于Python中的条件表达式 if x and y,在...翻译 2018-07-23 14:57:48 · 2894 阅读 · 0 评论 -
Python中编写带参数decorator
考察上一节的 @log 装饰器:def log(f): def fn(x): print 'call ' + f.__name__ + '()...' return f(x) return fn发现对于被装饰的函数,log打印的语句是不能变的(除了函数名)。如果有的函数非常重要,希望打印出'[INFO] call xxx()...',有...原创 2018-07-31 15:59:09 · 881 阅读 · 0 评论 -
Python中完善decorator
@decorator可以动态实现函数功能的增加,但是,经过@decorator“改造”后的函数,和原函数相比,除了功能多一点外,有没有其它不同的地方?在没有decorator的情况下,打印函数名:def f1(x): passprint f1.__name__输出: f1有decorator的情况下,再打印函数名:def log(f): def wrapp...原创 2018-07-31 16:11:26 · 124 阅读 · 0 评论 -
Python中偏函数
当一个函数有很多参数时,调用者就需要提供多个参数。如果减少参数个数,就可以简化调用者的负担。比如,int()函数可以把字符串转换为整数,当仅传入字符串时,int()函数默认按十进制转换:>>> int('12345')12345但int()函数还提供额外的base参数,默认值为10。如果传入base参数,就可以做 N 进制的转换:>>> i...原创 2018-07-31 16:23:57 · 145 阅读 · 0 评论 -
Python中模块和包的概念
问题1. 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。方法:为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在Python中,一个.py文件就称之为一个模块(Module)。使用模块有什么好处?最大的好处是大大提高了代码的可维护性。 其次,编...转载 2018-08-01 15:08:17 · 182 阅读 · 0 评论 -
Python之使用模块
Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用。我们以内建的sys模块为例,编写一个hello的模块:#备注【 sys ——系统文件 Sys contains data and methods for interacting with the Python interpreter. sys包含用于与...转载 2018-08-01 18:28:29 · 106 阅读 · 0 评论 -
Python 中对 if __name__ == '__main__' 的理解
程序入口对于很多编程语言来说,程序都必须要有一个入口,比如 C,C++,以及完全面向对象的编程语言 Java,C# 等。如果你接触过这些语言,对于程序入口这个概念应该很好理解,C 和 C++ 都需要有一个 main 函数来作为程序的入口,也就是程序的运行会从 main 函数开始。同样,Java 和 C# 必须要有一个包含 Main 方法的主类来作为程序入口。而 Python 则有不同,它属...转载 2018-08-01 18:35:47 · 97 阅读 · 0 评论 -
Python之导入模块
要使用一个模块,我们必须首先导入该模块。Python使用import语句导入一个模块。例如,导入系统自带的模块 math:import math你可以认为math就是一个指向已导入模块的变量,通过该变量,我们可以访问math模块中所定义的所有公开的函数、变量和类: >>> math.pow(2, 0.5) # pow是函数1.4142135623730951...原创 2018-08-01 18:43:30 · 2220 阅读 · 0 评论 -
Python中动态导入模块
如果导入的模块不存在,Python解释器会报 ImportError 错误:>>> import somethingTraceback (most recent call last): File "<stdin>", line 1, in <module>ImportError: No module named something有的时候...原创 2018-08-02 10:01:00 · 294 阅读 · 0 评论 -
Python之使用__future__
Python的新版本会引入新的功能,但是,实际上这些功能在上一个老版本中就已经存在了。要“试用”某一新的特性,就可以通过导入__future__模块的某些功能来实现。例如,Python 2.7的整数除法运算结果仍是整数:>>> 10 / 33但是,Python 3.x已经改进了整数的除法运算,“/”除将得到浮点数,“//”除才仍是整数:>>>...原创 2018-08-02 10:10:42 · 245 阅读 · 0 评论 -
Python简介
1. Python是一种什么语言?首先,我们普及一下编程语言的基础知识。用任何编程语言来开发程序,都是为了让计算机干活,比如下载一个MP3,编写一个文档等等,而计算机干活的CPU只认识机器指令,所以,尽管不同的编程语言差异极大,最后都得“翻译”成CPU可以执行的机器指令。而不同的编程语言,干同一个活,编写的代码量,差距也很大。比如,完成同一个任务,C语言要写1000行代码,Java只需要写10...转载 2018-08-11 11:22:25 · 222 阅读 · 0 评论 -
Python解释器
当我们编写Python代码时,我们得到的是一个包含Python代码的以 .py 为扩展名的文本文件。要运行代码,就需要Python解释器去执行 .py 文件。由于整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。事实上,确实存在多种Python解释器。CPython当我们从Python官方网...转载 2018-08-11 11:57:24 · 153 阅读 · 0 评论 -
Python中编写无参数decorator
Python的 decorator 本质上就是一个高阶函数,它接收一个函数作为参数,然后,返回一个新函数。使用 decorator 用Python提供的 @ 语法,这样可以避免手动编写 f = decorate(f) 这样的代码。考察一个@log的定义:def log(f): def fn(x): print 'call ' + f.__name__ + '(...原创 2018-07-31 15:55:41 · 200 阅读 · 0 评论 -
Python的可变参数和关键字参数(*args 、**kw)
可变参数在Python函数中,还可以定义可变参数。顾名思义,可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。我们以数学题为例子,给定一组数字a,b,c……,请计算a2 + b2 + c2 + ……。要定义出这个函数,我们必须确定输入的参数。由于参数个数不确定,我们首先想到可以把a,b,c……作为一个list或tuple传进来,这样,函数可以定义如下:d...转载 2018-07-31 12:25:15 · 278 阅读 · 0 评论 -
Python 的reduce()函数
reduce()函数也是Python内置的一个高阶函数。reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。例如,编写一个f函数,接收x和y,返回x和y的和:def f(x, y): return x + y...原创 2018-07-23 20:16:30 · 175 阅读 · 0 评论 -
Python的filter()函数
filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个序列,函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新的序列Iterator。例如,要从一个list [1, 4, 6, 7, 9, 12, 17]中删除偶数,保留奇数,首先,要编写一...原创 2018-07-24 19:21:41 · 6175 阅读 · 0 评论 -
Python学习笔记(一)
1. Python 的特点:优雅、明确、简单(尽量写简单易懂的代码,尽量写少的代码)。 Python 适合的领域:(1)Web网站和各种网络服务; (2)系统工具和脚本; (3)作为“胶水”语言把其他语言开发的模块包装起来方便使用。...原创 2018-07-19 21:44:40 · 90 阅读 · 0 评论 -
Python 的sorted()函数——自定义排序
Python内置的 sorted()函数可对list进行排序:>>> sorted([36, 5, -12, 9, -21]) #默认是升序排列[-21, -12, 5, 9, 36]此外, sorted()函数也是一个高阶函数,它还可以接收一个 key 函数来实现自定义的排序,例如按绝对值大小排序:>>> sorted([36, 5, ...原创 2018-07-25 19:40:55 · 6813 阅读 · 0 评论 -
Python的返回函数——函数作为返回值 和 闭包
返回函数高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回。例如:实现一个可变参数的求和。通常情况下,求和的函数是这样定义的:def calc_sum(*args): # calc ['kælk] 计算; calculate ax = 0 for n in args: ax = ax + n return axprint(calc...原创 2018-07-26 13:21:37 · 3704 阅读 · 1 评论 -
Python的匿名函数
当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。在 Python 中,对匿名函数提供了有限支持。以 map()函数为例,计算 时,除了定义一个 f(x)的函数外,还可以直接传入匿名函数:>>> list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]))[1, 4, 9, 16, 25, ...原创 2018-07-26 19:46:37 · 178 阅读 · 0 评论 -
Python 学习笔记(二)
一、内容概要函数式编程:注意不是“函数编程”,多了一个“式”; 模块:如何使用模块; 面向对象编程:面向对象的概念、属性、方法、继承、多态等; 定制类:利用 Python 的特殊方法定制类。二、学习目标掌握函数式编程; 掌握面向对象编程; 能够编写模块化的程序。三、函数式编程什么是函数式编程?函数:function函数式:functional ,一种编程范式,是一种...原创 2018-07-22 18:41:58 · 122 阅读 · 0 评论 -
Python: strip() 函数
声明:s为字符串,rm为要删除的字符序列s.strip(rm) 删除s字符串中开头、结尾处,位于 rm 删除序列中的字符s.lstrip(rm) 删除s字符串中开头处,位于 rm 删除序列中的字符s.rstrip(rm) 删除s字符串中结尾处,位于 rm 删除序列中的字符举例说明:(1)rm 为空时,默认删除空白符(包括'\n', '\r',...转载 2018-07-22 19:35:42 · 94 阅读 · 0 评论 -
Python : sqrt() 函数
开平方函数 sqrt() 返回 x 的平方根(x > 0)语法:import mathmath.sqrt( x )注意: 此函数不可直接访问,需要导入math模块,然后需要使用math静态对象调用此函数。 参数 x -- 数值表达式 返回结果是浮点数。import math # This will import...原创 2018-07-22 20:21:02 · 21604 阅读 · 2 评论 -
Python: map() 函数
map()是 Python 内置的高阶函数,它接收两个参数,一个函数 f 和一个Iterable(可迭代的),map将函数 f 依次作用到序列的每个元素上,并把结果作为新的 Iterator(迭代器) 返回。例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9],如果希望把list的每个元素都作平方,就可以用map()函数:因此,我们只需要传入函数 f(x)=x*x...原创 2018-07-22 21:05:48 · 281 阅读 · 0 评论 -
Python的decorator装饰器
问题:定义了一个函数,想在运行时动态增加功能,但又不想改动函数本身的代码。示例:希望对下列函数调用增加log功能,打印出函数调用: def f1(x): return x * 2 def f2(x): return x * x def f3(x): return x * x * x 方法1:直接修改...原创 2018-07-31 11:45:17 · 94 阅读 · 0 评论 -
Python之安装第三方模块
在Python中,安装第三方模块,是通过包管理工具pip完成的。如果你正在使用Mac或Linux,安装pip本身这个步骤就可以跳过了。如果你正在使用Windows,请参考安装Python一节的内容,确保安装时勾选了pip和Add python.exe to Path。在命令提示符窗口下尝试运行pip,如果Windows提示未找到命令,可以重新运行安装程序添加pip。注意:Mac或L...转载 2018-08-02 16:12:12 · 443 阅读 · 0 评论