- 博客(42)
- 收藏
- 关注
原创 临时记录-树莓派
https://zhuanlan.zhihu.com/p/21492887https://blog.youkuaiyun.com/hhyqhh/article/details/76692010
2020-02-20 15:52:27
157
原创 NumPy--06 array的分割
#array的分割import numpy as npA = np.arange(12).reshape((3,4))print(A)输出[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]]#np.split()只能进行等量分割,它返还一个列表#序列解包后,a,b为ndarray对象,type(a)=type(b)=<class ...
2018-12-18 22:39:01
275
原创 NumPy--05 array的合并
import numpy as np#numpy的array合并A = np.array([1,1,1])B = np.array([2,2,2])#纵向合并C = np.vstack((A,B)) #vertical stack#横向合并D = np.hstack((A,B)) #horizontal stackprint(A)print(B)print(C)p...
2018-12-18 22:29:24
162
原创 NumPy--04 索引与迭代
#矩阵的索引与迭代import numpy as npA = np.arange(3,15).reshape(3,4)print(A)#打印第2行print(A[2])#打印第二行第3列,以下两种方法效果相同print(A[2][3])print(A[2,3])#打印第3列print(A[:,3])#打印第一行第1,2列print(A[1,1:2])#迭代行f...
2018-12-18 22:19:39
281
原创 NumPy--03 运算
import numpy as npA = np.arange(0,20).reshape((4,5)#求索引的最值print(A)print(np.argmax(A))print(np.argmin(A))#以下运算可设置参数axis=0,1指定对行 列进行运算#求平均值,以下三种方法等效print(np.average(A))print(np.mean(A))pri...
2018-12-18 22:15:25
169
原创 NumPy--02 基本运算
首先创建两个数组a=np.array([10,9,8,7])b=np.arange(4)1.基本运算包括加减乘除 幂次方 ,对每个元素取sin cos tan 等a+ba-ba**310*np.sin(b)输出[10 10 10 10][10 8 6 4][1000 729 512 343][0. 8.41470985 9.092...
2018-12-17 22:12:29
240
原创 NumPy--01 ndarray对象
首先导入numpy库import numpy as np 一·创建ndarray对象(1)np.array(object,dtype=None)object为列表,元祖等可迭代序列dtype可指定为np.float16 32 64 np.int16 32 64例:array = np.array([[1,2,3],[4,5,6]],,dtype=np.float6...
2018-12-17 17:26:30
359
原创 面向对象--08类和对象相关BIF
1.issubclass(class,classinfo)若第一个参数是第二个参数的子类,则返回Ture。注:①一个类被认为是自身的子类②classinfo可以是类对象组成的元组,只要class与其中任意一个符合关系,就返回Ture>>> issubclass(A,object)True>>>object是所有类的基类 2.isinstance(object,c...
2018-03-25 21:56:38
176
原创 面向对象--07属性访问的魔法方法
重写一下四个魔法方法,即可控制对象的属性访问1.__getattr__(self,name)定义当用户试图获取一个不存在的属性时的行为2.__getattribute__(self,name)定义当该类的属性被访问时的行为(先于__getattr__(self,name)执行)3.__setattr__(self,name,value)定义当一个属性被设置时的行为4.__delattr__(sel...
2018-03-25 21:44:36
216
原创 面向对象--06描述符
1、什么是描述符? python描述符是一个“绑定行为”的对象属性,在描述符协议中,它可以通过方法重写属性的访问。这些方法有 __get__(), __set__(), 和__delete__()。如果这些方法中的任何一个被定义在一个对象中,这个对象就是一个描述符。所以,某个类,只要是内部定义了方法 __get__, __set__, __delete__ 中的一个或多个,就可以称为描述符描述...
2018-03-24 20:35:21
206
原创 面向对象--05迭代器与生成器
一·迭代器可以直接作用于for循环的对象统称为可迭代对象(Iterable)。可以被next()函数调用并不断返回下一个值的对象称为迭代器(Iterator)。所有的Iterable均可以通过内置函数iter()来转变为Iterator。对迭代器来讲,有一个__next__()就够了。在你使用for 和 in 语句时,程序就会自动调用即将被处理的对象的迭代器对象,然后使用它的__next__()方...
2018-03-24 20:10:43
194
原创 面向对象--04定制容器
协议(Protocols)与其他编程语言中的接口相似,它规定你哪些方法必须要定义。然而,在python中的协议就不那么正式,它更像是一种指南。容器类型的协议一·定制不可变容器需要定义:__len__(self) __getitem__(self,key)定义一个自定义列表,要求该列表可以统计每个元素被访问的次数class CountList: def __init__(self,*args...
2018-03-24 13:03:22
529
原创 面向对象--03魔法方法
python的魔法方法(被双下划线包围) 所谓工厂函数就是类对象1.构造方法①__new__(cls[,...])实例化对象时第一个被调用的方法cls-->类 如果cls后还有参数,则参数会原封不动的传给init方法,new方法需要一个实例对象作为返回值(return),通常为cls极少重写,但当继承一个不可变类型时需要重写new方法__new__方法的调用是发生在__init...
2018-03-23 21:22:08
330
原创 面向对象--02面向对象的三个基本特征
1.面向对象的三大特征 之 封装通常把隐藏 属性、方法与方法实现细节 的过程 称为封装为了保护类里面的属性,避免外界随意赋值,可以采用以下方法解决:①把属性定义为私有属性,即属性名前加两个下划线②添加可以供外界调用的两个方法,分别用于设置或者获取属性值class Person: def __init__(self,name,age): self.name = name ...
2018-03-23 21:09:02
230
原创 面向对象--01面向对象基本概念
OOA 面向对象分析OOD 面向对象设计OOP 面向对象编程 OO的特征封装:对象封装 属性和方法,是一种信息隐蔽技术继承:子类自动共享父类之间数据和方法的机制多态:不同对象对统一方法响应不同的行动 面向对象(object oriented)Python完全采用了面向对象程序设计的思想,是真正面向对象的高级动态编程语言,完全支持面向对象的基本功能,如封装、继承、多态以...
2018-03-23 20:57:39
543
原创 基本排序算法05----合并排序(merge sort)
合并排序的算法利用了递归、分而治之的思想。我们假设列表的长度为偶数对其过程进行分析:1.计算一个列表的中间位置,将其分割为两个子列表2.重复上述操作,直至子列表的长度为13.将长度为1的两个子列表通过比较之后进行排序,合并成一个长度为2的列表4.将长度为2的两个子列表重复上一步操作,以此类推合并排序的实现我们需要定义4个函数1.mergeSort用于用户调用2.merge用于合并过程3.merge...
2018-02-13 21:18:22
305
原创 基本排序算法04----快速排序(quick sort)
快速排序:在快速排序中,我们用到了‘分而治之’的思想。也就是说,每一个算法都找到了一种方法,将列表分解为更小的子列表。随后,这些字列表再递归地排列。快速排列的过程如下:1.从列表的中点位置选取一项(我们把这一项称之为基准点pivot)2.将列表中的项进行分区,以便小于基准点的所有项都移动到基准点的左边,而剩下的移动到右边3.对于在基准点分割形成的子列表,递归重复上述过程4.每次遇到少于两项的一个子...
2018-02-11 17:56:25
250
原创 基本排序算法03----插入排序(insertion sort)
思路:1.在第i轮通过列表的时候(1 <= i <= n-1),第i个项应该插入到列表的前i个项之中的正确位置2.在第i轮之后,前i个项的顺序已经排好 以下是函数代码,我们设计的是一个升序排列的函数def insertionSort(lyst): i = 1 while i < len(lyst): #将待插入的项赋值给ite...
2018-02-11 17:27:33
203
原创 基本排序算法02----冒泡排序(bubble sort)
过程:1.从列表的开头处开始,比较前两项数据2.若这两项数据的顺序不正确(假定要求按升序排列),则调换位置3.接下来比较第二、三项数据,重复操作,以此类推4.当进行到最后两项数据时,列表中最大的数据就已经交换到最后一项,此时第一轮运行结束,第n项数据排序完成5.从列表的开头至第n-1项,进行第2轮排序,第2轮结束后第n-1项至第n项的排序就完成了6.以此类推,直到排序结束以下是函数代码def bu...
2018-02-11 16:57:18
300
原创 基本排序算法01----选择排序(selection sort)
可能最简单的排序策略就是:1.搜索整个列表,找到最小项的位置2.如果该位置不是列表的第一项,则将两项交换位置3.然后算法回到第二个位置并重复上述操作4.当算法到达列表最后一个位置的时候,排序就完成了首先我们需要定义一个用于交换位置的函数def swap(lyst, i, j): """Exchanges the elements at positions i and j.""" t...
2018-02-11 16:23:44
252
原创 搜索算法02----有序列表的二叉搜索
对于有序的列表(假设升序),我们可以估计目标项的大概位置。根据这一思路,我们能省去一些不必要的过程以达到快速搜索的目的。过程:1.找到列表的中间位置并与目的项进行比较。如果相等,则返回改位置2.若不相等,假设目标项小于当前项,那么算法将搜索中间位置以前的部分,并重复上述操作(反之亦反)def binarySearch(target, lyst): """Returns the positi...
2018-02-11 15:57:47
294
原创 搜索算法01----顺序搜索最小项
为了简单,函数处理的是一个整数列表。这个算法假设列表不为空,并且其中的项的顺序是随机的。过程:1.讲列表的第一项当作最小项2.向右搜索以寻找更小的项3.若找到了,则将最小项的位置重置为当前位置4.return最小值def ourMin(lyst): minpos = 0 current = 1 while current < len(lyst): if...
2018-02-11 15:34:18
390
原创 模块05----随机数 (部分常用)
import random1. random.randint(a,b)返回一个随机整数N,其中a <= N <= b (ab必须为整数)2.random.randrang([start],stop[,step])返回某个区间内的整数,可以设置step,只能传入整数例如random.randrang(10,100,2)结果相当于从[10,12,14,...,98]序列中获取一个随...
2018-02-10 22:36:02
197
原创 模块04----OS
os模块常用的文件处理函数函数 使用说明access(path, mode) 按照mode指定的权限访问文件open(path, flags, mode=0o777, *, dir_fd=None) 按照mode指定的权限打开文件,默认权限为可读、可写、可执行chmod(path, mode, *, dir_fd=None, follow_symlinks=True) 改变文件的访问权限remov...
2018-02-10 22:35:06
138
原创 模块03----Math (部分常用)
返回≧ x 的最小整數 math.ceil(x) >>> math.floor(3.4) 結果 4返回 ≦ x 的最大整数 math.floor(x) >>> math.floor(3.4) 結果 3返回与 y 同号的 x 值 math.copysign(x,y)返回e**x math.exp(x)返回 x 的绝对值 math.fabs...
2018-02-10 22:34:34
141
原创 14模块
1.模块的导入第一种:import 模块名第二种:from 模块名 import 函数名第三种:import 模块名 as 新名字2.模块的制作if __name__ == '__main__': 用于模块中的测试部分,导入模块后不会运行。在使用自身的时候 __name__='__main__',如果在另一个文件中导入原模块,原模块运行__name__结果为文件名def add(a,b): ...
2018-02-10 22:31:43
142
原创 模块02----Pickle
文件的存储pickle模块 能把所有对象转换为二进制存放存放:pickling读取:unpickling存储 dump方法import picklea = [5465,'asdasda','q7qs5']file1 = open('data.data','wb')pickle.dump(a,file1)file1.close()读取 load方法file2 = open('data.data'...
2018-02-10 22:30:44
187
原创 模块01----Collections
collections的常用类型有:计数器(Counter)双向队列(deque)默认字典(defaultdict)有序字典(OrderedDict)可命名元组(namedtuple)使用以上类型时需要导入模块 from collections import *1. CounterCounter 作为字典(dict)的一个子类用来进行hashtable计数,将元素进行数量统计、计数后返回一个字典,...
2018-02-10 22:29:48
137
原创 13常用内置函数
函数 功能简要说明abs(x) 返回数字x的绝对值all(iterable) 如果对于可迭代对象中所有元素x都有bool(x)为True,则返回True。对于空的可迭代对象也返回Trueany(iterable) 只要可迭代对象中存在元素x使得bool(x)为True,则返回True。对于空的可迭代对象,返回Falsebin(x) 把数字x转换为二进制...
2018-02-10 22:22:29
253
原创 12异常
一、异常处理1.最简单的try-except语句格式如下:try: #语句块except: #异常处理代码例>>> try: print('-----------------') a = int(input('请输入一个数:')) b = int(input('请在输入一个数:')) print(a/b)except ZeroDivisionError: print('第二个数不...
2018-02-10 22:21:34
260
原创 11文件
1.文件的打开open()open有很多参数,除第一个参数file外,其他参数都有默认值参数 ①file 传入文件名(如果不加路径,Python会在当前文件夹下寻找)②mode='r' 文件的打开模式'r' 以只读方式打开文件(默认)'w' 以写入的方式打开文件,会覆盖已存在的文件'x' 如果文件已存在,使用此模式打开将引发异常'a' 以写入模式打开,如果文件已存在,则在末尾追加写入'b' 以...
2018-02-10 22:20:21
177
原创 10装饰器
一、#装饰器对有参数函数进行修饰def day(f): def inner(*args,**kwargs): f(*args,*kwargs) print('操作成功') return inner@daydef add(a,b): print(a+b)二、#装饰器对带有返回值的函数装饰1.>>> def func(functionna...
2018-02-10 22:19:03
118
原创 09lambda表达式及重要BIF
lambda表达式 创建匿名函数优点:1.省去定义函数的过程2.不用起名3.可读性强表达式中可以调用其他函数,并支持默认值参数和关键参数,该表达式的计算结果就是函数的返回值。例一>>> def ds(x): return 2 * x +1>>> ds(5)11>>> lambda x : 2 * x + 1<function <la...
2018-02-10 22:17:30
174
原创 08内嵌函数
视频211.内部函数作用域 都在外部函数之内例一>>> def fun1(): print('fun1正在被调用···') def fun2(): print('fun2正在被调用···') fun2() >>> fun1()fun1正在被调用···fun2正在被调用···>>> fun2()Traceback (most...
2018-02-10 22:16:38
182
原创 07函数的定义
函数形式参数parameter 定义参数是括号内字 实际参数argument 输入值def myfx(name): '函数形式参数为name' #当前为注释内容 print((name+'内容')*10)1.运行函数>>> myfx('测试')测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容2.函数文档>>> he...
2018-02-10 22:16:05
394
原创 06集合
集合set唯一性无序性,不可索引1.集合的创建①{}括起一堆元素②使用工厂函数set()变量可以是元组 列表 字符串 集合例去除掉列表中的重复元素①>>> num1 = {3,5,4,1,2,5,8,0,1,2,3}>>> temp = []>>> for each in num1: if each not in temp: temp...
2018-02-10 22:11:39
165
原创 05字典
引例brand = ['li ning','nike','aididas']slogan = ['everything is possible','just do it','nothing is impossible']print('李宁:',slogan[brand.index('li ning')])字典非BIF,为工厂函数(str int list tuple均为工厂函数)无序映射关系...
2018-02-10 22:11:06
164
原创 04元组、序列解包及生成器推导式
tuple元组(戴上枷锁的列表) 1 元组的创建 tuple = (2,4,1,54,0) 重点在于逗号 2 元组的访问 tuple1[0] 访问tuple1的第一个元素 3 元组的分片 slice tuple1[start:stop]元组不可修改标志为 , tuple2 = 5,tuple3 = () 为空元组对元组的操作 利用切片slice间接对元组进行添加、删减...
2018-02-10 22:08:56
817
1
原创 03列表、列表推导式及zip()函数
一、列表内元素的获取 列表[0] 数字索引位置 通过此可对列表元素进行调换>>> empty = [0,1,2,['小儿子','小西瓜'],4]>>> a = empty[3][1]>>> print(a)小西瓜二、列表的删除1 remove() member.remove('元素名')2 del (del...
2018-02-10 22:07:38
409
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人