day13 模块与包的使用;random模块与时间模块

本文详细介绍了Python中的模块使用,包括导入方式、原理及重命名。同时,讲解了包的概念及如何导入包中的模块。此外,还探讨了random模块的常用功能,如生成随机整数、浮点数、打乱列表顺序等。最后,阐述了time和datetime模块在处理时间戳、日期和时间方面的应用,包括时间戳转换、日期加减操作等核心知识点。
摘要由CSDN通过智能技术生成

模块

1.什么是模块

python中一个py文件就是一个模块

2.怎么在一个模块中使用另一个模块中的内容(内容包括数据、函数、类…)

"""
注意:
1)如果要在一个模块中使用另一个模块中的内容,被使用模块的模块名必须是标识符并且不是关键字
2)一个模块中只有全局变量才能被其他模块使用
3)其他模块只有在被导入之后才能被使用
“”"

3.怎么导入模块

"""
1)import 模块名 - 导入指定模块,导入后可以通过’模块名.变量’的方式使用被导入的模块中的全局变量
2)from 模块名 import 变量1,变量2,变量3,… - 导入指定模块中指定的变量,导入后直接使用指定变量
第1)种用法可以导入所有变量并使用,第2)种只能使用导入的指定变量
3)from 模块名 import * - 导入指定模块中所有的变量,导入直接使用
4)重命名
imprt 模块名 as 新模块名 - 给模块重命名,重命名后使用新的名字来代替原模块名
from 模块名 import 变量1 as 新变量1,变量2,变量3,… - 给指定变量重命名
“”"

方式一:import 模块名

import test
print(test.a) # 100
print(test.name)  # 100
test.test_func1() # test中的函数:

方式二:from 模块名 import 变量,变量2,变量3,…

from test import name, test_func1
print(a)  # 会报错
print(name)   # hello
test_func1()  # test中的函数:

方式三:from 模块名 import *

from test import *
print(a)  # 100
print(name)   # hello
test_func1()  # test中的函数:

方式四:给模块重命名

import test as tt
test = 20
print(f'test{test}')    # test20
tt.test_func1()  # test中的函数:

方式五:给模块中的变量重命名

from test import name as t_name, a
name = '小明'
print(name)     # 小明
print(t_name)   # hello
print(a)    # 100

4.导入模块的原理

"""
执行代码的时候如果遇到import或者from import导入模块的时候,系统会自动进入指定模块,将模块中的代码全部执行一遍。
“”"

5.重复导入

"""
python的import导入模块的时候会自动监测被导入的模块是否已经被导入过,如果导入过就不会重复导入。
(在任何地方位置需要任何模块的时候直接导入,不需要有任何重复导入的负担)
“”"

这个if语句中的代码在模块被直接运行的时候会执行,在被别的模块导入的时候不会执行。
原理:每个模块中都有__name__这个属性来保存当前模块的模块名,__name__的默认值就是py文件的文件名
当执行运行某个模块的时候,这个模块__name__会自动变成’main
其他没有被执行运行的模块的__name__都是文件名
写法:

"""
if __name__ == ‘__main__’:
只在当前模块中才执行的代码块
“”"

import __main__
print(f'{__main__.__name__}')

1.什么是包

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

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

"""
1)import 包.模块
2)import 包.模块 as 新名字
3)from 包 import 模块
4)from 包.模块 import 变量1,变量2,…
“”"

from textManger import excelFile
import fileManger
# 导入模块

导入方式1:

import fileManger.textFile
fileManger.textFile.open_file()

导入方式2:

import fileManger.textFile as textFile
textFile.open_file()

导入方式3:

from fileManger import textFile, jsonFile
textFile.open_file()

导入方式4:

from fileManger.textFile import read_file, open_file
read_file()
open_file()

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

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

import fileManger
fileManger.open_file()
fileManger.close_file()

random模块

import random	# 导入模块

1.随机整数

# random.randint(m, n)  -   产生m到n的随机整数
print(random.randint(10, 20))

2.随机浮点数

# random.random() -   产生0到1的随机小数:[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]
random.shuffle(nums)
print(nums)

4.

random.choice(序列) - 随机获取序列中的一个元素

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

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(random.choice(nums))
print(random.choices(nums, k=2))

产生唯一文本信息

import uuid
print(uuid.uuid1())
print(uuid.uuid4())

时间相关模块

import time	# 导入模块

0.时间戳

"""
时间戳是通过保存某个时间点到1970年1月1日0时0分0秒(格林威治时间)的时间差来保存时间的,单位是秒。
保存时间戳比保存字符串时间更节约内存。
“”"

------------time模块------------

1.time.time() - 获取当前时间的时间戳

t1 = time.time()
print(time.time())
print(time.time())
print(t1/60/60/24/365)

2.time.localtime() - 获取当前当地时间,返回的是结构体时间

time.localtime(时间戳) - 将时间戳转换成结构体时间

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

3.time.sleep(N) - 睡眠指定时间(单位秒)

print('=========')
time.sleep(2)
print('+++++++++')

------------datetime模块-----------

from datetime import datetime, time, date, timedelta

1.获取当前时间

t1 = datetime.now()
print(t1, type(t1))     # 2021-05-14 16:45:12.693286 <class 'datetime.datetime'>
print(t1.year, t1.month, t1.day, t1.month, t1.minute, t1.second)
t2 = date.today()
print(t2)   # 2021-05-14

2.获取时间对应的时间戳

datetime对象.timestamp() - 获取时间对象对应的时间戳

t3 = t1.timestamp()
print(t3)

3.将字符串时间转换成时间对象

datetime.strptime(时间字符串,时间格式字符串)

"""
%Y - 年
%m - 月
%d - 日
%H - 时(24小时制)
%M - 分
%S - 秒
“”"

t_str = '2015-03-04 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_str2 = '2010/8/4'
t5 = datetime.strptime(t_str2, '%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(seconds=1))    # 2016-01-01 00:00:00
print(t4 + timedelta(days=1))   # 2016-01-01 23:59:59
print(t4 - timedelta(days=1, hours=1))  # 2015-12-30 22:59:59
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值