python高级函数总结

**

python的函数

:**
<1>.random
<2>.os
<3>.os.path
<4>.sys
<5>.datetime
<6>.date
<7>.calendar
<8>.hashlib
<9>.hmac
random:

	'betavariate', 'choice', 'choices', 'expovariate', 'gammavariate',
'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'normalvariate', 
'paretovariate', 'randint', 'random', 'randrange', 'sample', 
'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 
'vonmisesvariate', 'weibullvariate']
计算机中的随机数都是伪随机数
|-- randint(start, end)			# [start, end]区间范围内的随机整数
|-- random()				# [0, 1)区间范围内的随机数
|-- choice(seq)
|-- randrange(start, end)		# [start, end]区间范围内的随机整数
|-- shuffle(seq)			# [start, end]区间范围内的随机数
|-- uniform(start, end)

os:
os(operation system):
操作系统相关模块,操作操作系统中非常重要,文件系统

 'abc', 'abort', 'access', 'add_dll_directory', 'altsep', 'chdir', 'chmod',
 'close', 'closerange', 'cpu_count', 'curdir', 'defpath', 'device_encoding',
 'devnull', 'dup', 'dup2', 'environ', 'error', 'execl', 'execle', 'execlp',
 'execlpe', 'execv', 'execve', 'execvp', 'execvpe', 'extsep', 'fdopen', 
 'fsdecode', 'fsencode', 'fspath', 'fstat', 'fsync', 'ftruncate', 
 'get_exec_path', 'get_handle_inheritable', 'get_inheritable', 
 'get_terminal_size', 'getcwd', 'getcwdb', 'getenv', 'getlogin', 'getpid',
 'getppid', 'isatty', 'kill', 'linesep', 'link', 'listdir', 'lseek', 
 'lstat', 'makedirs', 'mkdir', 'name', 'open', 'pardir', 'path', 'pathsep', 
 'pipe', 'popen', 'putenv', 'read', 'readlink', 'remove', 'removedirs',
 'rename', 'renames', 'replace', 'rmdir', 'scandir', 'sep', 'set_handle_inheritable',
 'set_inheritable', 'spawnl', 'spawnle', 'spawnv', 'spawnve', 'st', 'startfile',
 'stat', 'stat_result', 'statvfs_result', 'strerror', 'supports_bytes_environ',
 'supports_dir_fd', 'supports_effective_ids', 'supports_fd', 'supports_follow_symlinks', 
 'symlink', 'sys', 'system', 'terminal_size', 'times', 'times_result', 'truncate',
 'umask', 'uname_result', 'unlink', 'urandom', 'utime', 'waitpid', 'walk', 'write']
 
|-- chdir(path)			# 修改当前的工作空间
|-- chmod			#
|-- cpu_count()			# 返回CPU的架构信息
|-- curdir			# 获取当前工作目录
|-- device_encoding		#
|-- getcwd()			# 
|-- getpid()
|-- getppid()
|-- listdir([path])		# 列表
|-- os.sep

os.path
|-- abspath(path) # 返回绝对路径

 'abspath', 'altsep', 'basename', 'commonpath', 'commonprefix', 'curdir', 
 'defpath', 'devnull', 'dirname', 'exists', 'expanduser', 'expandvars',
 'extsep', 'genericpath', 'getatime', 'getctime', 'getmtime', 'getsize', 
 'isabs', 'isdir', 'isfile', 'islink', 'ismount', 'join', 'lexists', 
 'normcase', 'normpath', 'os', 'pardir', 'pathsep', 'realpath', 'relpath',
 'samefile', 'sameopenfile', 'samestat', 'sep', 'split', 'splitdrive', 
 'splitext', 'stat', 'supports_unicode_filenames', 'sys'

|-- abspath(path)		# 返回绝对路径
|-- basename(path)		# 文件名称
|-- dirname(path)		# 文件的主目录
|-- exists(path)		# 判断文件存不存在
|-- getatime(path)
|-- getctime
|-- getmtime
|-- getsize
|-- join(path1, path2)
|-- split(path)

sys:
系统模块,python解释器系统:

	 'addaudithook', 'api_version', 'argv', 'audit', 'base_exec_prefix', 
 'base_prefix', 'breakpointhook', 'builtin_module_names', 'byteorder',
 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dllhandle',
 'dont_write_bytecode', 'exc_info', 'excepthook', 'exec_prefix', 'executable', 
 'exit', 'flags', 'float_info', 'float_repr_style', 'get_asyncgen_hooks',
 'get_coroutine_origin_tracking_depth', 'getallocatedblocks', 'getcheckinterval',
 'getdefaultencoding', 'getfilesystemencodeerrors', 'getfilesystemencoding', 
 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'getswitchinterval',
 'gettrace', 'getwindowsversion', 'hash_info', 'hexversion', 'implementation',
 'int_info', 'intern', 'is_finalizing', 'maxsize', 'maxunicode', 'meta_path', 
 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix',
 'ps1', 'ps2', 'pycache_prefix', 'set_asyncgen_hooks', 
 'set_coroutine_origin_tracking_depth', 'setcheckinterval', 'setprofile', 
 'setrecursionlimit', 'setswitchinterval', 'settrace', 'stderr', 'stdin', 
 'stdout', 'thread_info', 'unraisablehook', 'version', 'version_info', 
 'warnoptions', 'winver']|-- api_version			# 获取API版本
|-- argv			# 获取脚本参数,注意,以列表形式保存脚本
|-- exit()			# 退出系统
|-- getdefaultencoding()	# 获取系统(python解释器)的默认编码
|-- getfilesystemencoding()	# 获取操作系统的文件系统的默认编码
|-- getrecursionlimit()		# python解释器,对于递归的调用次数,限制为1000次
|-- setrecursionlimit()		# 设置递归从层数
|-- getrefcount()		# 获取变量的引用计数

time:

'altzone', 'asctime', 'ctime', 'daylight', 'get_clock_info', 'gmtime', 
'localtime', 'mktime', 'monotonic', 'monotonic_ns', 'perf_counter', 
'perf_counter_ns', 'process_time', 'process_time_ns', 'sleep', 'strftime', 
'strptime', 'struct_time', 'thread_time', 'thread_time_ns', 'time', 
'time_ns', 'timezone', 'tzname']|-- time.asctime()		#
|-- time.ctime()		#
|-- time.gmtime([seconds])	# 
|-- time.localtime([seconds])	# 
|-- sleep(seconds)		# 
|-- time.time()			# 时间戳|邮戳	时间对象和数值之间的关系
|-- strftime			# 格式化时间对象为特定格式的字符串
|-- strptime			# 从字符串转换为时间对象

calendar(日历):
hashlib
hmac

hashlib
hash加密的内置库

如果做数据完整性的校验:不要混淆  md5
如果要加密数据:要求一定要做盐值混淆!!!!

如何完成盐值混淆:
update方法,本质就是在后面追加了数据(数据越长、复杂)

hmac:
也是哈希算法,也利用对称加密特点

10流(input output stream)
指的是,计算机中数据在内存中流入流出的技术
在狭义上,主要指的是,内存到磁盘(存储设备)
在广义上,也包括网络数据的传输

10流的分类:
数据的流动方向:
|-- 输入流
|-- 输出流
数据的类型:
|-- 字节流
|-- 字符流

**

python常见的内置模块

**

字符流:只能操作,字符文本数据,无法操作字节数据
1千万的字文章 不到20M
1000 0000 / 1000 / 1000

字节流:可以操作任何数据
8G高清视频

注意,字节文件的拷贝,不建议一次读完,最好是分批次读取

对象序列化:
对象:抽象概念
如果我们要传输对象,就需要将对象由逻辑概念转换为真实存在的数据(字符串、字节)
对象反序列化:
将物理状态的数据转换为逻辑状态

python提供了两个对象序列化和反序列化的模块
pickle:对象 <> 字节数据
json: 对象 <
> json

pickle.dump(obj, file):对象持久化(先序列化,在持久化)
pickle.load(file):反持久化,将数据从磁盘重新读成对象

picke.dumps(obj):对象序列化
pickle.loads(bytes):反序列化对象

面向对象的编程(OOP):

什么面向对象
人是如何认知世界的?
分类来认知世界的
模型:颜色、大小、体积、等等各种信息

进行分门别类的认知世间万物
OO(Oriented Object):面向对象
OOA(Oriented Object Analysis):面向对象的分析
OOD(Oriented Object Design):面向对象的设计
OOP(Oriented Object Programming):面向对象的编程
OOT(Oriented Object Test):面向对象的测试

什么是面向过程
提出问题,分析问题,一步一步的解决问题
业务逻辑的复杂度进一步提升

面向过程:和面——>擀面——>切面——>烧水 切菜 炒菜 下面 盛面 吃饭

面向对象: 谁吃饭?人!!! 先造人
造面、造水、
人的行为动作:

程序员的角色:造物主

是什么:
类是一种抽象概念,人为的总结和抽象,对一类事物的统称
类的成员:
|-- 静态的属性
类固有的特性,静态的属性,一般可以通过一些基本数据类型来描述的

	|-- 动态的行为
		学习、跑步、打篮球、睡觉、看书,一般是复杂的行为动作(很多代码来描述整个过程)

在python中如何定义类:
关键字class关键字定义类
class 类名称:
class 类名称(object):

	def __init__(self):

面向对象的三大特征:

封装
封装的原意:封闭、包装的意思
在面向对象中:
1、所有的面向对象相关功能,封装在一个类里面
2、在一个类中,将属性私有化,外界不允许访问属性,
一般通过提供公开的方法(getter、setter)来访问和设置
封装的本质:就是对类中属性的数据的保护,不允许外界非法访问
只允许,通过提供的公开的方式来访问数据!!!

将属性私有化之后,如何在外界访问该属性?
<1>、直接提供get和set方法
<2>、将get和set再次包装一把,之后使用类似于属性的方法私有的属性
<3>、使用@property的装饰器完成封装
继承
后代会继承先代的特征或者特征
子类通过继承关系,得到父类的一些属性和方法的写法
目的:实现代码的复用
子类会继承父类的一些方法(父类允许继承的方法)
方法覆盖(override)和重写(overwrite)
子类继承了父类的方法,但是该方法无法满足子类使用,子类可以通过重写该方法。
方法重写,并不是真正的重写,是查找顺序问题
所有的对象,优先查找自己的类,如果查询不到,则顺着继承链向上查找
多态
事物的多张状态
面向对象中,多态:父类引用指向子类实例的现象!!!
python是弱数据语言,所有它是天生支持多态
List 接口 线性表
ArrayList 类 以数组的形式形成的线性表
List是ArrayList的父类
ArrayList值List子类
ArrayList al = new ArrayList(); // 创建一个ArrayList对象
List list = new ArrayList(); // 父类引用指向子类实例的现象!!!
**

python高级:

**
python高级特性:
装饰器
迭代器
包和模块
深浅拷贝
……

**

包和模块:

**
是python管理代码和项目的两种单位
package:用来存储模块的文件夹
在python,目录是可以当做包使用的,但是注意,包并不是普通的文件夹!!!
真正的包,默认存在了一个__init__.py文件,该文件叫做包的初始化问题
**

模块:

**就是xxx.py文件

**

导包:

**
import package
import package.module
import package.xxx.xxx.module as alias

python3推崇from import 这种导包方式
from package import module
# 如果使用*匹配,则该包必须是存在初始化和__all__变量
from package import *

第三方模块或者框架的安装方式:
pip install 模块名称

window环境下 pip默认已经安装

**

深浅拷贝:

**
**对象拷贝:**将相同的对象复制一份

**引用传递:**传递是地址(C语言中的指针)
没有发生对象(堆内存中的)复制,仅仅是引用复制(地址复制,也就是栈空间发生了复制)
最终这些地址都是同一个对象

**浅拷贝:**对象发生复制(堆内存中的)
仅仅拷贝对象的一层对象(如果存在多层对象的情况下)
深拷贝:对象发生复制(堆内存中的)
递归拷贝,将所有对象和子对象都分离拷贝

优缺点:
浅拷贝:节约内存,但是子对象藕断丝连
深拷贝:内存开销更大,但是所有对象都是独立的

**

列表推导式:

**
可以很容易实现大量列表数据的创建
1~100列表
[i for i in range(100)]
[i for i in range(1, 101)]
[i for i in range(1, 101, 2)]
[i for i in range(1, 101) if i % 2 == 0]
[i*j for i in range(1, 10) for j in range(1, 10) ]

优点:
可以很简单的生成我们需要的列表元素
缺点:
1、直接生成元素,如果数据大的时候,全部加载到内存中,导致内存消耗过大(解决方案:生成器)
2、如果生成复杂的列表,列表推导式过于困难
**

生成器(generator):

**
列表推导式,
优点:可以通过一段代码,生成我们想要的列表数据,非常强大
缺点:如果数据量多的时候,直接生成数据,内存太大
因此python提供了新的列表生成方式,这个方式就是列表生成器
生成器的遍历:
使用for循环可以遍历生成器
for 变量 in generator:
print(该变量每一次循环就是一个生成器的值)
迭代器(Iterator):
可以通过next函数调用,并且返回下一个值的对象
可迭代对象(Iterable):
能够被循环调用,返回下一个值的,可迭代对象
字符串、列表、元组、字典、集合

**

闭包(closure):

**
能够方法函数内部的变量的函数,被称为闭包
函数包含函数
<1>导致函数常驻内存,无法被释放!!!!
<2>局部变量全局化:避免了全局污染!!!
**

装饰器:

**
装饰者设计模式的体现,当我们对原有功能不能满足的时候,
我们可以通过装饰原有代码,来实现代码增强
python提供的装饰器(Decorator),就是强化和装饰原有函数功能,
将函数功能加强的一种语法
**

python垃圾回收机制:

**
以引用计数为主,分代收集为辅,进行垃圾的回收
引用计数最大的问题:循环引用问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WHearTBeat

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值