1.模块

模块是事先写好的文件,用来实现某些特定的功能,当需要使用的时候用import来导入模块

分类:内置模块(python官方自己写的模块)、第三方模块(一些组织等提供的模块可以公开使用和下载)、自定义模块(自己定义的模块)

2.模块的导入:
import:

import time
import osstart = time.perf_counter()
print(os.listdir())
end = time.perf_counter()
print(end - start)

当使用某个模块的函数方法的时候直接用模块.函数方法即可

from…import:即从某个模块导入某个方法,这种方法可以直接使用函数名

from time import perf_counter as counter, sleep#用逗号表示调用多个方法
#若调用time模块的所有方法:
#from time import *
from os import listdir
start = counter()
sleep(1)
print(listdir())
end = counter()
print(end - start)
#使用from就不用用模块.函数的形式了,可以直接使用函数

当模块的函数名字过于复杂,可以用as来为该函数取一个别名来简化操作,之后函数的使用可以直接使用别名


3.导入自定义模块
相当于自己写了一个python文件,然后使用import 来导入该python文件所在的路径,该路径可以是绝对路径也可以是相对路径,如这里使用的是相对路径:


相对路径和绝对路径是针对包而言的,所以导入时能使用包外的文件来导入包内的文件,但是不能直接运行包内的文件,因为不能把包内的文件当做主文件

4.模块内的测试:当我们在某个模块中写了一个函数的时候,想要测试,若直接把模块导入要运行的文件中再进行测试过于麻烦,可以使用这种方式:

def add(x, y):return x+y
def sub(x,y):return x-yif __name__ == '__main__':print(__name__)#当该模块被其它模块导入的时候就不是__main__了,故该方法可做调试用print(add(1,2))

当运行模块的时候,该模块的名字是__main__,所以可以对该模块进行测试。然后当要运行的文件导入该模块的时候,该模块的名字就不是__main__了,运行的文件名是__main__。(相当于c语言中的main函数,即主要运行的函数)

而一般导入一个模块的时候会事先执行该模块的内容,所以导入该模块的时候由于名字不是__main__,就会自动跳过这个if下面要执行的内容。所以使用if __name == 'main’可以对该模块进行测试,而导入该模块的时候又可以跳过这个测试过程。

5.包中的__init__文件:
包:将一些功能类似的模块集中在一起管理
从包中导入某个模块:

from package1 import module1
from package2 import module3print(dir(module1))
print(module1.__name__)
print(module1.__package__)

当开始创建一个包的时候,一般也会创建一个__init__文件,来将一些必要的文件导入,这样管理者不用记住哪个方法在哪个模块下然后再一一导入。

然后主文件直接调用这个包中的一些方法即可使用,调用包的时候先去查找这个包下面是否有__init__文件,如果有就执行,所以init文件也被称为初始化文件。

如package2的__init__文件

from package2.module3 import *
from package2.module4 import *

module3文件:

print("this is module3.py file")__all__ = ["add","subtraction","multiplication","division","test"]
#__all__用来选择可以导入的方法,不在__all__里的方法无法导入def add():print("this is add function")def subtraction():print("this is subtraction function")def multiplication():print("this is subtraction function")def division():print("this is division function")def test():print("this is test function")

module4文件:

class Student(object):def __init__(self,name):self.name = namedef get_student_name(self):print(f"学生姓名是{self.name}")

运行的主文件:

from package2 import add,subtraction,multiplication,division,Student,testadd()
subtraction()
multiplication()
division()
test()student = Student("Andy")
student.get_student_name()

这样管理者就不需要记下add, substraction,test等方法在哪个模块,直接导入方法即可

__init__文件的应用场景:

6.random模块:

import random#随机生成一个0——1之间的浮点数
print(random.random())print(random.randint(1,3))#包含左右值, 随机生成一个start到stop之间的数据#range(1,3)则不包含右值
print(random.randrange(1,3))#与range类似,不包含右值,默认步长为1
print(random.randrange(1,10,2))#从1到10随机生成一个奇数,即每隔2个数来选,步长为2#从字符串,元组,列表中随机选择一个数
string = 'hello world'
tuple_value = (1,2,3,4,5)print(random.choice(tuple_value))list_value = [1,2,3,4,5]print(random.choice(list_value))random.shuffle(list_value)print(list_value)#元组字典为不可变类型,无法使用此方法

输出:

7.time模块

基本概念:


time时间模块

import timetimestampe = time.time()#获取时间戳print(time.gmtime(timestampe))#格林威治时间,为时间元组形式
print(time.localtime(timestampe))#获取当地时间,为时间元组形式
stuct_time = time.localtime(timestampe)#转化为人类能看懂的形式print(time.strftime("%Y-%m-%d", stuct_time))#可自定义格式
print(time.strftime("%Y-%m-%d %H:%M:%S", stuct_time))#进一步输出时间

输出:

time.struct_time(tm_year=2021, tm_mon=2, tm_mday=18, tm_hour=8, tm_min=17, tm_sec=4, tm_wday=3, tm_yday=49, tm_isdst=0)

time.struct_time(tm_year=2021, tm_mon=2, tm_mday=18, tm_hour=16, tm_min=17, tm_sec=4, tm_wday=3, tm_yday=49, tm_isdst=0)


计算程序运行时间:

#计算程序的运行时间
def for_loop():for i in range(10000):#print(i)pass#利用时间戳来计算
start = time.time()
for_loop()
end = time.time()
print(end-start)#time.perf_counter()
start2 = time.perf_counter()
for_loop()
end2 = time.perf_counter()
print(end2-start2)

获取当前日期:

import time
#使用struct_time获取年月日
#获取时间戳
timestamp = time.time()
strct_time = time.localtime(timestamp)
year = strct_time.tm_year
month = strct_time.tm_mon
day = strct_time.tm_mday
print(f'今天是{year}年{month}月{day}日')#使用timeformat获取年月日
date_str = time.strftime('%Y-%m-%d', strct_time)
print(date_str)result = date_str.split('-')
print(result)
print(f'今天是{result[0]}年{result[1]}月{result[2]}日')

倒计时:

import time
for i in range(10, 0, -1):print(i)time.sleep(1)#隔一秒输出一个数

8.json模块

import json#字典转化为json格式dict_value = {}
dict_value['name'] = 'andy'
dict_value['age'] = 18
dict_value['hobby'] = ['basketball','football','baseball']
print(dict_value)
print(type(dict_value))
json_str = json.dumps(dict_value)#以字符串的形式展示
print(json_str)
print(type(json_str))"""
#存储到文件中
file = open("json.txt", "w")
json.dump(dict_value, file)#将Python数据转化为json,并存储在文件中#将json转化为字典
#json格式在python中表现为字符串,创建时需外层使用单引号,里层使用双引号
json_str = '{"name":"andy","age":18}'
result = json.loads(json_str)
print(type(result))
"""
file = open("json.txt","r")
result = json.load(file)#将一个文件中的数据加载为python格式
print(result)

9.第三方模块操作

python11——模块与包相关推荐

  1. python笔记6 模块与包 程序开发规范 包 re sys time os模块

    模块与包 python 模块首引用加载到内存,如果再次引用此模块,直接从内存中读取. python文件分为:执行文件(解释器运行的文件),被引用文件(import) 模块引用一共发生了3件事: 1.他 ...

  2. python之路——模块和包

    一.模块 1.什么是模块? 常见的场景:一个模块就是一个包含了Python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1.使用Python编 ...

  3. Python中的类、模块和包究竟是什么?

    Python培训教程:Python中的类.模块和包究竟是什么?在Python和其他编程语言中,都有类似或相同的概念,如对象.类.模块.包,名称都是一样的,只不过会有细微的一些区别,正是因为有这些存在, ...

  4. python模块和包用法详解(__all__)

    1. 模块         Python 模块(Module),是⼀个 Python ⽂件,以 .py 结尾,包含了 Python 对象定义和Python语句.         模块能定义函数,类和变 ...

  5. python类、模块、包

    通常包总是一个目录,可以使用import导入包,或者from + import来导入包中的部分模块.包目录下为首的一个文件便是 __init__.py.然后是一些模块文件和子目录,假如子目录中也有 _ ...

  6. python入门是哪个包_python入门(十):模块、包

    模块:py文件 包:目录,目录里面包含__init__.py,内容可以是空 里面可以包含多个模块文件,还可以包含子包 1.模块和包,可以很方便的提供给其他程序以复用 1) 利于组织复杂工程 我们写代码 ...

  7. python哪里下载import包-【Python实战】模块和包导入详解(import)

    1.模块(module) 1.1 模块定义 通常模块为一个.py文件,其他可作为module的文件类型还有".pyo".".pyc".".pyd&qu ...

  8. python哪里下载import包-详解python中的模块及包导入

    python中的导入关键字:import 以及from import 1.import import一般用于导入包以及模块. 不过有个小问题: (1)当导入的是模块的时候是可以直接可以使用模块内的函数 ...

  9. python 模块与包

    什么是模块? 模块就是一组功能的集合体,我们的程序可以导入模块来复用模块里的功能.即一个模块就是一个包含了一组功能的python文件,比如spam.py,模块名为spam,可以通过import spa ...

最新文章

  1. 不忘历史才能开辟未来,善于继承才能善于创新
  2. TOJ_1003题解
  3. InstallShield 2012 Spring评估试用(1): 支持Windows 8和Windows Server 2012操作系统
  4. [转载] Python的生成器
  5. vue-resource.js的get和post的正确用法
  6. 蒙特卡洛方法_程序媛转TA之理论篇十三:蒙特卡洛方法
  7. MySQL常用存储引擎
  8. 关于JNI的几个问题
  9. 快速排序多种方法代码Python
  10. Entity Framework 学习总结之三:架构组成介绍
  11. 自动化部署mysql主从复制集群_使用docker部署mysql主从复制集群
  12. [论文笔记]R-NET: MACHINE READING COMPREHENSION WITH SELF-MATCHING NETWORKS
  13. 45.Linux/Unix 系统编程手册(下) -- System V IPC 介绍
  14. 撰写项目的解决方案要点解析
  15. 人体姿态估计之CPN中文文献翻译
  16. mysql数据库字符集实践详解_mysql数据库 详解 之 自学成才1
  17. 极狐Gitlab操作手册
  18. 计算机视觉算法面试准备
  19. MATLAB实现利用三个不共线的点绘制圆(包括圆心和半径的求解)
  20. 计算机与机械专业 有什么大学排名,2017机械排名211大学排名

热门文章

  1. View系列 : View项目:乘风破浪的小船,波浪动画
  2. win10配置深度学习环境(anaconda3+pytorch1.9+python3.7+cuda10.2)
  3. Oracle数据库琐屑运用阅历六则
  4. 基于Matlab的SSB信号调制和解调(内附源码)
  5. 引入tiptap之后直接报错Duplicate use of selection JSON ID cell
  6. 网络生命大百科全书项目
  7. 湖师大2022考研复试准备
  8. 数码相机使用经验技巧
  9. div靠边隐藏_停靠在左边的DIV+CSS隐藏菜单
  10. 将页面元素隐藏的10种方法