可以使用for x in 数据 的那么 这个数据就是可迭代对象. 通过计算生成下一个值的数据就是生成器 可以使用next(数据) 来计算出下一个值的数据就是迭代器(生成器属于迭代器) -------------------------------------------------------------- 先说迭代: 在Python中,迭代是通过for ... in来完成的,能实现for  ....in的数据就是可迭代对象 使用isinstance 来判断他属不属于可迭代对象Iterable,…
面向对象编程,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 把老师分为一类,把学生分为一类.具体到某一个学生就是  这类中的一个具体对象,对象的 共同属性和方法可以定义在类中.特殊的可以自己额外添加.  类也可以额外添加属性和方法 在Python中,所有数据类型都可以视为对象,当然也可以自定义对象. 数据封装.继承和多态是面向对象的三大特点 私有属性,私有方法,在类外面禁止使用的.加上__只是修改了名字,其实在外面也可以使用. 给实例额外添…
可以实现for ...in 的都可以称为,可迭代对象,Iterable 可以使用isinstance(是什么实例嘛)来判断是不是可迭代对象 可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator 可以使用isinstance(是什么实例嘛)来判断是不是迭代器(主要是可以使用next()计算出下一个值) 而列表啊,元组就不能计算出来.他们是直接就把数据放在里面了 生成器都是Iterator对象,但list.dict.str虽然是Iterable,却不是Iterator. 把…
参数化: 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…
当函数很简单的时候采用匿名函数很方便.…
把复杂的任务拆成各个小的函数,通过函数的调用来完成任务.这就是面向过程编程. 高阶函数:就是让函数的参数能够接收别的函数.把函数作为参数传入到另一个函数. 函数名也是变量.和变量用法一样的,指向一个函数内存 Python自带的高阶函数.(我怎么感觉这个部分都写过了,我一般在路上看,晚上回来写) Python内建的filter()函数用于过滤序列. 好好说说sorted 除了把函数作为参数传入另个一函数,也可以把函数作为返回值返回 闭包:当一个函数返回了一个函数后,其内部的局部变量还被新函数引用,…
函数就是将你的代码封装起来,可以重复利用.不需要每次就写重复的代码 def 函数名(位置参数,默认参数=10,可变参数,关键字参数): 代码块 return 值 定义函数时,需要确定函数名和参数个数: 如果有必要,可以先对参数的数据类型做检查: 函数体内部可以用return随时返回函数结果: 函数执行完毕也没有return语句时,自动return None. 函数可以同时返回多个值,但其实就是一个tuple. 位置参数和默认参数: 可变是关键的:…
字典:以键值对的形式存储数据.他就像字典一样,你可以查偏旁,直接跳到500页找到你想要的数据.但是列表就是从第一页开始一个一个的找,找到500页需要的时间很多. 所以字典就是查找速度快,但是所需要的空间大.这种就是用空间来换取时间的方式.. 字典里的键必须独一无二,牢记的第一条就是dict的key必须是不可变对象. d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} 字典就是用来存放一类, d = {'FirstName': "fan", 'Last…
因为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,所以再次遇到廖老师的教程,忍不住要收藏一下.会在廖老师的教程中用红色字体插入批注或对知识点进行标识. 首先,普及一下编程语言的基础知识.用任何编程语言来开发程序,都是为了让计算机干活,…
在学习廖老师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的函数其实都指向某个变量.既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数. 排序算法 排序也是在程序中经常用到的算法.无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小.如果是数字,我们可以直接比较,但如果是字符串或者两个对象呢?直接比较数学上的大小是没有意义的,因此,比较的过程必须通过函数抽象出…
#!/usr/bin/env python3 # -*- coding: utf-8 -*- d = {'a': 1, 'b': 2, 'c': 3} for key in d: # 默认迭代是key print(key) ''' a c b ''' # 迭代value for value in d.values(): print(value) ''' 3 1 2 ''' for k, v in d.items(): print(k, v) ''' c 3 a 1 b 2 ''' #判断一个对象…
#python3.7 内置函数整理 #abs(x) #返回数字的绝对值. 参数可以是整数或浮点数. 如果参数是复数,则返回其大小 # print(abs(1)) # print(abs(-1)) # print(abs(-1.234)) # 1 # 1 # 1.234 #all(iterable) #如果一个iterable(可迭代对象)的所有元素都为true(或者iterable为空),则返回True. # a = all([1]) # b = all([]) # c = all([1,[],…
[CSS简介.基础选择器.字体属性.文本属性.引入方式]前端小抄(2) 本学习笔记是个人对 Pink 老师课程的总结归纳,转载请注明出处! 一.CSS简介 CSS 的主要使用场景就是布局网页,美化页面的. 1.1 HTML的局限性 HTML 只关注内容的语义,虽然 HTML 可以做简单的样式,但是带来的是无尽的臃肿和繁琐-- 1.2 CSS网页的美容师 CSS 是 层叠样式表 的简称. 有时我们也会称之为 CSS 样式表 或 级联样式表. CSS 也是一种 标记语言. CSS 主要用于设置 HT…
[CSS复合选择器.元素显示模式.背景]前端小抄(3) 本学习笔记是个人对 Pink 老师课程的总结归纳,转载请注明出处! 一.CSS的复合选择器 1.1 什么是复合选择器 在 CSS 中,可以根据选择器的类型把选择器分为:基础选择器 和 复合选择器,复合选择器是建立在基础选择器之上,对基础选择器进行组合形成的. 复合选择器可以更准确.更高效的选择目标元素(标签) 复合选择器是由两个或多个基础选择器,通过不同的方式组合而成的 常用的复合选择器包括:后代选择器.子选择器.并集选择器.伪类选择器等…
概要 这里的迭代函数指的是对数组对象的操作方法,js数组共有五个迭代函数:every.fifter.forEach.map.some. 1.every every方法,返回值为Boolean类型,true表示数组中所有元素都满足条件,false表示数组中至少有一个不满足条件,代码如下: var numbers = [1,2,3,4,5,4,3,2,1]; numbers.every(function(item,index,array){ return item > 2; }) 输出:false…
迭代模式设置共生死亡,一般来说.我们只是想实现一个集,我们需要的同时提供这个集合的迭代器,喜欢java中间Collection.List.Set.Map等,这些集合都有自己的迭代器.假如我们要实现一个这种新的容器,当然也须要引入迭代器模式.给我们的容器实现一个迭代器.----题记 设计模式 迭代器模式:提供一种方法顺序訪问一个聚合对象中的各个元素,而不暴露其内部的表示. 把游走的任务放在迭代器上.而不是聚合上. 这样简化了聚合的接口和实现.也让责任各得其所. 组合模式:同意你将对象组合成树形结构…
转自http://blog.csdn.net/c406495762/article/details/75172850 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[-] 一 简单k-近邻算法 1 k-近邻法简介 2 距离度量 3 Python3代码实现 31 准备数据集 32 k-近邻算法 33 整体代码 二 k-近邻算法实战之约会网站配对效果判定 1 实战背景 2 准备数据数据解析 3 分析数据数据可视化 4 准备数据数据归一化 5 测试算法验证分类器 6 使用算法构建…
 node.js   概念问题: Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境.   npm是一个node的包管理工具  ,也是一个网站  ,还是一条命令.Node.js 的包管理器 npm,成为世界上最大的开放源代码的生态系统.   1.用node编写http服务器 方法综述: * 1.引入 http 模块 * 2.创建服务器             var http=require("http");            接下来我们使用 h…
△命令行模式和Python交互模式 在Windows开始菜单选择“命令提示符”,就进入到命令行模式,它的提示符类似C:\>:在命令行模式下敲命令python,就看到类似如下的一堆文本输出,然后就进入到Python交互模式,它的提示符是>>>.在Python交互模式下输入exit()并回车,就退出了Python交互模式,并回到命令行模式. △Python文件名只能是英文字母.数字和下划线的组合.(但是实践证明中文也是可以的,但是不建议.)print()会依次打印每个字符串,遇到逗号“…
Redis是一个key-value存储系统,和Memccached类似,支持存储的value类型相对更多,很大程度上补偿memcached这类key-value存储的不足 他提供了Java,c/c++,c#,PHP,JavaScript,Pert,Object-c,Python,Erlang等客户端 Redis支持主从同步 redis的官网地址,Redis.io,(域名后缀io属于国家级) 目前,Vmware在赞助者redis项目的开发和维护 自我总结 ---------致自己…
在Python中,迭代是通过for ... in来实现.只要是可迭代的对象都可以用for ... in来进行历遍. 常用的有list.tuple.dict等.举例如下: 列表的迭代: L=[1,2,3,4,5,6,7] for item in L: print(item) 结果输出: 字典的迭代:下面的例子是迭代key,也可以迭代value D={'A':1,'B':2,'C':3,'D':4,'E':5,'F':6,'G':7} for key in D: print(key) 输出结果: 字…
举例说明,比如我们有一个函数f(x)=x2,要把这个函数作用在一个数组[1, 2, 3, 4, 5, 6, 7, 8, 9]上,就可以用map实现如下: 由于map()方法定义在JavaScript的Array中,我们调用Array的map()方法,传入我们自己的函数,就得到了一个新的Array作为结果: function pow(x) { return x * x; } var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.map(pow); // [1, 4,…