把复杂的任务拆成各个小的函数,通过函数的调用来完成任务.这就是面向过程编程. 高阶函数:就是让函数的参数能够接收别的函数.把函数作为参数传入到另一个函数. 函数名也是变量.和变量用法一样的,指向一个函数内存 Python自带的高阶函数.(我怎么感觉这个部分都写过了,我一般在路上看,晚上回来写) Python内建的filter()函数用于过滤序列. 好好说说sorted 除了把函数作为参数传入另个一函数,也可以把函数作为返回值返回 闭包:当一个函数返回了一个函数后,其内部的局部变量还被新函数引用,…
一.定义 简单说,"函数式编程"是一种"编程范式"(programming paradigm),也就是如何编写程序的方法论. 它属于"结构化编程"的一种,主要思想是把运算过程尽量写成一系列嵌套的函数调用.举例来说,现在有这样一个数学表达式:      (1 + 2) * 3 - 4  传统的过程式编程,可能这样写: var a = 1 + 2; var b = a * 3; var c = b - 4;  函数式编程要求使用函数,我们可以把运算过…
面向对象编程,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 把老师分为一类,把学生分为一类.具体到某一个学生就是  这类中的一个具体对象,对象的 共同属性和方法可以定义在类中.特殊的可以自己额外添加.  类也可以额外添加属性和方法 在Python中,所有数据类型都可以视为对象,当然也可以自定义对象. 数据封装.继承和多态是面向对象的三大特点 私有属性,私有方法,在类外面禁止使用的.加上__只是修改了名字,其实在外面也可以使用. 给实例额外添…
参数化: import timeimport list1 #想测试list1中的求和函数是否正确fun1import paramunittestimport unittest #先设置参数组@paramunittest.parametrized( {'a':1,'b':1,'c':2}, #前两个是参数a,b,最后一个是真确值 {'a':1,'b':0,'c':1}, {'a':1,'b':0,'c':0} ) class Testfun(unittest.TestCase): def setP…
python是动态语言,可以随时随地给实例对象添加属性和方法,但是我们想限制属性的名字,可以使用__slots__特殊变量来限制 使用__slots__要注意,__slots__定义的属性仅对当前类实例起作用,对继承的子类是不起作用的.只有当前类中才有作用 @property 把方法变成属性一样方便的调用 -------------------多重继承 通过多重继承,一个子类就可以同时获得多个父类的所有功能. ------------------定制类() 增加一个__str__方法 直接输入c…
列表和元组 list1 = [1,4,6,788,345,757]            tuple1 =      (345,234,567,878)         切记你的变量名不能和  help('keywords')中的重名 列表是[]包起来list是一种有序的集合.你还可以随意改变他的值. list1[0] = "fan" 想知道list怎么使用:help(list),一起皆对象 项目中无非就是对数据的增删改查,所以学list就是要学增删改查 python中自带的方法可以使…
python的语法主要就是严格的缩进.一般缩进都是四个空格.以冒号结尾的(:)就意味着他后面有代码块.(js代码块使用{}抱起来的,我记得c语言也是,但是python就不需要,他只要严格缩进的就可以了) python中的数:整数和浮点数(小数):整数的运算永远是精确地,小数运算可能会有四舍五入的误差.整数和浮点数在计算机内部存储的方式是不同的. 计算: 1/1 = 1.0(除法的运算结果是浮点数) 1//1 = 1  (//表示整除,整数整除结果是整数) 2.0//1.0 = 2.0 (浮点数整…
总是优先使用isinstance()判断类型,可以将指定类型及其子类“一网打尽”. 如果要获得一个对象的所有属性和方法,可以使用dir()函数,它返回一个包含字符串的list,比如,获得一个str对象的所有属性和方法: 类似__xxx__的属性和方法在Python中都是有特殊用途的,比如__len__方法返回长度.在Python中,如果你调用len()函数试图获取一个对象的长度,实际上,在len()函数内部,它自动去调用该对象的__len__()方法 仅仅把属性和方法列出来是不够的,配合geta…
在Python中,一个.py文件就称之为一个模块(Module) 可以作为module的文件类型有".py".".pyo".".pyc".".pyd".".so".".dll". (要导入模块的时候,该模块会生生成一个同名的pyc文件.pyc文件是py文件预编译的文件,是二进制字节码文件,提高加载的速度.如果是商用代码,就需要先编译成pyc.文件主要是不想把源代码暴露出来.) impor…
当函数很简单的时候采用匿名函数很方便.…
可以实现for ...in 的都可以称为,可迭代对象,Iterable 可以使用isinstance(是什么实例嘛)来判断是不是可迭代对象 可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator 可以使用isinstance(是什么实例嘛)来判断是不是迭代器(主要是可以使用next()计算出下一个值) 而列表啊,元组就不能计算出来.他们是直接就把数据放在里面了 生成器都是Iterator对象,但list.dict.str虽然是Iterable,却不是Iterator. 把…
可以使用for x in 数据 的那么 这个数据就是可迭代对象. 通过计算生成下一个值的数据就是生成器 可以使用next(数据) 来计算出下一个值的数据就是迭代器(生成器属于迭代器) -------------------------------------------------------------- 先说迭代: 在Python中,迭代是通过for ... in来完成的,能实现for  ....in的数据就是可迭代对象 使用isinstance 来判断他属不属于可迭代对象Iterable,…
函数就是将你的代码封装起来,可以重复利用.不需要每次就写重复的代码 def 函数名(位置参数,默认参数=10,可变参数,关键字参数): 代码块 return 值 定义函数时,需要确定函数名和参数个数: 如果有必要,可以先对参数的数据类型做检查: 函数体内部可以用return随时返回函数结果: 函数执行完毕也没有return语句时,自动return None. 函数可以同时返回多个值,但其实就是一个tuple. 位置参数和默认参数: 可变是关键的:…
字典:以键值对的形式存储数据.他就像字典一样,你可以查偏旁,直接跳到500页找到你想要的数据.但是列表就是从第一页开始一个一个的找,找到500页需要的时间很多. 所以字典就是查找速度快,但是所需要的空间大.这种就是用空间来换取时间的方式.. 字典里的键必须独一无二,牢记的第一条就是dict的key必须是不可变对象. d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} 字典就是用来存放一类, d = {'FirstName': "fan", 'Last…
---------------个人学习笔记--------------- ----------------本文作者吴疆-------------- ------点击此处链接至博客园原文------ 1.集合 集合是无序的.不重复的数据组合,主要作用是:关系测试.去重等,用{}表示,set() 创建集合. --------------关系测试------------------------------ intersection() 求集合交集     运算符为 & union() 求集合并集   …
一.文本文件读写的三种方法 1.直接读入 file1 = open('E:/hello/hello.txt') file2 = open('output.txt','w') #w是可写的文件 while True: line = file1.readline() #readline()是读取一行 # 这里可以进行逻辑处理 file2.write('"'+line[:]+'"'+",") if not line : #如果行读取完成,就直接跳出循环 break #记住…
python3 编码默认为unicode,unicode和utf-8都是默认支持中文的. 如果要python3的编码改为utf-8,则或者在一开始就声明全局使用utf-8 #_*_coding:utf-8_*_ 或者将字符串单独声明: a = "中文".encode("utf-8") 函数式编程 函数式编程中的函数指代的是数学中的函数. 函数式编程输入如果确定,则输出一定是确定的.函数中并没有很多逻辑运算 python是一个面向对象的语言,只是一部分支持函数式编程.…
1:Scala之函数式编程学习笔记: :Scala函数式编程学习: 1.1:Scala定义一个简单的类,包含field以及方法,创建类的对象,并且调用其方法: class User { private var name = "张三"; def hello(): Unit ={ println("hello : " + name) } //注:如果定义方法时不带括号,则调用的时候也不可以加括号,否则报错. def getName = name; } //创建一个obj…
概述 这是我读<javascript函数式编程>的读书笔记,供以后开发时参考,相信对其他人也有用. 说明:虽然本书是基于underscore.js库写的,但是其中的理念和思考方式都讲的很好,值得一读.不过如果不熟悉underscore.js库的话,读起来会有点困难. <javascript函数式编程>读书笔记1 对象的不变性 函数式编程中函数是一等公民,所以对于数据来说,需要他们是不可变的.另外,对象的不可变确实能够带来一些好处,比如:如果数据是不可变的,那么可以直接通过"…
概述 这是我读<javascript函数式编程>的读书笔记,供以后开发时参考,相信对其他人也有用. 说明:虽然本书是基于underscore.js库写的,但是其中的理念和思考方式都讲的很好,值得一读.不过如果不熟悉underscore.js库的话,读起来会有点困难. 从一段代码说起 由于parsInt函数有2个参数,所以下面的代码会得出意想不到的结果: [3.5, 5.3, 9.8, 13.4, 16.9].map(parseInt); //输出 [3, NaN, NaN, 1, 1] 原因是…
一.高阶函数 1.可以通过变量指向函数,达到类似别名的效果: >>> f = abs >>> f(-10) 10 2.函数的参数可以是函数,也就是函数可以作为一个入参 def add(x, y, f): return f(x) + f(y) 以下介绍几个高阶函数 map.reduce 这两个函数就不赘述了.和scala的功能类似,不过用法不一样,它接收两个参数,第一个是函数f,第二个是Iterable.并将计算结果作为新的Iterator返回,惰性的Iterator通过…
函数基础 一个函数就是将一些语句集合在一起的部件,它们能够不止一次地在程序中运行.函数的主要作用: 最大化的代码重用和最小化代码冗余 流程的分解 一般地,函数讲的流程是:告诉你怎样去做某事,而不是让你使用它去做某事. Python 中的 def 语句实际上是一个可执行的语句:当它运行时,它会创建一个新的函数对象并将其赋值给一个变量名.因为它是一个语句,一个 def 可以出现任一语句可以出现的地方--甚至是嵌套在其他的语句中.例如,下面的使用也是合法的: test = ... if test: d…
文件操作(续) 获得文件句柄位置,f.tell(),从0开始,按字符数计数 f.read(5),读取5个字符 返回文件句柄到某位置,f.seek(0) 文件在编辑过程中改变编码,f.detech() 获取文件编码,f.encoding() 获取文件在内存中的编号,f.fileno() 获取文件终端类型(tty.打印机等),f.isatty() 获取文件名,f.name() 判断文件句柄是否可移动(tty等不可移动),f.seekable() 判断文件是否可读,f.readable() 判断文件是…
因为Python是跨平台的,它可以运行在Windows.Mac和各种Linux/Unix系统上.在Windows上写Python程序,放到Linux上也是能够运行的. 要开始学习Python编程,首先要把Python安装到电脑里.安装后,可以得到Python解释器(就是负责运行Python程序的),一个命令行交互环境,还有一个简单的集成开发环境. 目前,Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的.由于3.x版越来越普及,廖老师的教程将以最新的Python 3.7…
一直想了解下Python,今儿在外面办事排队的时候,打开了廖老师的官网,找到了Python教程.虽然只是一篇关于Python的简介,但是通过将Python的特性与C进行对比,很生动地归纳了Python的一些特性.因为之前花过时间学习C,所以能够很容易地体会Python的特性.上学期通过廖老师的教程顺利掌握了Git,所以再次遇到廖老师的教程,忍不住要收藏一下.会在廖老师的教程中用红色字体插入批注或对知识点进行标识. 首先,普及一下编程语言的基础知识.用任何编程语言来开发程序,都是为了让计算机干活,…
MATLAB学习笔记——函数式文件 引入函数式文件 说明: 函数式文件主要用于解决计算中的参数传递和函数调用的问题. 函数式的标志是它的第一行为function语句. 函数式文件可以有返回值,也可以没有. 函数式文件执行之后,只保留最后结果,不保留任何中间过程,所定义的变量也仅在函数内部起作用,并随着调用的结束而被清除.即除无特殊声明外,其变量均为局部变量.  注意:存储函数式文件时文件名要与主函数名相同. 语法: 说明: 1.函数定义行定义了函数的输出和输入变量的个数和顺序. 2.H1行和帮助…
2017年6月13日19:08:13 任务: 看完函数式编程 笔记: 该看:函数式编程1.函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元.  理解:函数是面向过程的基本单元,这让我想起了C语言中的话.2.函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数!  理解:函数式编程就是一种抽象程度很高的编程范式,纯粹的函…
在学习廖老师git教程之多人协作模块时按照老师的操作先创建了另一个目录,然后在这个目录下从GitHub上clone了 learngit目录到这个目录下,同样的执行了git branch查看分支情况,确实是只有master,然后执行:git checkout -b dev origin/dev命令之后就报出了:"fatal: Cannot update paths and switch to branch 'dev' at the same time. Did you intend to chec…
先来学习一个新词:高阶函数 高阶函数英文叫Higher-order function.那么什么是高阶函数? JavaScript的函数其实都指向某个变量.既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数. 排序算法 排序也是在程序中经常用到的算法.无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小.如果是数字,我们可以直接比较,但如果是字符串或者两个对象呢?直接比较数学上的大小是没有意义的,因此,比较的过程必须通过函数抽象出…