python学习记录5

匿名函数

def ():
	# 函数体

注意:在早期,python并没有匿名函数,lambda表达式

lambda表达式:
	lambda [参数1,参数2,n...]: 代码

优点:简化了函数定义
缺点:降低了代码的可读性,提升复杂度

偏函数
使用functools.partial函数将一个函数的某些默认值转换为其他想要的默认值函数
import functools

新函数 = functools.partial(函数, 参数=新的默认值)

python内置的常见模块
|-- random
|-- math
|-- os
|-- os.path
|-- sys
|-- time
|-- datetime
|-- hashlib
|-- base64
|-- hmac
|-- uuid
……

1、什么是模块?
模块(module),它特指就是xxx.py文件
2、如何导入模块
如果默认没有在包中
import xxxx import random
import uuid, sys
import os.path as 别名
from 包路径 import 模块名称
from 包路径.模块名称 import 方法、类、变量
from functools import partial

3、常见的内置模块
random
目前所有的计算机API实现的随机都是伪随机数
|-- random.random() # 返回一个[0, 1)的随机数
|-- random.randint(n, m) # 返回[n, m]范围内的随机整数
|-- random.randrange(n, m) # 返回[n, m)范围内的随机整数
|-- random.choice(sequence) # 从一个序列中随机返回一个元素
|-- random.uniform(n, m) # 返回[n, m]范围内的随机数
|-- random.shuffle(列表) # 随机洗牌列表中的元素顺序
math
进行数学计算
|-- math.ceil(num) # 向上取整
|-- math.floor(num) # 向下取整
|-- math.abfs(num) # 求绝对值
|-- math.modf(num) # 以元组的形式返回整数和小数部分
|-- math.pi # 圆周率
|-- math.pow(num, num2) # 幂次方 num**num2
|-- math.sqrt(num) # 开平方根
os
主要管理操作系统文件管理系统

	|-- chdir(path)			# 修改当前工作空间路径的
	|-- curdir			# 当前工作空间的路径
	|-- os.getcwd()			# 获取路径的绝对路径
	|-- os.path.abspath(path)	# 获取路径的绝对路径
	|-- os.cpu_count()		# 获取当前电脑的CPU架构
	|-- os.device_encoding(fd)	# 获取设备的编码
	|-- os.getpid()			# 获取进程编号
	|-- os.getppid()		# 获取当前进程的父进程编号
	|-- os.kill()			# 通过编号杀死进程
	|-- os.listdir(path)		# 遍历path路径下的所有文件和文件夹,以列表形式返回名称
	|-- os.mkdir()			# 创建一个单层文件夹(目录)
	|-- os.makedirs()		# 创建多次目录
	|-- os.name			# 获取操作系统名称
	|-- os.rename()			# 重命名
	|-- os.remove()			# 移除文件
	|-- os.removes()		# 移除多次目录
	|-- os.rmdir()			# 删除目录
	|-- os.sep			# 当前系统对应的文件分隔符

|-- 函数结尾工作
|-- 深入讲解了递归在算法中的使用
|-- 斐波那契数列实现和使用
|-- lambda表达式
lambda [参数列表]:函数体
|-- 偏函数
函数的重新定义
from functools import partial
|-- 全局函数
|-- 系统内置的常见模块
|-- random
random.random()
random.randint()
random.randrange()
random.uniform()
random.choice()
|-- builtins
这个默认加载内置模块、全局函数、常见异常类
|-- functools
这个模块主要提供跟函数相关的操作
partial()、reduce()
|-- math
pi、ceil、floor、pow()、sqrt()、modf()
|-- copy
讲深浅拷贝时再说
|-- os
主要操作的就是系统的文件管理系统
os.chdir(path)
os.curdir
os.getcwd()
os.name()
os.cpu_count()
os.chmod()
os.kill()
os.getpid()
os.getppid()
os.listdir(path)
os.sep
os.mkdir()
os.makedirs()
os.rename()
os.renames()
os.remove()
os.removes()
os.rmdir()
os.system()

今日目标:
|-- 内置模块
|-- os.path
|-- sys
|-- time
|-- datetime
|-- calendar
|-- hashlib
|-- hmac
|-- uuid
|-- IO流操作
open全局函数

os.path模块
推荐使用 from os import path 导入方式

|-- os.path.abspath(path)		# 获取path的绝对路径
|-- os.path.altsep			# 路径的分割符
|-- os.path.basename(path)		# 获取路径对应的文件名称
|-- os.path.dirname(path)		# 获取文件所在目录
|-- os.path.exists(path)		# 判断文件是否存在
|-- os.path.getatime(path)		# 获取文件最后的访问时间
|-- os.path.getctime(path)		# 获取文件的创建时间
|-- os.path.getmtime(path)		# 获取文件的修改时间 
|-- os.path.getsize(path)		# 获取文件大小,单位是B(字节)
|-- os.path.isdir(path)			# 判断path是不是目录
|-- os.path.isfile(path)		# 判断路径是不是一个文件
|-- os.path.isabs(path)			# 判断路径是不是一个绝对路径
|-- os.path.islink(path)		# 判断路径是不是一个链接(软连接、硬链接)
|-- os.path.ismount(path)		# 判断路径是不是一个挂载文件(U盘、光驱等)
|-- os.path.join(path1, path2)		# 完成路径的拼接,会自动根据系统生成分隔符
|-- os.path.split(path)			# 分隔文件路径

课堂练习:遍历磁盘

import os
from os import path
def sannaer_file(real_path) :
    #	使用递归,遍历磁盘
    files = os.listdir(real_path)
    print(files)
    for f in files :
        #路径拼接
        file = path.join(real_path,f)
        #判断是否为文件夹
        if path.isfile(file):
           print(file)
        elif path.isdir(file):
           sannaer_file(file)
a=str(input("请输入需要展示的磁盘:(c,d,e) \n"))import os

sys模块
|-- sys.argv # 获取脚本名称和参数
|-- sys.exit() # 退出系统
|-- sys.getdefaultencoding() # 或者默认编码
|-- sys.getfilesystemencoding() # 或者默认文件系统编码
|-- sys.getrecursionlimit() # 获取递归的限制层数
|-- sys.setrecursionlimit() # 设置递归的限制层数
|-- getrefcount() # 对象的引用计数次数

time模块
|-- time.asctime() # 返回当前时间,格式是西欧格式
|-- time.ctime() # 返回当前时间,格式是西欧格式
|-- time.gmtime() # 返回当前时间,时间对象,注意:时区是伦敦时区
|-- time.localtime() # 返回当前时间,时间对象,注意:时区是当前时区
|-- time.sleep(seconds) # 让当前线程停止运行
|-- time.time() # 获取当前时间戳
|-- time.struct_time(元组) # 构造一个对应的时间对象
|-- time.strftime() # 将一个时间对象格式化为特定的字符串输出
|-- time.strptime() # 将特别的字符串时间转换为时间对象

datetime模块
import datetime
|-- datetime.datetime.now() # 获取当前时间对象
|-- datetime.date(year, month, day) # 构造一个日期对象
|-- datetie.time(hour, min, seconds) # 获取时间对象
|-- str(datetime对象) # 格式化datetime对象为字符串

calendar模块
日历模块

hashlib模块
加密算法相关的模块
加密算法:
|-- 通过是否可逆
|-- 可逆加密
|-- 加密和解密是否使用同一个秘钥
|-- 对称加密 DES
使用同一秘钥加密和解密
|-- 非对称加密 RSA
使用一对公私钥对
|-- 不可逆加密(散列加密、hash加密、哈希加密)
md3、md4、md5
sha1、sha256、sha384 …

			二进制的128位数组  ==> 32位字符串

			使用场景:密码加密、文件校验

			hash,引入盐值 salt

uuid:
import uuid
s = uuid.uuid4()
s.hex

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

狂阿弥20457

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

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

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

打赏作者

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

抵扣说明:

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

余额充值