函数模块

一、函数模块的作用(为什么要有函数模块)

  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的更多相关文章

  1. python基础(11)-常用模块

    re(正则)模块 常用方法 findall() 以列表返回所有满足条件的结果 import re print(re.findall('\d','a1b2c2abc123'))#['1', '2', ' ...

  2. python基础14 ---函数模块5(模块和包)

    模块与包 一.模块 1.模块是怎么诞生的. 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护.为了编写可维护的代码,我们把很多函数分组,分别放到 不同的文 ...

  3. python基础12 ---函数模块2

    函数模块 一.sys函数模块详解 1.sys.argv[x] 功能:从程序外部接受参数,接收的参数个数可以是多个,在程序内部sys.argv吧这些外部参数转换成元组的形式,然后以索引x的方式在内部取出 ...

  4. python基础13 ---函数模块3(正则表达式)

    正则表达式 一.正则表达式的本质 1.正则表达式的本质(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被编译成一系列的 ...

  5. python基础——11(模块初识)

    一.函数回调 # 提前写出函数的调用,再去考虑函数体的实现 # 怎么样提前写出函数的调用:在另一个函数中写出函数的调用 # 再去考虑函数体的实现:根据实际的需求 # 自定义一个sleep def my ...

  6. python基础(11):函数(一)

    1. 什么是函数 1.我们到⽬前为⽌,已经可以完成⼀些软件的基础功能了.那么我们来完成这样⼀个功能: 约会: print("拿出⼿机") print("打开陌陌" ...

  7. python基础14 ---函数模块4(configparser模块)

    configparser模块 一.configparser模块 1.什么是configparser模块:configparser模块操作配置文件,配置文件的格式与windows ini和linux的c ...

  8. python基础——filter函数

    python基础——filter函数 Python内建的filter()函数用于过滤序列. 和map()类似,filter()也接收一个函数和一个序列.和map()不同的是,filter()把传入的函 ...

  9. 十八. Python基础(18)常用模块

    十八. Python基础(18)常用模块 1 ● 常用模块及其用途 collections模块: 一些扩展的数据类型→Counter, deque, defaultdict, namedtuple, ...

随机推荐

  1. php中const和static的区别和联系

    1.const是类中的常量,类外用define来定义常量2.const只可以修饰类的属性,不能修饰类的方法,static可以修饰属性,也可以修饰方法3.const和static都属于类本身,而不属于n ...

  2. svn解决与优化帮助

    1.问题的出现 解决方案: 最后一行不能子目录. 启动的时候也是要根目录的.svnserve -d -r /home/svn/repos [不能是svnserve -d -r /home/svn/re ...

  3. Effective JavaScript Item 10 避免使用with

    本系列作为Effective JavaScript的读书笔记. Item 9:避免使用withkeyword 重点: 设计withkeyword本来是为了让代码变简洁,可是却起到了相反的效果.比方: ...

  4. Android开发之httpclient文件上传实现

    文件上传可能是一个比較耗时的操作,假设为上传操作带上进度提示则能够更好的提高用户体验,最后效果例如以下图: 项目源代码:http://download.csdn.net/detail/shinay/4 ...

  5. rplidar 扫描角度设置

    参考网站::   https://blog.csdn.net/sunyoop/article/details/78302090 https://blog.csdn.net/dzhongjie/arti ...

  6. Convert to a source folder or rename it.

    从GitHub上恢复之前的版本  eclipse 报错: Convert to a source folder or rename it. 网上找了答案 : 找到了这个 1. 删除gen文件. 2.选 ...

  7. Python内置函数之staticmethod()

    staticmethod(function)返回函数的静态方法.一般来说,实例对象调用类方法不用传入参数,因为实例对象本身隐式的作为第一个参数传入了.而采用静态方法之后,实例对象在调用类方法时必须传入 ...

  8. Unity3d多人在线教程

    [转载]Unity3d多人在线教程 (2013-02-25 16:02:49) 转载▼ 标签: 转载   原文地址:Unity3d多人在线教程作者:lsy0031 Unity 多个玩家开发教程 Uni ...

  9. Oracle PL/SQL 高级编程

    1. 复合数据类型--记录类型 Ø        语法格式 type  类型名 is   record ( 字段1  字段1类型 [not null]:=表达式1; 字段2  字段2类型 [not n ...

  10. 用代码构造PreferenceScreen

    在PreferenceFregment中构造界面,简单省事的方法就是使用findPreference然后在xml里把UI写好.在代码中动态的添加UI内容也是需要的.核心代码是: PreferenceS ...