Python
bdevy
这个作者很懒,什么都没留下…
展开
-
Python-18-内置函数
sum():只用于可枚举对象字典不可以用sum,字典不可以枚举print(sum([1, 2, 3])) # 6print(sum((1, 2, 3))) # 6print(sum({1, 2, 3})) # 6map():只是遍历arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]s = map(str, arr)print(list(s)) # ...原创 2019-08-04 20:30:25 · 86 阅读 · 0 评论 -
Python-19-函数装饰器
一、函数装饰器低级函数装饰器本质是闭包【不加函数装饰器】打印出哪个函数正在执行 def show_name(): import inspect caller_name=inspect.stack()[1][3] print('{0}()正在执行'.format(caller_name)) def addUser(): show_name() ...原创 2019-08-04 21:22:22 · 83 阅读 · 0 评论 -
Python-20-回调函数
回调函数回调函数是指,当把一个函数的指针(地址)作为参数传递给另一个函数时,当这个指针调用其所指函数时,就叫回调函数 def show(r): print(r) def add(a,b,func): c=a+b func(c) add(1,2,show) #show为回调函数,add回调show在add(),调用show()函数时,就说...原创 2019-08-04 21:24:47 · 80 阅读 · 0 评论 -
Python-21-模块
模块:就是一个 py 文件包:包含__init__.py和模块的目录业务模块/工具模块业务模块调用工具模块(一般)当引用同一文件夹下的py模块,则直接import name当引用目录下的py模块,则 import modules . name模块从根目录下开始找,为了方便可以 import … as …使导入简单化 import unit7.modules.my_m...原创 2019-08-04 21:29:58 · 60 阅读 · 0 评论 -
Python-22-file文件读取
打开和关闭文件-openwith可以自动关闭管道 with open('','r') as fp: pass不用with,需要关闭 file=open('','r') # 建立管道 content=file.read() # 读入数据 file.close() # 关闭管道文件如果找不到 #【文件读取,若文件不存在则报错】 with open('datas/test...原创 2019-08-10 14:24:59 · 135 阅读 · 0 评论 -
Python-23-os模块
获取目录 import os path01=os.getcwd() print('os.getcwd()方法:',path01) # 获取当前文件所处目录 F:\驰星\project\unit8 print(os.path.abspath('..')) # 返回上一级 F:\驰星\project print(os.path.abspath('../..')) # 返回两级 F:\驰星...原创 2019-08-10 14:27:13 · 56 阅读 · 0 评论 -
Python-24-代码编译
一、代码编译把代码编译成pyc文件 import py_compile py_compile.compile(r'coe01.py') #或直接在terminal中编译(进入py文件的文件夹) python -m py_compile 文件名.py 编译完成直接删除原文件,直接运行pyc文件即可 将pyc文件从__pycache__文件夹拿出,然后在terminal中: ...原创 2019-08-10 14:29:11 · 148 阅读 · 0 评论 -
Python-25-内置模块
time获取当前的时间戳(单位:秒) import time print(time.time())延时(1秒输出1个数字) import time def delay(): for i in range(3): print(i) time.sleep(1) delay()datetime时间有三种格式:date...原创 2019-08-10 14:30:31 · 76 阅读 · 0 评论 -
Python-26-面向对象
抽象、封装、继承、多态oop(面向对象)类:抽象的模板–类是对象的抽象实例(对象):根据类创建的具体的对象–对象是类的实例化定义类(类名首字母大写)变量:类变量(属于整个类,也叫静态变量)和实例变量(属于某个实例)特殊方法:首先用__new__()创建对象,然后将空对象返回给__init__,然后再用__init()__方法初始化,当返回的不是该类的对象时,不会调用in...原创 2019-08-10 14:31:55 · 142 阅读 · 0 评论 -
Python-27-面向对象-续
slots默认情况下每个类都会有一个dict,这个dict维护了实例的所有属性,每个实例都有一个dict,并且通过__dict__访问当一个类需要创建大量实例时,可以通过__slots__声明实例所需要的属性,此时输出dict也被告知不存在。 class Person(object): __slots__ = ['name','id'] def __init_...原创 2019-08-10 14:33:38 · 88 阅读 · 0 评论 -
Python-28-设计模式
一、单例模式利用__new__设置只创建一个对象,利用__init__中初始化一次 class PersonTest(object): __onlyOne = None __isFirst = True def __new__(cls, id, name): if not PersonTest.__onlyOne: ...原创 2019-08-10 14:34:45 · 71 阅读 · 0 评论 -
Python-29-异常处理
异常处理异常的定义程序执行过程中出现问题导致程序无法执行异常的分类:程序遇到逻辑或算法错误运行过程中计算机错误:内存不够或者io错误异常的步骤:异常产生,检查到错误且解释器认为是异常,抛出异常异常处理,异常处理,截获异常,系统忽略或者终止程序处理异常常见的异常AttributeError 试图访问一个对象没有的属性,比如foo.x,但是foo没...原创 2019-08-10 14:35:40 · 113 阅读 · 0 评论 -
Python-30-正则表达式
正则表达式处理对象:字符串,python中使用re模块语法规则 * 匹配0次或多次 + 匹配1次或多次 ? 匹配0次或1次 \ 转义字符,使字符改变原来的意思 ^ 匹配字符串开头 $ 匹配字符串结尾 | 或,匹配|左右表达式任意一个,从左到右匹配,如果|没有包括在()中,则它的范围是整个正则表达式 {} {m}匹配前一个字符m次,{m,n}...原创 2019-08-10 14:36:52 · 204 阅读 · 0 评论 -
Python-31-多线程
并发并发: 多个事件在同一时间间隔内并发并行: 多个事件在同一时刻并行在多道程序处理时,宏观上并发,微观上交替执行(在单处理器情况下)进程作为分配资源的基本单位,进程控制块 PCB,是线程的容器线程作为独立运行和独立调度的基本单位,进程实际的运作单位(线程有时称为轻量级进程,一个标准的线程由线程ID,当前指令指针,寄存器集合和堆栈组成.)(每个线程都有他自己的一组CPU寄存器...原创 2019-08-10 14:39:22 · 92 阅读 · 0 评论 -
Python-32-多线程2
同步、异步、多线程、单线程、并发、并行多线程(异步)需要解决同步问题,单线程(同步)需要解决异步问题并行(无共同资源,即多个CPU,每个进程对应一个CPU)并发(有共同资源,即一个CPU,同一时段做多件事)并行不需要解决,并发需要解决,多线程就是解决并发的处理方案 解决并发: 【 "食堂打饭模型", 中午12点,大家都涌向食堂,就是并发.人很多就是高并发.】 ...原创 2019-08-10 14:40:40 · 96 阅读 · 0 评论 -
Python-33-继承补充
class Person(object): pass print(Person.__bases__) # (<class 'object'>,) print(int.__bases__) # (<class 'object'>,) print(object.__bases__) # ...原创 2019-08-10 14:42:27 · 58 阅读 · 0 评论 -
Python-17-变量作用域LEGB(作用域链)
Python中的 LEGB(作用域链)L:局部变量–localE:外层函数/闭包空间–enclosing functionG:全局变量–globalB:内建模块–builtins当找一个变量时,现在 local 找,即先找本函数内的变量,若找到则结束;否则,找闭包空间,即外层函数,从内向外一个一个找,若找到则结束;否则,找全局变量,若找到则结束;否则,找内建模块中的变量,若找到...原创 2019-08-04 20:22:10 · 139 阅读 · 0 评论 -
Python-16-函数嵌套_闭包
定义闭包:将一个函数嵌套在另一个函数中时,外层函数返回值为内层函数,且内层函数使用了外层函数的变量时,就产生了闭包优点:实现了局部函数,且局部函数可以多次调用;可以对函数内的 局部变量进行调用,即内层函数可以调用外层函数的变量缺点:当不进行隔离时,即内层函数调用了外层函数的变量时,外层函数在结束后不会回收其变量,浪费了内存【闭包】:实现局部函数的多次调用 def get_pass...原创 2019-08-04 20:14:58 · 164 阅读 · 0 评论 -
Python-1-变量类型
基础变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。Python变量是动态的(它自动地跟踪你的类型而不是要求声明代码),但也是强类型语言(只能对一个对象进行适合该类型的有效的操作)。在Python中类型属于对象,而不是属于...原创 2019-08-04 12:37:06 · 126 阅读 · 0 评论 -
Python-2-运算符
一、赋值运算符用 , 可以实现同时赋值str = 'spam'm, n = 10, 20[s1, s2] = ['hello', 'python']* 为通配符 a, b, c, d = 'spam' x, *y = 'spam' # 等价于x, y = 'spam'[0], 'spam'[1:] x, *y, z = 'spam' # x = 's'...原创 2019-08-04 14:15:46 · 148 阅读 · 0 评论 -
Python-3-语句
一、逻辑控制语句-if(if…elif…else)语法规则行结束没有分号没有语句块大括号,使用语句缩进条件部分没有括号分号用于多条简单的语句放在同一行,作为分隔符跨行可以使用‘\’,或者(),当然[],{}等也适合。条件语句 if 判断条件: 执行语句…… else: 执行语句……多条件 if 判断条件1: 执行语句1…… e...原创 2019-08-04 14:36:33 · 417 阅读 · 0 评论 -
Python-4-数据类型-续Numbers(math、random、decimal、fractions)
模块math 模块、cmath 模块Python 中数学运算常用的函数基本都在 math 模块、cmath 模块中。Python math 模块提供了许多对浮点数的数学运算函数。Python cmath 模块包含了一些用于复数运算的函数。cmath 模块的函数跟 math 模块函数基本一致,区别是 cmath 模块运算的是复数,math 模块运算的是数学运算。内置模块 math、r...原创 2019-08-04 14:50:14 · 186 阅读 · 0 评论 -
Python-5-string字符串
一、基础认识python变量分为可变性和不可变性两种:数字numbers、字符串string、布尔bool和元组tuple是不可变性列表list、集合set、字典dict是可变性变量string为不可变性,即当s1内容改变时,地址改变不可变:即内存中某个地址的内容不可以改变,如string可变:即内存中某个地址的内容可以改变 s='python' s...原创 2019-08-04 15:23:16 · 198 阅读 · 0 评论 -
Python-6-字符串的编码和解码
四个阶段爬虫爬数据、数据库、后台、前端编码必须均一致、正确GBK区位码:针对汉字utf-8和utf-16区别是大小区别,即存储字库的内容数量区别ascii->gbk(2个字节)->unicode编码格式(4个字节)->utf-8是一种可变类型(3个字节,英文一个中文三个)encode()和decode()里面格式必须一致,比如全为uts-8encode()...原创 2019-08-04 15:34:24 · 160 阅读 · 0 评论 -
Python-7-List列表
一、基础列表的数据项不需要具有相同的类型 -->里面数据项地址不一定会相邻list01=[1,2,3,‘hello’]print(id(list01)) # 1833720636040print(id(list01[0])) # 140704119612048print(id(list01[1])) # 140704119612080print(id(list01[2]...原创 2019-08-04 16:03:06 · 224 阅读 · 0 评论 -
Python-8-插值表达式
插值表达式(也叫列表推导式)是表达式不是语句 list01=[i for i in range(1,31)] print(list01) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30] list02=[...原创 2019-08-04 16:12:32 · 585 阅读 · 0 评论 -
Python-9-Tuple
Tuple 元组不可变性Tuple比list速度快,仅仅查询时,用Tuple更好元组切片 t=(1,2,3) print(t[0]) print(t[:2]) t=(1,2,3,4) print(t[:2],5,t[2:]) # 输出(1, 2) 5 (3, 4) print(t[:2]+(5,)+t[2:]) # 输出(1, 2, 5, 3, 4)元组...原创 2019-08-04 16:17:04 · 76 阅读 · 0 评论 -
Python-10-Set集合
一、基础Set无序集合,不可重复,不可切片,也无keys获取值可变性可用于去重 s={1,2,3,4} print(s) for i in s: print(i)创建空Set s1={} print(type(s1)) # 不是空set,是dict类型 s1=set() print(type(s1)) # 空set,是set类型 #创建空...原创 2019-08-04 16:27:43 · 107 阅读 · 0 评论 -
Python-11-Dict字典
一、基础字典是一种传输数据的格式一定用双引号字典可变 user={"id":"001","name":"python"} print(user) # {'id': '001', 'name': 'python'} #有重复的键时,只保存后面的 user={"id":"001","name":"python","name":"top"} print(user) # {'...原创 2019-08-04 17:10:23 · 79 阅读 · 0 评论 -
Python-12-queue
队列queueq = queue.Queue(size) 定义队列长度q.get() 取出数据 import queue q=queue.Queue(10) print(q.qsize()) # 0 q.put(10) q.put(20) print(q.qsize()) # 2 print(q.get()) # 10 print(q.get()) # 20 whi...原创 2019-08-04 17:22:22 · 64 阅读 · 0 评论 -
Python-13-迭代器
set不可迭代迭代器iter() r = range(0,10) r_iter = iter(r) print(r_iter) # <range_iterator object at 0x00000184049BE5D0> print(r_iter.__next__()) # 0 print(next(r_iter)) # 1 for i in r...原创 2019-08-04 17:27:21 · 65 阅读 · 0 评论 -
Python-14-json模块(dict和str的转换,读写文件)
一、json实现dict<==>str使用 json.dumps() 实现字典转化为字符串import jsonuser = {"id":"001", " age":20, "name":"陆离"}str_user = json.dumps(user, ensure_ascii = True) # ensure_ascii=True转换为字节码print(type(st...原创 2019-08-04 19:44:12 · 397 阅读 · 0 评论 -
Python-15-函数
一、基础定义当函数没有返回值时,系统分配一个None def addNumber(a,b): c = a+b return c print(addNumber(1,2))函数赋值 func1 = addNumber() # 把函数执行结果返回给 func1 func2 = addNumber # 把函数名(地址)给func2,即可以 print(fu...原创 2019-08-04 20:06:00 · 269 阅读 · 0 评论 -
Python-34-单元测试
【=看project_unittest项目=====】unittest核心工作原理unittest中最核心的四个概念是:test case(测试用例),testsuite(测试集),test runner,test fixture一个TestCase的实例就是一个测试用例。什么是测试用例呢?就是一个完整的测试流程,包括测试前准备环境的搭建(setUp),执行测试代码(run),以及测...原创 2019-08-10 14:43:56 · 103 阅读 · 0 评论