智能体测开Day25

📅 2026/7/15 20:03:40
智能体测开Day25
模块包 模块一个py文件 一个模块中可以定义变量,函数类。想要在其他模块中使用该模块中的内容可以使用导入的方式 导入模块后会加载执行模块中所有没有缩进的内容 模块的命名 1数字不能开头 2不能有空格和除了_之外的其他字符 3不能是中文 导入模块1import 模块名称 使用方式模块名.内容 会将模块中的所有内容导入 2部分导入 from 模块名 import 变量,函数 使用方式直接使用 包:含有__init__.py的文件夹 导入方式 import 包名.模块名称 from 包名.模块名 import 变量,函数 __init__.py 是用来初始化包的 1可以为空如果为空可以省略 __init__.py文件 2如果 __init__.py中定义了一些初始化的内容会在导包时先加载该文件内容 库第三方库 库里面是多个包 import demo1 print(demo1.a) demo1.demo() # 类 demo1.Demo1().demo() # 导入包 import project38.Day9.demo2 print(project38.Day9.demo2.b)部分导入from demo1 import a,demo,Demo1 print(a) print(demo()) Demo1().demo() from project38.Day9.demo2 import b print(b)自测 我们需要在导模块之前自己对自己的模块进行测试测试成功后再导包给其他模块使用 自测区分是自己执行还是导入执行自己执行执行测试的内容如果是导入不执行测试内容 判断是导入执行还是自我执行 判断的依据是__name__属性。__name__是python的内部属性 __name__的值有两类都是字符串类型 1__main__的字符串 当自我运行时的值 2当前模块的名称字符串导入运行的值 if __name__ __main__: 自测内容 快捷键main回车 python内置的模块 math csv copy time datetime random 随机数 sys 系统 os 处理文件和文件夹 import math import random print(math.pi) print(math.pow(4,2)) # 平方 print(math.ceil(4.2)) # 向上取整 print(math.floor(4.7))# 向下取整 # 随机数 print(random.randint(1,10)) #1-10之间的随机整数 print(random.random()) #0-1之间的小数 # 0-10之间的小数 print(random.random()*10) a [石头,剪刀,布] print(random.choice(a)) #随机返回一个元素 # 打乱列表的数据 random.shuffle(a) print(a) import sys print(sys.version) # python版本 print(sys.builtin_module_names) # 所有模块的名称 print(sys.path) # 模块的存储地址 os 处理目录和文件 from datetime import datetime, timedelta import os import time # 获取当前文件的路径 print(os.getcwd()) if not os.path.exists(a\\b): # 判断该文件夹是否存在不存在创建 # 创建一个文件夹 os.mkdir(a\\b) # 如果该文件夹的父路径不存在创建失败 # os.makedirs(c\\d)# 如果该文件夹的父路径不存在创建所有路径 # 移除文件夹 # os.removedirs(c\\d) # 判断是否是文件 print(os.path.isfile(a\\b)) print(os.path.isfile(3自测.py)) # 判断是否是文件夹 print(os.path.isdir(a\\b)) print(os.path.isdir(3自测.py)) # 列出所有的子文件和子文件夹 path rE:\pythonWorkspace\PythonProject38 l os.listdir(path) print(l) # 作业使用递归查看一个文件夹中的所有文件包括子文件夹中的文件 time datetime可以管理时间1获取当前时间时间戳 2格式化时间对象 3计算时间 - print(time.time()) #1784103951.830695 # 获取本地时间对象 t time.localtime() print(t) # 格式化时间对象 s time.strftime(%Y年%m-%d %H:%M:%S,t) print(s) # 获取当前时间 print(datetime.now()) # 创建一个时间对象 dt datetime(2000,3,10,10,20,20) print(dt) # 格式化时间 print(dt.strftime(%Y年%m月%d日 %H:%M:%S)) # 往后推1天2小时 print(dt timedelta(days1, hours2)) print(dt - timedelta(days1, hours2))json csv , json 一般用于JavaScript代码 {} json对象 [] 多个数据 字符串 整数 null 小数 布尔值 { name:tom, age:23, height:178.89, sex:null, 爱好:{ 体育:[篮球,足球], 艺术:[琴,棋] }, 是否毕业:false } 字典和json之间进行转换 序列化python的对象--json格式的字符串为了方便存储数据 反序列化json格式的字符串--》python的对象为了方便使用python代码获取数据 import json def xulie(): a { name: tom, age: 23, height: 178.89, sex: None, 爱好: { 体育: [篮球, 足球], 艺术: [琴, 棋] }, 是否毕业: False } # 字典——-》json字符串 s json.dumps(a) print(s) # 存储到文件中a.txt with open(a.txt,w,encodingutf-8) as f: f.write(s) # xulie() # print(chr(ord(\u7231))) def fanxulie(): # 读取文件 with open(a.txt,r,encodingutf-8) as f: c f.read() # json字符串--》字典 a json.loads(c) #从字符串解析 JSON 数据可以使用json.loads()函数 print(a) # 获取字典中的数据 print(a[height]) print(a[爱好][体育][1]) fanxulie()课后作业# 使用递归查看一个文件夹中的所有文件包括子文件夹中的文件 import os path D:\\PycharmProjects\\PythonProject\\project38 l os.listdir(path) print(l) def get_all_files(path): # 遍历当前目录下所有内容 for name in os.listdir(path): #os.path.join()路径拼接,作用自动根据系统拼接路径Windows用\Linux/Mac用/不用手动写斜杠避免转义报错。 # 拼接完整路径 full_path os.path.join(path, name) # 判断是否为文件夹 if os.path.isdir(full_path): # 是文件夹递归调用自身 get_all_files(full_path) else: # 是文件打印完整路径 print(full_path) get_all_files(path)init.py 和init()init.py是一个存放在文件夹里的文件作用是把普通文件夹标记成 Python 包支持外部导入包里的代码导入包时文件内代码会自动运行还能统一对外暴露类和函数。init()是定义在类里面的构造方法属于函数创建类的实例对象时会自动调用用来给对象初始化属性。二者本质完全不同一个是磁盘文件一个是类内部方法。main程序内置变量__name__有两种取值文件直接运行时name__等于字符串__main文件被其他代码导入时__name__等于自身模块名。通过 ifname __main__判断语句可以实现只在直接运行该文件时执行内部代码被导入时不执行常用来存放程序主逻辑、自测代码作为整个脚本的统一运行入口。