4.27学习笔记
1.模块
什么是模块
Python中一个py文件就是一个模块
怎么使用模块
"""
前提:被使用的模块名(py文件的文件名)必须符合变量名的要求(是标识符,不是关键字)
能被使用的内容:所有的全局变量
怎么用:使用别的模块的内容前,必须先导入模块
"""
怎么导入模块
# 1)import 模块名 - 导入指定模块,导入后可以通过'模块名.xxx'的方式,使用这个模块中所有的全局变量
import test
print(test.a)
# 2)from 模块名 import 变量名1,变量名2,...导入指定模块;导入后可以直接使用指定变量
from test import a
# 3)from 模块名 import *,导入指定模块中所有的变量,可以只是使用所有变量
from test import *
# 4)import 模块名 as 新模块名 - 直接导入指定模块,并且对模块进行重命名,重命名后需要通过新模块名使用模块
# 5)from 模块名 import 变量名1 as 新变量名1,变量名2 as 新变量名2.....
2.导入原理
导入原理
不管以什么样的方式导入模块,导入模块的时候,系统会自动进入模块,执行这个模块所有的代码
阻止导入
因为导入模块的时候默认会执行模块中所有的代码,就会导致有些完全没有必要在导入的时候执行的代码被执行。
如果希望导入模块的时候某些代码可以不执行,就需要去阻止代码被导入时执行。
阻止的方法:将不需要被执行的代码放到main对应的if条件语句里面。
3.包
### 什么是包
包就是存放_init_.py文件的文件夹
怎么使用包中的内容
"""
1)import 包名 - 直接导入包,导入后可以通过'包.xxx'的方式使用_init_.py中所有的全局变量
2)import 包名.模块名 - 导入指定包中的指定模块,导入后可以通过'包名.模块名.xxx'来使用指定模块中所有的全局变量
改良:
import package1.test2 as test2
3)from 包名 import 模块名1,模块名2,... - 导入指定包中的指定模块,导入后通过'模块名.xxx'使用对应的模块中的内容
4)from 包名 import * - 导入包中_init_.py文件中所有的全局变量
5)from 包名.模块名 import 变量1,变量2... - 导入指定模块中的指定变量
"""
4.常用模块
数学模块
# math - 普通数字对应的数学模块
# cmath - 复数对应的数学模块
# 1.浮点数转整数
# 1)int(浮点数) - 直接保留整数部分
print(int(1.23))
# 2)
print(math.ceil(1.221)) # 向大取整
# 3)
print(math.floor(1.999)) # 向小取整
# 4)round
print(round(1.923))
print(round(1.49))
# 注意:x.5的时候,如果x时奇数就入,偶数就舍
print(round(4.5))
随机模块
import random
# 1.创建随机整数:randint(a,b)
print(random.randint(1, 100))
# 2.创建随机小数:random() - 产生(0,1)的随机小数
print(f'{random.random() * 100:.2f}')
# 产生30-100的随机小数
print(random.random() * 70 + 30)
# 产生25-55的随机小数
print(random.random() * 30 + 25)
# 3.在指定的等差数列中随机获取一个数
print(random.randrange(0, 100, 2))
# 4.洗牌(随机打乱) - shuffle(列表)
nums = [2, 11, 920, 212, 211]
random.shuffle(nums)
print(nums)
print(random.choices(nums, k=2)) # 从指定序列中随机获取多个元素,有放回的抽取
time模块
from time import *
# 1.time()- - 获取当前时间,返回的是时间戳
"""
时间戳 - 通过保存一个时间到1970年1月1日0时0分0秒(格林威治时间)之间的时间差(单位:秒s)来保存一个时间值
使用时间戳保存时间的好处:1.节约内存 2.方便加密
"""
t1 = time()
print(t1)
# 2.
# localtime() - 获取本地当前时间,返回的是结构体时间
# localtime(时间戳) - 将时间戳转换成结构体时间