python基础11 ---函数模块1
函数模块
一、函数模块的作用(为什么要有函数模块)
1、函数模块可以减少代码量
2、函数模块方便阅读
3、函数模块维护性强
二、函数模块的本质以及调用方法
1、函数模块的本质就是一个.py结尾的文件,该文件内写入大量函数
2、必须用import来引用函数模块,在调用函数模块时必须以"模块名.函数名"来调用函数模块中的函数。
3、有的时候我们只需要用到模块中的某个函数,也可以用“from 模块名 improt 函数1,函数2”的方式来引用该模块,但只是一次引用,不建议使用。
三、函数模块的分类
1、内置函数模块:系统自带的函数模块,我们只管调用它就可以了,在python环境里是看不到内置模块的,是在python解释器里面写好了的。
2、第三方函数模块:系统中自带了些别人写好的模块,称为第三方模块,该模块储存的路径在python软件安装路径的Lib下面(储存在系统环境里)。
3、自定义模块:自己定义的模块
4、import导入模块时的加载顺序:先从python解释器中查找,再从系统环境(Lib)中查找,最后在自定义的路径下查找。
四、time内置模块详解
1、time内置模块
1.1时间的表达形式
在python中时间的表达形式有三种,分别为时间戳,结构化时间(struct_time),和格式化的时间字符串。
时间戳:从1970年一月一号的零点零分零秒开始按秒计算的偏移量,其返回的值是个float类型。
结构化时间:struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天等)
字符串字符串:如'1998-10-10'(分隔符格式可以自己自由定义)
1.2总结:时间戳是计算机能够识别的时间,格式化的时间字符串是人能够识别的时间,结构化时间是用来操作时间的。
2、三种时间表达形式上的相互转换(如图)


1.1 字符串时间和时间戳之间是不能相互转换的。
1.2 time.localtime结构化时间的对象是北京标准时间,而time.gmtime结构化时间的对象是国际标准时间
五、random模块详解
1、python中的random模块用于随机产生一个任意数字
2、random.random
random.random()用于随机生成一个0到1.0的浮点数。
3、random.randint
random.randint(x,y)用于随机生成一个整数,大于等于x小于等于y的整数,并且x必须大于y.(顾头又顾尾)
4、random.randrange
random.randrange(x,y)用于随机生成一个整数,大于等于x小于y的整数,并且x必须大于y.(顾头不顾尾)
5、random.choice
random.choice(序列x)是从序列中随机获取一个元素,返回的结果是个整数型。序列x表示的是个有序序列。
random.choices(序列y)是从序列中随机获取一个元素,返回的结果是个list型。序列y表示的是个有序序列。
6、random.sample
random.sample(sequence, k)从指定序列中随机获取k个元素,返回的结果是列表。sample函数不会修改原有序列sequence,。
7、random.uniform
random.uniform(x,y)用于随机生成一个大于x小于y的浮点数,且x可以大于y也可小于y。
8、random.shuffle
random.shuffle(x)用于将一个列表的元素打乱,改变了列表x的元素位置。
六、hashlib
1、hashlib的作用:hashlib是个专门提供hash算法的库(摘要算法),现在里面包括md5, sha1, sha224, sha256, sha384, sha512。
2、摘要算法:摘要算法又称哈希算法,散列算法。他通过一个函数吧任意长度的数据转化成(对应)一个固定长度的数据串(通常用16进制的字符串表示)
3、hashlib的执行方式
hashlib.md5().update(b'x') 其中x为加密对象,加密完成。(如果加密对象很大可以调用多次update,加密后的结果是一样的)
hashlib.md5().hexdigest() 查看加密后的结果(32位的16进制字符串)
4、md5的加盐操作
4.1 为何加盐:由于加密对象和计算出的md5值是一一对应的关系,通过撞库的方式就可以破解用户密码,所以要对加密对象进行加盐操 作。
4.2 加盐方法:对原始字符串前加入一串数据,然后进行MD5加密
其格式为:hashlib.md5('salt',encod(utf-8))
5、如果两个用户的加密对象相同,加盐一致,得到的MD5值也是一样的,解决办法是通通过把登录名作为Salt的一部分来计算MD5,从而实 现相同口令的用户也存储不同的MD5。(前提是用户名不一致)
注:SHA1的结果是160 bit字节,通常用一个40位的16进制字符串表示。比SHA1更安全的算法是SHA256和SHA512,不过越安全的算法越 慢,而且摘要长度更长.摘要算法在很多地方都有广泛的应用。要注意摘要算法不是加密算法,不能用于加密(因为无法通过摘要反推明文),只 能用于防篡改,但是它的单向计算特性决定了可以在不存储明文口令的情况下验证用户口令。
七、os模块详解
1、os 模块提供了一个统一的操作系统接口函数, 这些接口函数通常是平台指定的,os 模块能在不同操作系统平台如 nt 或 posix中的特定函数间自动切换,从而能实现跨平台操作。(OS模块是Python标准库中的一个用于访问操作系统功能的模块)
2、os模块的详细参数
1.os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
2.os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd os.curdir 返回当前目录: ('.')
3.os.pardir 获取当前目录的父目录字符串名:('..')
4.os.makedirs('dirname1/dirname2') 可生成多层递归目录
5.os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
6.os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirname
7.os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
8.os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印出来,不区分文件和文件夹。
9.os.remove(x) 删除一个文件其中x指的是文件的绝对路径
10.os.name 判断当前使用的是什么平台。win->'nt'; Linux->'posix'
11.os.system("bash command") 运行shell命令,直接显示
12.os.environ 获取系统环境变量
13.os.path.abspath(path) 返回path规范化的绝对路径
14.os.path.split(path) 将path分割成目录和文件名二元组返回
15.os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素
16.os.rename("oldname","newname") 重命名文件/目录
17.os.path.isabs(path) 如果path是绝对路径,返回True os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False
18.os.path.isdir(path) 如果path是一个存在的目录,则返回True,否则返回False
19.os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
20.os.path.getatime(path) 返回最近一次进入path的时间.a即access,跟linux里边的atime是一样的
21.os.path.getmtime(path) 返回这个path最后一次修改的时间。
22.os.path.getctime(path) 返回path所指向的文件或者目录创建时间
23.os.path.getsize(path) 返回path的大小
python基础11 ---函数模块1的更多相关文章
- python基础(11)-常用模块
re(正则)模块 常用方法 findall() 以列表返回所有满足条件的结果 import re print(re.findall('\d','a1b2c2abc123'))#['1', '2', ' ...
- python基础14 ---函数模块5(模块和包)
模块与包 一.模块 1.模块是怎么诞生的. 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护.为了编写可维护的代码,我们把很多函数分组,分别放到 不同的文 ...
- python基础12 ---函数模块2
函数模块 一.sys函数模块详解 1.sys.argv[x] 功能:从程序外部接受参数,接收的参数个数可以是多个,在程序内部sys.argv吧这些外部参数转换成元组的形式,然后以索引x的方式在内部取出 ...
- python基础13 ---函数模块3(正则表达式)
正则表达式 一.正则表达式的本质 1.正则表达式的本质(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被编译成一系列的 ...
- python基础——11(模块初识)
一.函数回调 # 提前写出函数的调用,再去考虑函数体的实现 # 怎么样提前写出函数的调用:在另一个函数中写出函数的调用 # 再去考虑函数体的实现:根据实际的需求 # 自定义一个sleep def my ...
- python基础(11):函数(一)
1. 什么是函数 1.我们到⽬前为⽌,已经可以完成⼀些软件的基础功能了.那么我们来完成这样⼀个功能: 约会: print("拿出⼿机") print("打开陌陌" ...
- python基础14 ---函数模块4(configparser模块)
configparser模块 一.configparser模块 1.什么是configparser模块:configparser模块操作配置文件,配置文件的格式与windows ini和linux的c ...
- python基础——filter函数
python基础——filter函数 Python内建的filter()函数用于过滤序列. 和map()类似,filter()也接收一个函数和一个序列.和map()不同的是,filter()把传入的函 ...
- 十八. Python基础(18)常用模块
十八. Python基础(18)常用模块 1 ● 常用模块及其用途 collections模块: 一些扩展的数据类型→Counter, deque, defaultdict, namedtuple, ...
随机推荐
- Ros 中的多线程
参考文献:http://blog.csdn.net/sinat_27554409/article/details/48446611 老王说ROS http://blog.csdn.net/yake ...
- ROS当中添加第三方库
下文以serial 库为依据讲解第三方库在ROS下面的配置. 参考文献:http://blog.csdn.net/u011853479/article/details/51263590 ros中使 ...
- 命令行添加pod示例
1.创建AlamFireDemo 工程,关闭工程 2.进入到工程目录 执行 pod init 命令 生成 PodFile文件 3.vi PodFile编辑该文件 启用:platform :ios, ' ...
- Cent OS安装My Sql
因为公司的需要,所以就自己学习了一下在Linux上安装MySQL,但是翻查了好多博客,没有特别清楚,自己写下来好好总结一下 一.系统环境 CentOS-6.3-i386-bin-DVD1 二.下载My ...
- 关于Java性能的9个谬论
http://www.infoq.com/cn/articles/9_Fallacies_Java_Performance Java的性能有某种黑魔法之称.部分原因在于Java平台非常复杂,很多情况下 ...
- java之数字彩虹雨
© 版权声明:本文为博主原创文章,转载请注明出处 数字彩虹雨: 从上至下,随机出现一串字符串,以不同的速度运行到底部:类似于黑客帝国里面的场景 GitHub:https://github.com/Ta ...
- Atitit. Atiposter 发帖机版本历史 编年史
Atitit. Atiposter 发帖机版本历史 编年史 V1 初步实现sina csdn cnblogs V2 实现qzone sohu 的发帖功能 顺便重构接口实现分离 V3多文件循环发帖 ...
- cpu使用率高问题
然后:
- C语言中的一个*和[]优先级问题
最近写着玩了这么一段代码 int Init(int **T, int v1, int v2, int v3) { *sizeof(int)))) exit(-); *T[]=v1, *T[]=v2, ...
- laravel学习之路4artisan
php artisan list php artisan help migrate Tinker 让你可以在命令行中与 Laravel 应用进行交互php artisan tinker 在routes ...