python函数

python实用库

安稳与你 提交于 2020-04-03 11:48:06
参考: https://github.com/programthink/opensource/blob/master/libs/python.wiki#35_ Python 开源库及示例代码 Table of Contents 说明 1 算法 1.1 字符串 1.1.1 正则表达式 1.1.2 字符集 1.1.3 (其它) 1.2 编码 & 解码 1.2.1 base64 1.2.2 UUencode 1.2.3 BinHex 1.3 数学类 1.4 容器 2 跨语言编程 2.1 整合 C & C++ 2.2 整合 JVM 平台 2.3 整合 dotNet 平台 2.4 整合 Go 2.5 整合 Objective-C 3 操作系统 3.1 文件和目录操作 3.2 线程 3.3 进程 3.4 本地进程间通信(IPC) 3.5 操作硬件 3.6 获取系统信息 3.7 Linux & Unix 系统相关 3.8 Windows 系统相关 3.9 程序打包 4 Web 4.1 HTTP Client 4.2 HTTP Server 4.3 Web 开发框架 4.4 Web前端 & JS整合 4.5 浏览器整合 4.6 WebSocket 4.7 (其它) 5 网络 5.1 链路层 & 网络层 5.2 传输层 5.3 标准的应用层 5.3.1 综合性的库 5.3.2 HTTP 5.3.3

day01——python从认识开始

烂漫一生 提交于 2020-04-03 11:46:42
Python是什么: 首先,Python 是一门编程语言。这里是Python 的官网: https://www.python.org 下面是维基百科的解释: Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/),是一种面向对象、直译式的计算机程序语言,具有近二十年的发展历史。它包含了一组功能完备的标准库,能够轻松完成很多常见的任务。它的语法简单,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。 与Scheme、Ruby、Perl、Tcl等动态语言一样,Python具备垃圾回收功能,能够自动管理内存使用。它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务。Python虚拟机本身几乎可以在所有的作业系统中运行。使用一些诸如py2exe、PyPy、PyInstaller之类的工具可以将Python源代码转换成可以脱离Python解释器运行的程序。 Python的官方解释器是CPython,该解释器用C语言编写,是一个由社区驱动的自由软件,目前由Python软件基金会管理。 Python支持命令式程序设计、面向对象程序设计、函数式编程、面向侧面的程序设计、泛型编程多种编程范式。 Python可以干什么: Web程序 Python经常被用于Web开发。比如,通过mod_wsgi模块

Python 基础 - 3 包介绍,语法

橙三吉。 提交于 2020-04-03 10:26:32
什么是模块? 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在Python中,一个.py文件就称之为一个模块(Module)。 使用模块有什么好处? 最大的好处是大大提高了代码的可维护性。其次,编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。我们在编写程序的时候,也经常引用其他模块,包括Python内置的模块和来自第三方的模块。 使用模块还可以避免函数名和变量名冲突。每个模块有独立的命名空间,因此相同名字的函数和变量完全可以分别存在不同的模块中,所以,我们自己在编写模块时,不必考虑名字会与其他模块冲突 模块分类 模块分为三种: 内置标准模块(又称标准库)执行help('modules')查看所有python自带模块列表 第三方开源模块,可通过pip install 模块名 联网安装 自定义模块 模块调用 import module from module import xx from module.xx.xx import xx as rename from module.xx.xx import * 注意:模块一旦被调用,即相当于执行了另外一个py文件里的代码 自定义模块

Python基础(序列化)

╄→尐↘猪︶ㄣ 提交于 2020-04-03 02:57:25
#pickling import pickle,json # d = dict(name='傻狗1',age=300,score=100) # d1 = pickle.dumps(d)#pickle.dumps()方法把任意对象序列化成一个bytes,然后,就可以把这个bytes写入文件 # print(d1)#b'\x80\x03}q\x00(X\x04\x00\x00\x00nameq\x01X\x07\x00\x00\x00\xe5\x82\xbb\xe7\x8b\x971q\x02X\x03\x00\x00\x00ageq\x03M,\x01X\x05\x00\x00\x00scoreq\x04Kdu.' # with open('./dump.txt','wb') as f: # pickle.dump(d,f)#用另一个方法pickle.dump()直接把对象序列化后写入一个file-like Object # with open('./dump.txt','rb') as f: # d = pickle.load(f)#用pickle.load()方法从一个file-like Object中直接反序列化出对象 # print(d)#{'name': '傻狗1', 'age': 300, 'score': 100} #JSON #python对象转JSON #

Python中怎么进行单元测试

99封情书 提交于 2020-04-03 02:00:32
既然是测试,那我们得有被测试的代码,我们先定义一个简单的函数,这个函数的功能就是接收一个姓名,并返回一句问候语句。 say_hello_function.py 1 def hello_name(name): 2 greet = "Hello , " 3 return greet + name.title() 显然,关于单元测试Python也给我们提供了相应的模块(unittest),单元测试:用于确定函数的某方面没有问题;测试用例:即一组单元测试,在各个情况下的行为都符合我们的预期。 一、成功通过的测试 编写测试用例的步骤:1.先导入unittest模块;2.创建一个类(任意名)继承unittest.TestCase;3.编写需要测试的代码对函数进行各方面的测试。我们先只用上面一个函数举例即只包含一个方法的测试用例,主要检查函数hello_name 运行之后是否符合我们的预期。 test_say_hello.py 1 #coding=gbk  //因为本人用的编辑器编码为GBK,所以需要加这一行,如果你的是utf-8,将gbk改为utf-8即可(主要是为了让Python能识别注释与字符串中的中文字符) 2 import unittest 3 4 from say_hello_function import hello_name 5 6 class HelloTest

Python开发基础-Day20继承实现原理、子类调用父类的方法、封装

北城余情 提交于 2020-04-03 01:56:49
继承实现原理 python中的类可以同时继承多个父类,继承的顺序有两种:深度优先和广度优先。 一般来讲,经典类在多继承的情况下会按照深度优先的方式查找,新式类会按照广度优先的方式查找 示例解析: 没有共同头部父类的类型 1 class E: 2 def test(self): 3 print('from E') 4 # pass 5 class F: 6 def test(self): 7 print('from F') 8 # pass 9 10 class C: 11 def test(self): 12 print('from C') 13 # pass 14 15 class B(C): 16 def test(self): 17 print('from B') 18 # pass 19 20 class D(E): 21 def test(self): 22 print('from D') 23 # pass 24 class A(B,D,F): 25 def test(self): 26 print('from A') 27 # pass 28 obj=A() 29 obj.test() 在这种模型下,新式类和经典类的继承顺序都一样。 调用obj.test(),首先找boj对象的__dict__字典,然后找生成类A的__dict__字典,如果这两个都没有

python 路径操作

吃可爱长大的小学妹 提交于 2020-04-03 01:54:17
python路径操作: 3.4版本之前:os.path模块 3.4版本开始,建议使用pathlib模块,提供Path对象来操作,包括目录和文件 目录操作: 路径拼接和分解: 操作符/ Path对象/Path对象;Path对象/字符串;字符串/Path对象 分解:parts属性,可以返回路径中的每一部分 joinpath(*other):连接多个字符串到Path对象中 str():获取路径字符串;bytes():获取路径字符串的bytes parent:目录的逻辑父目录;parents:父目录序列,索引0是直接的父 name:目录中的最后一个部分 suffix:目录中最后一个部分的扩展名 stem:目录最后一个部分,没有后缀 suffixes:返回多个扩展名列表 with_suffix(suffix):补充扩展名到路径尾部,返回新的路径,扩展名存在则无效 with_name(name):替换目录最后一个部分并返回一个新的路径 cwd():返回当前工作目录 home():返回当前家目录 is_dir():是否是目录,目录存在放回True is_file():是否是普通文件,文件存在返回True is_symlink():是否是软连接 is_socket():是否是socket文件 is_block_device():是否是块设备 is_char_device():是否是字符设备 is

python基础之模块 序列化

巧了我就是萌 提交于 2020-04-02 23:39:07
什么是序列化(picking)?  我们把变量从内存中变成可存储或传输的过程称之为序列化。  序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。  反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling。 ---如何序列化?   在python中提供了两个模块可进行序列化。分别是pickle和json。 pickle   pickle是python中独有的序列化模块,所谓独有,就是指不能和其他编程语言的序列化进行交互,因为pickle将数据对象转化为bytes >>> import pickle >>> d=[1,2,3,4] >>> pickle.dumps(d) b'\x80\x03]q\x00(K\x01K\x02K\x03K\x04e.' >>> type(pickle.dumps(d)) <class 'bytes'> #类型为bytes pickle模块提供了四个功能:dumps、dump、loads、load。   dumps和dump都是进行序列化,而loads和load则是反序列化。 >>> import pickle >>> d=[1,2,3,4] >>> pickle.dumps(d) b'\x80\x03]q\x00(K\x01K\x02K\x03K\x04e.'

python基础之模块之序列化

喜夏-厌秋 提交于 2020-04-02 23:37:07
---什么是序列化(picking)?  我们把变量从内存中变成可存储或传输的过程称之为序列化。  序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。  反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling。  举例:大家应该都玩过魔兽争霸,应该知道该游戏有一个存档的功能,我每次不想玩得时候就可以存档,然后再玩得时候我们根本不需要重新开始玩,只需要读档就可以了。我们现在学习的事面向对象的思想,那么在我们眼中不管是我们的游戏角色还是游戏中的怪物、装备等等都可以看成是 一个个的对象,进行简单的分析。 角色对象(包含等级、性别、经验值、HP、MP等等属性) 武器对象(包含武器的类型、武器的伤害、武器附加的能力值等等属性) 怪物对象(包含等级、经验值、攻击、怪物类型等等) 于是玩游戏过程变的非常有意思了,创建游戏角色就好像是创建了一个角色对象,拿到武器就好像创建了一个武器对象,遇到的怪物、NPC等等都是对象了。 然后再用学 过的知识进行分析,我们发现对象的数据都是保存在内存中的,应该都知道内存的数据在断电以后是会消失的,但是我们的游戏经过存档以后,就算你关机了几天, 再进入游戏的时候,读取你的存档发现你在游戏中的一切都还在呢,奇怪了,明明内存中的数据已经没有了啊,这是为什么呢?于是再仔细考虑,电脑中有硬盘这个

Python面向对象反射,双下方法

情到浓时终转凉″ 提交于 2020-04-02 23:30:34
一. 反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力(自省)。这一概念的提出很快引发了计算机科学领域关于应用反射性的研究。它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩。 python面向对象中的反射:通过字符串的形式操作对象相关的属性。python中的一切事物都是对象(都可以使用反射) 四个可以实现自省的函数 下列方法适用于类和对象(一切皆对象,类本身也是一个对象) 对实例化对象的示例 class Foo: f = '类的静态变量' def __init__(self,name,age): self.name=name self.age=age def say_hi(self): print('hi,%s'%self.name) obj=Foo('egon',73) #检测是否含有某属性 print(hasattr(obj,'name')) print(hasattr(obj,'say_hi')) #获取属性 n=getattr(obj,'name') print(n) func=getattr(obj,'say_hi') func() print(getattr(obj,'aaaaaaaa','不存在啊')) #报错 #设置属性 setattr(obj,'sb',True) setattr