2021-5-14 包和模块学习总结

本文介绍了Python中的模块和包的使用,包括导入机制、重命名以及包的结构。详细讲解了random模块的随机数生成功能,如randint、random、shuffle等方法。同时,探讨了时间相关模块time和datetime的操作,如时间戳转换、日期加减。文章还涉及了时间戳、结构体时间和日期对象之间的相互转换。
摘要由CSDN通过智能技术生成

2021-5-14 包和模块学习总结

模块的使用

1. 什么是模块

python中一个py就是一个模块

2. 怎么在一个模块

  • 如果要在一个模块中使用另外一个模块中的内容,被使用的模块的模块名必须是标识符,并且不是关键字.
  • 一个模块中只有全局变量才能被其他模块使用
  • 其他模块只有在被导入以后才能被使用

3. 怎么导入模块

  • import 模块名 - 导入指定模块,导入后可以通过**‘模块名.变量’**的方式使用被导入的模块中的所有全局变量
  • from 模块名 import 变量1,变量2,… - 导入指定模块中指定变量,导入后直接使用指定变量
  • from 模块名 import * - 导入指定模块中所有的变量,导入后直接使用
  • 重命名:
    • import 模块名 as 新模块名 - 给模块重命名,重命名后使用新的名字来代替原模块名
    • from 模块名 import 变量名 as 新变量名
# 方式一:import 模块名
# import test
# print(test.a)
# print(test.name)
# test.test_func1()

# 方式二:from 模块名 import 变量1,变量2,变量3,...
# from test import a,name,test_func1
# print(a)
# print(name)
# print(test_func1())

# 方式三:from 模块名 import *
# from test import *
# print(a)
# print(name)
# test_func1()

# 方法四:import  模块名 as 新模块名
# import test as tt

# tt.test_func1()

# 方法五:给变量重命名
# from test import name as t_name
# name = '小明'
# print(name,t_name)

4. 导入模块的原理

执行代码的时候如果遇到import或者from-import导入模块的时候,系统会字典进入指定模块,将模块中的代码全部执行一遍

5. 重复导入

python中的import 导入模块的时候会字典检查被导入的模块是否已经导入过,如果导入过不会重复导入.(在任何位置需要任何模块的时候直接导.不需要有任何重复导入的负担)

2. 包的使用

1. 什么是包

包就是包含__init__.py文件的文件夹.包是专门用来对模块进行封装的

2. 包的使用(导入包中的模块,或者导入包中的模块的内容)

  • import 包.模块
  • import 包.模块 as 新名字
  • from 包 import 模块1,模块2,…
  • from 包.模块 import 变量1,变量2,…
# 导入方式一:
# import fileManager.excelFile
# fileManager.excelFile.read_line()

# 导入方式二:
# import fileManager.excelFile as excelFile
# excelFile.read_line()

# 导入方式三:
# from fileManager import excelFile,jsonFile
# excelFile.read_col()
# jsonFile.write_json_file()

# 导入方式四:
# from fileManager.jsonFile import read_json_file
# read_json_file()

3. 导入包中的内容的原理

通过包导入模块或者模块内容的时候,系统会先执行包中的__init__.py文件,然后再执行对应的模块.

3. 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()*80+20)   #(20,100)

3. 随机打乱列表中元素的顺序

# random.shuffle(列表)
nums = [1,2,3,4,5,6,7,8,9,10,'J','Q','K','A']
random.shuffle(nums)
print(nums)

4. 随机获取元素及多个元素

# random.choice(序列)     - 随机获取序列中的一个元素
# random.choices(序列,k=N)         - 随机获取多个元素

nums = [1,2,3,4,5,6,7,8,9,10,'J','Q','K','A']
print(random.choice(nums))
print(random.choices(nums, k=3))

5. 产生唯一文本信息

# 产生唯一文本信息
import uuid
print(uuid.uuid1())         # 777f9f58-b488-11eb-98d8-247703427778
# print(uuid.uuid3())
print(uuid.uuid4())         # 301aa0b1-e5fe-47af-8bd0-8d5deb9814ed
# print(uuid.uuid5())

4. 时间相关模块

1. 时间戳

时间戳是通过保存某个时间点到1970年0时0分0秒(格林威治时间)的时间差来保存时间的.单位是秒.

保存时间戳比保存字符时间更节约内存.

2. time模块 - 以时间为单位

# 1.time.time()  - 获取当前时间的时间戳
t1 = time.time()
print(t1)

# 2.
# time.localtime()      - 获取当前当地时间,返回的是结构体时间
# time.localtime(时间戳)   - 将时间戳转换成结构体时间
t2 = time.localtime()
print(t2)
print(t2.tm_yday)

t3 = time.localtime(0)
print(t3)

# 3.time.sleep(N)        - 睡眠指定时间(单位是秒)
print('=========')
# time.sleep(2)
print('++++++++')

3. datetime模块 - 以类为单位


# 1. 获取当前时间
t1 = datetime.now()
print(t1,type(t1))                     # 2021-05-14 16:55:27.605013 <class 'datetime.datetime'>
print(t1.year,t1.month,t1.day,t1.hour,t1.minute,t1.second)      # 2021 5 14 16 55 27

t2 = date.today()
print(t2)                   # 2021-05-14

# 2. 获取时间对应的时间戳
# datetime对象.timestamp() - 获取时间对象对应的时间戳
t3 = t1.timestamp()
print(t3)                   # 1425429025.0

# 3. 将字符串时间转换成时间对象
# datetime.strptime(时间字符串,时间格式字符串)
"""
%Y - 年
%m - 月
%d - 日
%H - 时(24小时制) 
%M - 分
%S - 秒
"""


t_str = '2015-3-4 8:30:25'
t4 = datetime.strptime(t_str,'%Y-%m-%d %H:%M:%S')
print(t4,type(t4))          # 2015-03-04 08:30:25 <class 'datetime.datetime'>
print(t4.timestamp())       # 1425429025.0

t_str = '2010/8/4'
t5 = datetime.strptime(t_str,'%Y/%m/%d')
print(t5)       # 2010-08-04 00:00:00

# 4. 日期的加减操作
t_str = '2015-12-31 23:59:59'
t4 = datetime.strptime(t_str,'%Y-%m-%d %H:%M:%S')

print(t4 + timedelta(days=1,hours=1))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值