08 2019 档案

摘要:定义一个类: 例: 总结: 1、实例化的过程就是类——>对象的过程,创建的对象就是一个实例化的东西 2、self在实例化时自动将对象/实例本身传给__init__的第一个参数,你也可以给他起个别的名字,但是正常人都不会这么做。self拥有属性都属于对象,在类的内部,self就是一个对象 3、对象通过 阅读全文
posted @ 2019-08-31 20:10 aikell 阅读(178) 评论(0) 推荐(0)
摘要:知识点:闭包,即外部函数的变量被内部函数调用 思考:当函数返回值为可变数据类型(字典)时,可在返回之前添加一个键值对,赋值可以是当前作用域函数的内存地址,这样就能以字典获取vaule的形式调用到内部函数(赋值的内存地址指向的函数) 转换为面向对象方式编写: 阅读全文
posted @ 2019-08-31 17:33 aikell 阅读(343) 评论(0) 推荐(0)
摘要:python中的错误: 语法错误 逻辑错误 什么是异常: 两种错误引发程序发出的信号,在pycharm中就是控制台 异常的分类: 在python中不同的异常可以用不同的类型(python中统一了类与类型,类型即类)去标识,不同的类对象标识不同的异常,一个异常标识一种错误 AttributeError 阅读全文
posted @ 2019-08-30 21:55 aikell 阅读(149) 评论(0) 推荐(0)
摘要:注意: 1. 无论是import形式还是from...import形式,凡是在导入语句中(而不是在使用时)遇到带点的,都要第一时间提高警觉:这是关于包才有的导入语法 2. 包是目录级的(文件夹级),文件夹是用来组成py文件(包的本质就是一个包含__init__.py文件的目录) 3. import导 阅读全文
posted @ 2019-08-29 18:03 aikell 阅读(755) 评论(0) 推荐(0)
摘要:序列化: 数据类型转换成一个字符串数据类型反序列化: 字符串数据类型转换为数据类型 三个模块可以实现:json pickle shelve json是所有语言通用的,但仅能转换列表、字典、数字、字符串和元祖: dumps:数据类型转换成字符串数据类型loads:字符串数据类型转换成数据类型 import json lis = ['aike','demo','cool'... 阅读全文
posted @ 2019-08-29 17:28 aikell 阅读(143) 评论(0) 推荐(0)
摘要:随机整数: 随机选择一个返回: 随机打乱次序: 阅读全文
posted @ 2019-08-28 18:42 aikell 阅读(190) 评论(0) 推荐(0)
摘要:常用方法: time.time():获取当前时间戳 time.sleep():推迟线程指定的运行时间。单位为秒。 print(time.time())#当前时间的时间戳 print(time.strftime('%Y-%m-%d %H:%M:%S'))#格式化当前时间 print(time.localtime())#结构化时间 python中时间日期格式化符号: %y 两位数的年份... 阅读全文
posted @ 2019-08-28 18:02 aikell 阅读(190) 评论(0) 推荐(0)
摘要:namedtuple:生成一个可以使用名字来访问的tuple from collections import namedtuple point = namedtuple('point',['x','y','z','r']) p = point(1,2,3,4) print(p.z) print(p.x) print(p.y) print(p.r) print(p) 打印: 3 1 2 4 poin 阅读全文
posted @ 2019-08-28 16:02 aikell 阅读(235) 评论(0) 推荐(0)
摘要:findall:返回每一个匹配的标的,放在一个列表里 search:返回第一个匹配到的匹配信息,需要调用group方法才能将标的打印,若没有匹配到,返回None match:以什么为开头,返回匹配标的的匹配信息,需要调用group方法才能将标的打印出来,若没有匹配,则返回None split:切割 阅读全文
posted @ 2019-08-27 20:27 aikell 阅读(414) 评论(0) 推荐(0)
摘要:初识: 正则表达式不是Python当中内置的语法和规则,它是一门独立的语言。正则表达式只和字符串相关,在Python中使用正则表达式需要调用re模块; 知识点: 字符组:[字符组] 例如: 字符: 常用元字符: \n 常用反义词: 转义符: 匹配正则表达式的关键字,如:\n,\b,\w,\s等需要加 阅读全文
posted @ 2019-08-27 17:57 aikell 阅读(220) 评论(0) 推荐(0)
摘要:有一个列表l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88],用二分查找法实现查找 版本一:能够实现查找,但由于切片会开辟新的内存存放列表新的列表,所以不能返回元素在原列表的下标 版本二:不通过切 阅读全文
posted @ 2019-08-26 21:44 aikell 阅读(1433) 评论(0) 推荐(0)
摘要:定义:在函数内部调用自身 递归最大深度:1000附近 如果无限循环,每一次调用都会在主函数的全局名称空间当中创建一个局部名称空间,无限层叠。若一直调用下去,就会造成名称空间占用太多内存的问题,于是python为了杜绝此类现象,强制的将递归层数控制在了1000附近。 此为默认值,可以通过调用sys模块 阅读全文
posted @ 2019-08-26 19:02 aikell 阅读(175) 评论(0) 推荐(0)
摘要:slice:切片 阅读全文
posted @ 2019-08-25 13:40 aikell 阅读(224) 评论(0) 推荐(0)
摘要:将变量原封不动的打印出来,字符串类型打印出来带引号 print('1')#1 print(1)#1 print(repr('1'))#'1' print(repr(1))#1 格式化输出%r i = 'aike' print('我是%s'%i)#我是aike print('我是%r'%i)#我是'aike' 阅读全文
posted @ 2019-08-25 12:20 aikell 阅读(247) 评论(0) 推荐(0)
摘要:print(ord('a'))#字符按照unicode转换成数字,只接受单个字符 print(chr(97))#数字按照unicode转换成字母 print(ascii('艾克')) #只要是ascii码中的内容就打印出来,如果不是则以\u的形式返回 阅读全文
posted @ 2019-08-25 12:03 aikell 阅读(227) 评论(0) 推荐(0)
摘要:如果 source 为整数,则返回一个长度为 source 的初始化数组; 如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列; 如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数; 如果 source 为与 buffer 接口一致的对象,则此 阅读全文
posted @ 2019-08-25 11:09 aikell 阅读(635) 评论(0) 推荐(0)
摘要:格式化输出: 阅读全文
posted @ 2019-08-24 22:25 aikell 阅读(243) 评论(0) 推荐(0)
摘要:ads:计算绝对值 divmod:除几余几 round:小数精确,精确到小数点后几位,可以精确到小数点前几位,前几位用负数表示,均四舍五入 pow:幂运算 sum:求和 ,传入一个可迭代对象求和,可以继续传入一个起始求和的参数,默认为0 min:返回给定参数的最大值,参数可以为序列。可以加入一个ke 阅读全文
posted @ 2019-08-24 18:28 aikell 阅读(741) 评论(0) 推荐(0)
摘要:bin:将整型转换成二进制,以0b显示 oct:将整型转换成八进制,以0c显示 hex:将整型转换成十六进制,以0x显示 阅读全文
posted @ 2019-08-24 17:16 aikell 阅读(568) 评论(0) 推荐(0)
摘要:help:查看模块、类型、对象、方法、属性的详细信息 help(dir) dic:查看一个类或者对象的所有属性,返回一个列表 print(dir(list),type(dir(list))) callable:接收一个参数,判断这个参数是不是可以调用,如果是函数名,返回Ture def inner(): pass print(callable(inner))#Ture print... 阅读全文
posted @ 2019-08-24 17:03 aikell 阅读(196) 评论(0) 推荐(0)
摘要:id:查看变量的内存地址 a = {} print(id(a)) hash:可变数据类型不可哈希,不可变数量类型可哈希 可哈希数据类型调用hash函数返回一个哈希值,不可哈希调用hash函数会报错 i = [0,1,2] l = (0,1,2) k = l # print(hash(i))#报错 print(hash(l))#返回一个哈希值 print(hash(k))#内容相同的变量,同一次执行 阅读全文
posted @ 2019-08-24 14:56 aikell 阅读(302) 评论(0) 推荐(0)
摘要:input: print: print的各种内置方法: file:将输出的在屏幕的内容,输出到文件 sep:打印多个值之间的分隔符,默认为空格 end:每次打印后的结尾,默认为换行 \r的作用:将光标位置退回到本文开头,配合end实现不重复打印,只打印一行的效果 阅读全文
posted @ 2019-08-24 14:42 aikell 阅读(1505) 评论(0) 推荐(0)
摘要:eval:将字符串内的代码执行,有返回值,用于简单的计算exec:将字符串内的代码执行,没有返回值,用于简单的逻辑判断 均可以读取文件进行执行 info_str = '1+2+3' couunt = eval(info_str) couunt1 = exec(info_str) print(couunt)#返回6 print(couunt1)#无返回值 jud =''' def func(a,b) 阅读全文
posted @ 2019-08-24 11:51 aikell 阅读(212) 评论(0) 推荐(0)
摘要:zip:多个可迭代对象,从开始,一对一返回一个元组 filter:筛选,过滤掉不符合条件的元素,返回由符合条件元素组成的迭代器对象。 该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新对象中 m 阅读全文
posted @ 2019-08-23 21:29 aikell 阅读(273) 评论(0) 推荐(0)
摘要:正常函数: 匿名函数: 关键字:lambde 格式:只能一条语句结束 lambde 形参:需要返回的值的条件 和内置函数配合使用的匿名函数: max,min,filter,map,sorted。。。。其它未习得 这些内置函数的共性是都可以调用函数,可以是内置函数,可以是自定义函数 max: min: 阅读全文
posted @ 2019-08-23 20:22 aikell 阅读(202) 评论(0) 推荐(0)
摘要:结论: 完整的表达式: 好处: 其它推导式 字典推导式和集合推导式:集合推导式有自动排重功能 阅读全文
posted @ 2019-08-19 18:16 aikell 阅读(228) 评论(0) 推荐(0)
摘要:生成器函数send方法案例:每输入一个值,求移动平均值,如下:10 20 30 40 50...10 15 20 25 30... def avg_creater(): num = 0 count = 0 avg = 0 while True: num1 = yield avg num += num1 count += 1 avg = num/count g = avg_creater() g._ 阅读全文
posted @ 2019-08-19 16:48 aikell 阅读(396) 评论(0) 推荐(0)
摘要:可迭代协议: 含有双下方法__iter__的对象就是可迭代对象。 迭代器协议: 同时含有__iter__和__next__方法的对象就是迭代器。 打印截图: 例: 结论: 阅读全文
posted @ 2019-08-19 15:42 aikell 阅读(186) 评论(0) 推荐(0)
摘要:例: 知识点: 函数wraps的作用: 在不影响装饰器使用的情况下,可以直接使用被调用函数的内置功能 __name__:返回函数名 __doc__:返回函数体内的注释 阅读全文
posted @ 2019-08-17 15:32 aikell 阅读(589) 评论(0) 推荐(0)
摘要:例: 执行顺序: 知识点: 阅读全文
posted @ 2019-08-17 12:10 aikell 阅读(294) 评论(0) 推荐(0)
摘要:例: 执行顺序: 阅读全文
posted @ 2019-08-17 11:02 aikell 阅读(312) 评论(1) 推荐(0)
摘要:网页有缓存时: 网页无缓存时: 知识点: 文件操作 os模块与url模块的使用: os.path.getsize(),判断文件是否为空 urlopen(网址).read(),读取网页的源码,即缓存 阅读全文
posted @ 2019-08-16 21:02 aikell 阅读(312) 评论(0) 推荐(0)
摘要:FLAG = False def wrapper(f): def inner(*args,**kwargs): global FLAG if FLAG: ret = f(*args, **kwargs) return ret lis = [] i = 0 while i < 3: i += 1 wi 阅读全文
posted @ 2019-08-16 17:13 aikell 阅读(887) 评论(0) 推荐(1)
摘要:import time i_digit = [11,5,112,55,98,64,13,52] start_time = time.time()#获取代码执行到这里的时间 l = len(i_digit) for x in range(l-1): for y in range(l-1-x): if i_digit[y]>i_digit[y+1]: i_digit[y],i_digit[y+1]=i 阅读全文
posted @ 2019-08-15 20:07 aikell 阅读(1492) 评论(0) 推荐(0)
摘要:装饰器的作用: 不想通过修改函数的调用方式,在函数的前后添加功能 最简单的装饰器: 执行顺序: 当被装饰的函数有返回值时,由于执行的是inner,所以需要在inner函数里获取被装饰函数的返回值,再通过inner返回出来: 当被装饰的函数同时需要进行传值时,只需再inner函数里接收即可,接收后同样 阅读全文
posted @ 2019-08-15 19:35 aikell 阅读(144) 评论(0) 推荐(0)
摘要:名称空间 内置名称空间: 存放时的是系统内置的名称,python一启动时,这些名称已经存放在内存;比如:print,input等 全局名称空间: 存放的是自定义的名称,变量名,函数名等等 局部名称空间: 在函数体内的自定义的名称 加载顺序为:内置命名空间(程序运行前加载)->全局命名空间(程序运行中:从上到下加载)->局部命名空间(... 阅读全文
posted @ 2019-08-15 11:07 aikell 阅读(198) 评论(0) 推荐(0)
摘要:闭包的定义:嵌套函数,外部函数的变量被内部函数调用 先走一段代码: 解读起来就是: 我们再看一下正常的函数调用是什么样的: 由于在全局名称空间当中,没有对象指向new—func的内存地址,所以无法在全局作用域下直接调用它取得a,这样每次需要获取它时,都需要调用外部函数,使得每一次调用会使得内存会一直 阅读全文
posted @ 2019-08-14 23:46 aikell 阅读(168) 评论(0) 推荐(0)
摘要:当默认参数为可变数据类型时(列表,元组,字典等),在函数体内给这个数据类型赋值,这个默认参数会随着每一次函数体的赋值而改变,由于每次都是在原列表的基础上操作,所以列表的内存地址一直不变; 而当在传参的时候给这个默认参数重新赋值时,列表会变成一个新的列表,内存会开辟一个新的地址存放它,再对它进行传参操作时,每一次操作都是在这个新开辟的内存地址做出修改,所以内存地址不会也发生改变; def f... 阅读全文
posted @ 2019-08-14 16:27 aikell 阅读(209) 评论(0) 推荐(0)
摘要:首先时站在形参的角度进行动态传输:*会将实参传输过来的参数进行聚合,返回一个元组 而站在实参的角度进行动态传输:起到的作用是打散,他会将传输的参数传给形参时按顺序打散,也就是迭代,int类型不可迭代会报错 上面时*args,那么**kwargs会是怎么样呢 阅读全文
posted @ 2019-08-14 09:46 aikell 阅读(168) 评论(0) 推荐(0)
摘要:循环打印字典打印出来的是键: 这时可以利用键值查找字典对应的value,如果字典里边的value为列表,还可以通过它进行各种操作,比如切片: 阅读全文
posted @ 2019-08-13 21:24 aikell 阅读(1205) 评论(0) 推荐(0)
摘要:位置参数:函数返回值为一个时,返回值为原始数据类型;返回值为多个参数时,用一个对象进行接收时,返回值为元组,以多个参数接收时,返回为参数的原始数据类型 默认参数:函数返回值为一个时,返回值为原始数据类型;返回值为多个参数时,用一个对象进行接收时,返回值为元组,以多个参数接收时,返回为参数的原始数据类 阅读全文
posted @ 2019-08-13 20:18 aikell 阅读(934) 评论(0) 推荐(0)
摘要:函数的定义用def: 函数的返回值return: 可以为一个值 可以为多个值:接收时可以用一个变量接收,一个变量接收时返回为元组类型;可以用多个变量分别接收 输出: 函数的参数: 形参(接收的参数): 位置参数,*args,默认参数(关键字参数),**kwargs: 总共四种,可以相互结合,结合使用 阅读全文
posted @ 2019-08-13 18:39 aikell 阅读(550) 评论(0) 推荐(0)
摘要:基本的byte数据类型创建: 均输出: 字符串类型转换成byte类型用encode: 输出: 将byte数据类型进行解码用decode: 输出: 阅读全文
posted @ 2019-08-13 09:35 aikell 阅读(3376) 评论(0) 推荐(1)
摘要:读取一个文件需要有:地址,读取方式,编码格式; 假设d盘根目录有一个文件叫做艾克.txt,那么读取代码为: 这是新建一个对象,每次读取后都要用f.close()进行退出,不然会一直读取占用内存,所以一般都采用下列方法读取,不用每次都输入close退出: 读取方式: 部分测试代码: r、rb、r+ w 阅读全文
posted @ 2019-08-12 20:40 aikell 阅读(221) 评论(0) 推荐(0)
摘要:用户注册后,将用户名和密码存入一个新的文件当中; 再通过访问文件,对存入的数据进行处理后,与用户登录时的用户名与密码进行对比判断 知识点:格式化输出、文件的基本操作 阅读全文
posted @ 2019-08-12 17:07 aikell 阅读(447) 评论(0) 推荐(0)
摘要:copy,拷贝,顾名思义,自然是把东西复制过来,呈现在眼前的是一样的,例如: 输出: 很明显,a和b的值是一样的。因为对于赋值运算来讲,a与b指向的是同一内存地址,所以他们完全是一样的 浅copy: 输出: 可以看到,a和b的输出地址不一样,原因是对于浅copy来说,只是在内存中重新创建了开辟了一个 阅读全文
posted @ 2019-08-11 23:55 aikell 阅读(1615) 评论(0) 推荐(1)
摘要:例如: 输出: 可以看到,只有加上逗号的才能识别为元组 阅读全文
posted @ 2019-08-11 17:24 aikell 阅读(340) 评论(0) 推荐(0)
摘要:不仅是字典,列表同样会。 例如:将dic字典中含有’k‘的键删除 输出报错: 它虽然删除了第一个,但是之后开始报错 解决办法:将含有'k'的键值单独拿出来创建一个列表,再通过列表元素循环删除字典中的键;或者将不含有’k‘的键值重新创建一个新的字典 阅读全文
posted @ 2019-08-11 17:12 aikell 阅读(368) 评论(0) 推荐(0)
摘要:可迭代的键:字符串,列表,元组,字典等;value可以嵌套 输出: 注:dic为字典,字典查询只有 for 、get和通过键查询,所以 输出 {'a': ([], []), 'c': ([], []), 'b': ([], [])}{'a': (['aike'], []), 'c': (['aike 阅读全文
posted @ 2019-08-11 16:27 aikell 阅读(366) 评论(0) 推荐(0)
摘要:列表循环删除容易出错,对它进行删除后会使得每个元素对应的下标发生改变,第一次之后,删除的元素并不是在原有的列表上进行删除 例如: 可以看到,输出结果并不是在原有列表逐一删除,并且随着列表的更新,下标和长度都会发生改变,长度不够时,程序报错 注: 阅读全文
posted @ 2019-08-11 15:45 aikell 阅读(172) 评论(0) 推荐(0)
摘要:数字类型:int(数字),bool(0和1),str(字符串),bytes(字符串,中文打印出来为16进制),list(列表),dict(字典),tuple(元组)等 格式化输出: %s :百分号为占位符,s表示为字符串,d表示为数字 name = input('请输入姓名:') sex = inp 阅读全文
posted @ 2019-08-11 14:58 aikell 阅读(218) 评论(0) 推荐(0)