【学习笔记】Python 语法
-
python 中的 tuple 并不支持单个赋值。
-
判断一个元素是不是在 set 里面可以使用
in
实现:>>>A=set(['a','b','c','d']) >>>'a' in A False
-
python 中的 set 可以直接通过 & 实现求交,| 实现求并,- 求对称差(或者说从一个集合中移除另一个集合的元素)
try-except
try:
# 执行一段可能存在错误的代码
num=10/0
except ZeroDivisionError/ValueError: # 可能的错误类型
print("除数不能为零")
else:
# 如果没有错误会执行这部分
print(f"{num}")
finally:
# 无论是否报错,这部分代码都会执行
请注意,try-except语句只应用于你预期可能会出现异常的代码块,而不应滥用它。处理异常应该是程序设计的一部分,而不是隐藏错误的手段。--- ChatGPT
with
with 上下文管理器表达式 as 变量:
# 在此缩进块中使用资源,代码块执行完成后资源会自动释放
# ...
上下文管理器表达式 是一个实现了上下文管理协议的对象。这可以是一个内置对象(如文件对象)或自定义对象,只要它定义了 __enter__()
和 __exit__()
方法即可。
变量 是一个用于在 with
代码块中引用资源的变量。
当进入 with
代码块时,会调用上下文管理器对象的 __enter__()
方法,该方法负责资源的分配和初始化。然后,当离开 with
代码块时,会调用上下文管理器对象的 __exit__()
方法,该方法负责资源的释放。
比如 with open('address','r') as file
在走出 with
语句的时候会自动将 address 目录下的文件执行 file.close()
import os
os 是 operating system 的缩写。它可以支持如下操作:
-
文件和目录操作:
创建目录:os.mkdir(path)
创建多级目录:os.makedirs(path)
删除目录:os.rmdir(path)
递归删除目录及其内容:os.removedirs(path)
删除文件:os.remove(path)
重命名文件或目录:os.rename(src, dst)
获取文件属性:os.stat(path)
检查路径是否为目录:os.path.isdir(path)
检查路径是否为文件:os.path.isfile(path) -
路径操作:
合并路径:os.path.join(path1, path2, ...)
拆分路径:os.path.split(path)
获取文件名:os.path.basename(path)
获取目录名:os.path.dirname(path)
获取当前工作目录:os.getcwd() -
环境变量:
获取系统环境变量:os.environ
获取特定环境变量:os.environ.get('VAR_NAME')
设置环境变量:os.environ['VAR_NAME'] = 'VALUE' -
系统命令执行:
在 Python 脚本中执行系统命令:os.system(command)
广播
Python中的广播(broadcasting)是一种用于在不同形状的数组之间执行二进制操作的机制,使得它们的形状可以兼容,并且能够按照一定的规则进行元素级操作。这个机制允许你在不显式复制数据的情况下,对形状不同的数组进行操作,这可以节省内存和提高代码的效率。
广播的原理基于以下规则:
-
如果两个数组的维度不同,将维度较小的数组进行扩展,使得它的维度与较大的数组相匹配。扩展时会在维度较小的数组的前面(左侧)添加新的维度,这些维度的大小为1。
-
如果两个数组的维度相同,但某些维度的大小不同,将大小为1的维度扩展为匹配较大数组的大小。
-
如果在某个维度上两个数组的大小都不相等且不为1,那么广播将无法执行,会引发错误。
广播的目的是使得两个数组在进行元素级操作时具有兼容的形状,这样可以将相应的元素一一对应起来进行操作,而不需要显式复制数据。
np.newaxis
可以帮助你在特定位置添加大小为 的维度。
如果要给一个训练集一个测试集求 距离,不允许使用任何 for loop。它的写法是 dists=np.sqrt(np.sum((X[:,np.newaxis]-X_train)**2,axis=2))
原理就是先把原来大小为 的图片添加维度变成 。这下子来发广播,广播的时候大小为 的 X_train 首先在左边添加一维,大小变成
接下来根据广播的原理 统一变成 ,然后就可以对位操作了。完全无法深入理解如何广播,都说广播比 for loop 快,我不会广播只能写出来不能利用并行计算的废物代码了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律