day13-包和模块

day13-包和模块

一 模块的作用

1.1什么是模块

​ python中一个py就是一个模块

1.2怎么在一个模块中使用另外一个模块中的内容(内容包括:数据、函数、类等)

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

​ 3) 其他模块只有在被导入以后才能被使用

1.3怎么导入模块
  1. import 模块名 - 导入指定模块,导入后可以通过 ‘模块名.变量’ 的方式使用被导入的模块中所有的全局变量

  2. from 模块名 import 变量1, 变量2, … - 导入指定模块中指定变量,导入后直接使用指定变量

  3. from 模块名 import * - 导入指定模块中所有的变量,导入直接使用

  4. 重命名
    import 模块名 as 新模块名 - 给模块重命名,重命名后使用新的名字来代替原模块名
    from 模块名 import 变量1 as 新变量1, 变量2, 变量3,… - 给指定变量重命名

#方式一:import 模块名
# import test
# print(test.a)
# print(test.name)
# test.test_func1()

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

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

# 方式四:给模块重命名
# import test as tt
# import studentManagerSystem as stuManager
#
# test = 1000
# print(f'test:{test}')
#
# tt.test_func1()
# print(stuManager.name)

# 方法五:给变量重命名
# from test import name as t_name, a
# name = '小明'
# print(name, t_name, a)
1.4 导入模块的原理

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

1.5重复导入

​ python导入模块的时候会自动检测被导入的模是否已经导入过,如果导入过不会重复导入。(在任何位置需要任何模块的时候直接导,不需要有任何重复导入的负担)

二 包的使用

2.1什么是包

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

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

​ 1) import 包.模块
​ 2) import 包.模块 as 新名字
​ 3) from 包 import 模块1, 模块2,…
​ 4) 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.textFile import read_file, open_file
# read_file()
# open_file()
2.3导入包中的内容的原理

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

import fileManager
fileManager.open_file()
fileManager.close_file()

from fileManager import open_file, close_file
open_file()
close_file()

from fileManager import *
三 random模块
3.1随机整数

​ random.randint(m, n) - 产生m到n的随机整数

print(random.randint(10, 20))
3.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.3随机打乱列表中元素的顺序

​ random.shuffle(列表)

nums = [1, 2, 3, 4, 5, 6, 7, 8]
random.shuffle(nums)
print(nums)
3.4 随机获取序列中的一个元素

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

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

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

四 时间相关模块

4.1时间戳

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

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

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

t2 = time.localtime()
print(t2)   # time.struct_time(tm_year=2021, tm_mon=5, tm_mday=14, tm_hour=16, tm_min=15, tm_sec=1, tm_wday=4, tm_yday=134, tm_isdst=0)
print(t2.tm_year, t2.tm_mon, t2.tm_mday)

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

time.sleep(2)
4.3 datetime模块

​ 1.获取当前时间

t1 = datetime.now()
print(t1, type(t1))   # 2021-05-14 16:44:39.176743
print(t1.year, t1.month, t1.day, t1.hour, t1.minute, t1.second)
t2 = date.today()
print(t2)    # 2021-05-14

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

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

t1 = datetime.now()
t3 = t1.timestamp()
print(t3)   # 1620982179.95951

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

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

%Y - 年
%m - 月
%d - 日
%H - 时(24小时制)
%M - 分
%S - 秒
"""
t_str = '2015-3-4 18: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(seconds=1))    # 2016-01-01 00:00:00
print(t4 + timedelta(days=10))      # 2016-01-10 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、付费专栏及课程。

余额充值