2021.03.17

总结

模块

什么是模块,什么是包

一个py文件就是一个模块,文件名就是模块名(如果一个模块想要被其他模块使用,模块名必须是标识符并且不是关键字)
一个包含__init__.py文件的文件夹就是一个包

使用其他中的内容

一个模块可以使用另外一个模块中所有的全局变量,但是使用前需要先导入模块

导入模块的语法:
import 模块名 - 导入指定模块,导入后通过’模块名.x’去使用模块中所有的全局变量
from 模块名 import 变量1, 变量2, 变量3, … - 导入指定模块,导入后可以直接使用import后面所有的变量
import 模块名 as 新模块名 - 导入模块并且对模块进行重命名,使用数据时候采用:‘新模块名.’
from 模块名 import 变量1 as 新变量1, 变量2, 变量3, …
from 模块名 import * - 导入模块中所有的全局变量

导入模块的原理:
不管是通过import还是from-import,导入模块的时候都会先进入指定模块,将模块中的代码全部执行

选择性的让模块中的代码在被导入的时候执行和不执行:
if name == ‘main’:
这个if语句外面的代码在被导入的时候会执行,里面的代码被导入的时候不会被执行
pass

导入包中的内容

import 包名 - 只有在自定义完__init__.py后才有用
import 包名.模块名 - 导入包中指定的模块, 使用模块中的内容的格式: 包名.模块名.x

from 包名 import 模块名1, 模块名2, …
from 包名.模块 import 变量1, 变量2,…

注意:import在导入模块或者包的时候,会先检查这个模块或者包之前是否已经导入过,如果已经导入过了不再重复导入

init.py文件的作用

当导入包或者包中的内容的时候,会自动执行包中的__init__.py文件

# import files# 打开文件
# import files.commonFile
# files.commonFile.open_file()# import files.commonFile as cm
# cm.open_file()# from files import commonFile, jsonFile
# commonFile.open_file()
# jsonFile.read_json()# from files.commonFile import open_file, close_file
# open_file()# import files
# files.open_file()# from files import open_file
# open_file()# import files
# files.commonFile.open_file()# import files
# files.delete_file()# from files import delete_file
# delete_file()import tools
import tools

工作涉及到的模块

  1. os模块 - 提供文件和文件夹操作的相关函数
    os.getcwdb() - 返回当前工作目录
    os.listdir(path) - 返回指定目录中所有的文件或者文件夹的名字
  2. time和datetime - 提供操作时间相关的函数
  3. random - 提供随机相关函数
  4. hashlib - 提供hash加密相关函数(hash摘要)

random模块

import random# 1) random.randint(m, n)  - 产生m到n的随机整数
print(random.randint(10, 20))# 2) random.random()    -   产生 0 ~ 1的随机小数
print(random.random())      # 0 ~ 1
print(random.random() * 100)    # 0 ~ 100
print(random.random() * 50 + 50)        # 50 ~ 100
print(random.random() * 5 + 15)         # 15 ~ 20# 3) random.shuffle(列表)     -    将列表中元素的顺序随机打乱(洗牌)
nums = [23, 34, 'abc', True]
random.shuffle(nums)
print(nums)# 4)
# random.choice(序列)     -   从序列中随机获取一个元素
# random.choices(序列, k=N)   -   从序列中随机获取N个元素result = random.choice('abc3lo901')
print(result)nums = [23, 34, 'abc', 20, 3, 4]
result = random.choices(nums, k=2)
print(result)

time模块

import time

  1. 什么是时间戳
    时间戳:用一个时间到1970年1月1日0时0分0秒(格林威治时间)的时间差来表示一个时间, 单位是秒 (用时间差来表示时间)
    时间戳的优点:a.存储时间戳比存储字符串时间消耗的内存要小很多 b. 加密和解密更容易
# 1) time()     -       获取当前时间(时间戳)
t1 = time.time()
print(t1)       # 1615966804.79146  (4字节~5字节)# '2021-3-17 03:50:00'   (18字节)# 2)
# time.localtime()      -       获取当前本地时间(结构体时间)
# time.localtime(时间戳)   -       将时间戳对应的时间转换成结构体时间
t2 = time.localtime()
print(t2)t3 = time.localtime(0)
print(t3)t4 = time.localtime(1615966804.79146)
print(t4)
print(t4.tm_year, t4.tm_mon)# 3)time.sleep(时间)  -   让程序睡眠指定时间,单位秒
print('=======')
time.sleep(1)
print('+++++++')# 2. datetime  - time、datetime、date
from datetime import time, datetime, date, timedelta# 1) 获取当前时间
t5 = datetime.now()
print(t5)     # 2021-03-17 16:36:54.297076
print(t5.year, t5.month, t5.hour)t6 = date.today()
print(t6)       # 2021-03-17# 2) 时间的加减操作
print('当前时间:', datetime.now())
# 10天前:
print('10天前:', t5 - timedelta(days=10))    # 2021-03-07 16:42:01.363135
# 20天前
print('20天前', t5 - timedelta(days=20))    # 2021-02-25 16:42:36.397193print('1个小时前:', t5 - timedelta(hours=1))
print('2个小时后:', t5 + timedelta(hours=2))
print('47个小时后:', t5 + timedelta(hours=47))
print('2小时30分后:', t5 + timedelta(hours=2, minutes=30))t6 = t5 - timedelta(days=1, hours=1)
print(t6, t6.year, t6.month, t6.day, t6.hour, t6.minute, t6.second)

hash加密算法 - md5、sha相关

import hashlib

hash加密的特点:
a. 不可逆:无法通过hash算法加密得到密文获取到原数据
b. 相同的数据通过相同的算法得到摘要(密文)是一样的
c. 不同长度是数据通过相同的算法得到的摘要(密文)的长度一样

# 2.生成数据摘要(加密)
# 1) 根据算法创建hash对象:  hashlib.算法名()
# 常用算法:md5、shaX
hash_obj = hashlib.md5()# 2)添加原文
# hash对象.update(需要加密的数据)
# 注意:加密数据的类型必须bytes(相当于python中二进制数据)
hash_obj.update('123456'.encode())# 3)获取摘要(获取密文)
# hash对象.hexdigest()
result = hash_obj.hexdigest()
print(result)    # e10adc3949ba59abbe56e057f20f883e

2021.03.17模块相关推荐

  1. 2021.03.17 pokémon小游戏开发记录与周总结

    2021.03.17 pokémon小游戏开发记录与周总结 此篇仅包含部分项目代码,只是个人的学习总结. 文章目录 2021.03.17 pokémon小游戏开发记录与周总结 前言 一.前期准备 二. ...

  2. 2021.03.24正则匹配符号

    2021.03.24 正则表达式 from re import fullmatch 正则是一种用来处理文本数据的一种工具.(一般用于处理复杂的文本问题) 1)检测输入的数据是否是手机号? 2)检查输入 ...

  3. 2021.03.30【2021省赛】模拟 比赛总结

    2021.03.30[2021省赛]模拟 比赛总结 地址: https://gmoj.net/senior/#contest/home/3350 T1: 神奇纸牌(uno) T2: 凌乱平衡树 (tr ...

  4. 李嘉骐:03 PyTorch模块与基础实战

    深入浅出Pytorch 03 PyTorch模块与基础实战 内容属性:深度学习(实践)专题 航路开辟者:李嘉骐.牛志康.刘洋.陈安东 领航员:叶志雄 航海士:李嘉骐.牛志康.刘洋.陈安东 开源内容:h ...

  5. Interesting Finds: 2008.03.17

    .NET: LINQ Framework Design Guidelines 使用 Visual Studio 分析器找出应用程序瓶颈 Add Support for "Set" ...

  6. [2021.1.17多校省选模拟4]T1(莫比乌斯反演/组合数学/枚举倍数)

    [2021.1.17多校省选模拟4]T1 一般人都会想着去枚举直线的斜率,但是枚举斜率之后就会产生多条直线,并且这些直线的长度不一,难以快速求解,所以我们考虑换一种方法枚举. 枚举最远点对的横纵坐标之 ...

  7. Go、Rust、C++和Zig语言的生产力对比 | Gopher Daily (2021.03.28) ʕ◔ϖ◔ʔ

    每日一谚:Goroutines and channels are big ideas. They're tools for program construction. Go技术生态 掉入Go nil坑 ...

  8. 2021.03青少年软件编程(Python)等级考试试卷(二级)

    2021.03青少年软件编程(Python)等级考试试卷(二级) 一.单选题(共25题,共50分) 1.对于字典infor = {"name":"tom", & ...

  9. Cocos2dx游戏源码合集(BY懒骨头+持续更新+2014.03.17)

    懒骨头(http://blog.csdn.net/iamlazybone QQ:124774397 青岛) 有很多同学问源码,干脆出个索引贴,以后持续更新 ====================== ...

最新文章

  1. 非线性方程组牛顿迭代法matlab,matlab实现牛顿迭代法求解非线性方程组
  2. quartz 分布式_6大分布式定时任务对比
  3. 网管必看的好东东(一)
  4. IIS部署asp.net core webapi
  5. 家电换新就现在 国美发放“年中惠民消费大补贴”
  6. [BZOJ 2243] 染色
  7. vue ui 启动,浏览器报错Unexpected token
  8. Yii2 的 redis 应用
  9. nginx利用proxy_cache来缓存文件
  10. python读excel两列为字典_用python读取Excel并保存字典?一两行代码完成骚操作
  11. jQuery自动加载更多程序
  12. 搭建Ubuntu下c/c++编译环境
  13. 多目标蚁群算法路径规划(一)-----从数据设计到毕业论文系列
  14. 图的表示(Adjacency List + Adjacency Matrix)
  15. 2 简单使用原形工具Axure RP
  16. 假期培训第一阶段的总结和第二阶段的总结
  17. 香侬科技提出中文字型的深度学习模型Glyce,横扫13项中文NLP记录
  18. 《阿里铁军》带给我的启发和感悟
  19. 说极路由牛逼的人们,你们用过Tomato DualWAN吗?(一)
  20. Android开发——贝塞尔曲线解析

热门文章

  1. 数据结构第六次上机实验
  2. simulink的Spectrum Analyzer(功率谱密度)
  3. linux汇编伪指令大全,ARM汇编伪指令
  4. 【报告分享】2021中国养老服务市场洞察-易观智库(附下载)
  5. 吴建国 安徽大学 计算机学院,安徽大学计算机科学与技术学院硕士生导师:谢莹副教授...
  6. 清理VS工程的ipch和sdf文件
  7. 计算火车运行时间(c语言)
  8. 平面上的点——Point类 (I)
  9. Java中如何通过键盘输入一个数组以及创建方式
  10. 【数学归纳法】【错位排序】Number Theory Special Training T4 derange 题解