python笔记
文章平均质量分 82
深度学习基础技能python知识
优惠券已抵扣
余额抵扣
还需支付
¥19.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
熊猫Devin
懂从看开始,用从写开始,会从教开始!
展开
-
Python学习笔记目录(不定时更新2024-04-12)
基础篇字符串(string)篇(一)字符串(string)篇(二)字符串(string)篇(三)字符串(string)篇(四)字符串(string)篇(五)列表(list)篇(一)列表(list)篇(二)字典(dict)篇(一)字典(dict)篇(二)元组(tuple)篇原创 2024-03-22 20:08:03 · 661 阅读 · 0 评论 -
字符串(string)篇(一)
在第三个例子中,我们限制了搜索范围。在Python中,expandtabs()是字符串(str)对象的一个方法,用于将字符串中的制表符(tab)转换为空格。在Python中,encode()是一个字符串(str)对象的方法,用于将字符串编码为字节串(bytes)。在Python中,capitalize() 是一个字符串(string)方法,用于将字符串的第一个字符转换为大写,而其余字符转换为小写。在Python中,find()是一个字符串(str)对象的方法,用于查找子字符串在字符串中首次出现的位置。原创 2024-03-19 21:38:04 · 1116 阅读 · 0 评论 -
函 数 篇
当我们调用这个函数时,可以传递任意数量的参数,这些参数会被收集到 args 元组中。Python 函数支持多种类型的参数,包括位置参数、关键字参数、默认参数、可变参数和关键字可变参数。在这个例子中,**kwargs 允许函数接受任意数量的关键字参数,并将它们存储在一个名为 kwargs 的字典中。收集额外关键字参数:在函数定义中,**kwargs 用于收集所有未被显式定义的关键字参数,并将它们存储在一个字典中。关键字可变参数允许你传递任意数量的关键字参数给一个函数,这些参数在函数内部被收集到一个字典中。原创 2024-03-25 22:00:24 · 628 阅读 · 0 评论 -
语 句 篇
if 语句用于基于某个条件执行代码。如果条件为真(True),则执行相应的代码块;如果条件为假(False),则跳过该代码块。for 循环用于遍历一个序列(如列表、元组、字符串或字典)或其他可迭代对象,并对每个元素执行相应的代码块。你还可以使用 else 和 elif(else if)来处理更多的条件。for 循环还经常与 range() 函数一起使用,以生成一个数字序列。while 循环会在条件为真时不断执行代码块,直到条件变为假为止。原创 2024-03-25 22:45:55 · 311 阅读 · 0 评论 -
变量赋值篇
在Python中,变量赋值是一个简单的操作,你可以使用等号(=)来将一个值赋给一个变量。在Python中,变量的类型是根据所赋的值自动推断的,并且变量可以随后被重新赋值为不同类型的值。这种特性使得Python成为一种动态类型的语言。在这个例子中,a 被赋值为 1,b 被赋值为 2,c 被赋值为 3。这些操作符允许你以更简洁的方式更新变量的值,而不必每次都写出完整的赋值表达式。原创 2024-03-23 18:22:05 · 759 阅读 · 0 评论 -
lambda表达式
Python中的lambda表达式,也称为匿名函数,是一种简洁的定义简单函数的方式。lambda函数可以接收任意数量的参数,但只能有一个表达式,该表达式的值就是这个函数的返回值。lambda表达式主要用于需要一个函数作为参数的场合,比如排序、过滤等。原创 2024-04-12 22:04:02 · 245 阅读 · 0 评论 -
类对象内置属性
Python 中的类对象具有一些内置属性,这些属性通常用于获取有关类的元信息或控制类的行为原创 2024-04-09 21:42:47 · 346 阅读 · 0 评论 -
__reduce__()函数详解
需要注意的是,如果你的类没有定义__reduce__方法,pickle模块会使用默认的序列化机制,这通常意味着将对象的所有属性和方法都保存下来。__reduce__方法应该返回一个元组,包含两个元素:一个callable(通常是一个函数或类的构造函数),以及一个元组,包含传递给这个callable的参数。在Python中,__reduce__是一个特殊方法,它用于对象的序列化。当你使用pickle模块来序列化一个对象时,pickle模块会调用对象的__reduce__方法,如果该方法存在的话。原创 2024-04-08 20:56:37 · 166 阅读 · 0 评论 -
__sizeof__()函数详解
在这个例子中,sys.getsizeof(obj) 将返回 obj 对象及其所有引用对象(在这个例子中是 x 和 y 变量所引用的整数对象)在内存中占用的总字节大小。返回的大小并不包括 x 和 y 变量所引用的对象(在这个例子中是整数对象 10 和 20)占用的内存。返回的大小通常会比实际使用的内存要少,因为它只计算对象本身的内存占用,而不包括对象所引用的其他对象。这个方法返回的是对象本身占用的内存大小,不包括对象所引用的其他对象占用的内存。返回的是容器对象本身的大小,而不包括容器内元素占用的内存。原创 2024-04-08 20:53:46 · 247 阅读 · 0 评论 -
__getattribute__()函数详解
如果可能的话,使用 @property 装饰器或定义 getter 和 setter 方法通常是更可取的做法,因为它们提供了更明确和可预测的语义。方法,Python 会先调用这个方法,然后再返回属性的值。你可以在这个方法中添加自定义的逻辑,比如检查属性是否存在、对属性进行某种处理,或者在属性不存在时抛出异常等。这个方法允许你自定义属性访问的行为,包括处理属性不存在的情况。方法是在任何属性访问时都会被调用,包括实例属性和类属性。通常,当你访问一个对象的属性时,Python 会直接返回该属性的值。原创 2024-04-08 20:49:45 · 307 阅读 · 0 评论 -
__format__()函数详解
方法,它根据 format_spec 参数的值来决定如何格式化对象。如果 format_spec 是 ‘hex’,则对象被格式化为十六进制字符串;如果是 ‘bin’,则对象被格式化为二进制字符串;方法是一个特殊方法,它允许对象定义自己的格式化行为。这个方法在使用字符串格式化操作符 %、str.format() 方法,或者在格式化字符串字面值(也称为f-strings)中被调用。方法允许你定制对象如何响应不同的格式化请求,这对于创建自定义的数据类型并控制它们在字符串格式化中的行为非常有用。原创 2024-04-08 20:44:10 · 125 阅读 · 0 评论 -
__hash__()函数详解
在这个例子中,我们为Person类实现了__hash__方法,它返回一个基于name和age属性的元组的哈希值。这是因为哈希表要求如果两个对象相等(即__eq__返回True),则它们的哈希值也必须相等(即__hash__返回相同的值)。当你尝试将一个对象用作字典的键或者放入其他需要哈希值的集合类型(如集合set)中时,Python会自动调用该对象的__hash__方法。注意:当你为一个类定义了__hash__方法时,通常也应该定义__eq__方法,以确保满足哈希表的这一要求。原创 2024-04-08 20:38:41 · 77 阅读 · 0 评论 -
__repr__()函数详解
在Python中,__repr__方法是一个特殊方法,用于返回一个对象的“官方”字符串表示。当你尝试使用repr()函数获取一个对象的字符串表示,或者在交互式解释器中直接输入一个对象时,Python会调用__repr__方法。__str__方法返回一个更简洁、易读的字符串,通常用于打印输出,而__repr__方法返回一个更详细、能够重新创建对象的字符串。在这个例子中,__repr__方法返回一个字符串,该字符串是一个有效的Python表达式,可以用来重新创建一个Circle对象。原创 2024-04-08 20:36:32 · 231 阅读 · 0 评论 -
__str__()函数详解
是一个特殊的方法(也称为“魔术方法”或“双下划线方法”),用于定义对象的字符串表示形式。当你尝试使用 print() 函数打印一个对象或者使用 str() 函数将对象转换为字符串时,Python会自动调用该对象的。方法,它返回一个描述该对象状态的字符串。方法是一个很好的做法,因为它可以帮助你更好地理解你的对象,并在调试和日志记录时提供有用的信息。方法应该返回一个字符串,这个字符串描述了对象的状态或者提供了关于对象的有用信息。下面是一个简单的例子,展示如何为一个自定义的类实现。方法,并输出返回的字符串。原创 2024-04-08 20:32:50 · 216 阅读 · 0 评论 -
__ne__()函数详解
操作符来比较两个类的实例时,Python会自动调用这个方法。如果这个方法没有在你的类中定义,那么!当 person1 和 person2 的 name 或 age 属性不同时,person1!方法的结果是一致的。即,如果 a == b 返回 True,那么 a!这是因为有时即使两个对象不相等,你也可能想要提供一些额外的逻辑来判断它们为何不相等。例如,你可能想要提供更详细的错误信息或者执行一些额外的检查。= 操作符提供更具体的逻辑,你可以在。方法来定义等于(==)操作符的行为时,也应该实现。原创 2024-04-07 22:08:17 · 275 阅读 · 1 评论 -
__eq__()函数详解
是一个特殊方法,用于定义类的实例之间的相等性比较。当你使用 == 操作符来比较两个类的实例时,Python 会自动调用这个方法。如果这个方法没有在你的类中定义,那么 == 操作符会比较两个对象的内存地址(即它们是否是同一个对象的引用)。,Python 会抛出一个 TypeError,因为默认的哈希实现期望对象是可哈希的。方法,以便你的类的实例可以用作字典的键或存储在哈希集合中。请注意,在实现相等性比较时,你通常也想要实现。,Python 会自动为你提供一个默认的。要在你的类中定义相等性比较,你可以实现。原创 2024-04-07 22:02:26 · 375 阅读 · 0 评论 -
__delattr__()函数详解
在大多数情况下,你可能不需要重写这个方法,除非你有特殊的需求或你想要在属性被删除时执行一些特殊的逻辑。在Python中,__delattr__是一个特殊方法(也称为魔术方法或双下划线方法),它在尝试删除对象的属性时被调用。需要注意的是,在__delattr__方法内部,你不能直接使用del语句来删除属性,因为这会导致无限递归。__delattr__方法接受一个参数,即要删除的属性的名称(通常是一个字符串)。(name)来调用父类(通常是object)的__delattr__方法,以实际删除该属性。原创 2024-04-07 21:59:05 · 129 阅读 · 0 评论 -
__setattr__()函数详解
默认情况下,当你给一个对象的属性赋值时,Python会简单地将值存储在该对象的属性字典中。是一个特殊方法(也称为魔术方法或双下划线方法),用于在对象中设置属性值。当你尝试给一个对象的属性赋值时,Python会自动调用这个方法。当尝试设置这样的属性时,它会打印一条消息,然后调用父类(通常是 object)的。方法内部,你不能直接给正在设置的属性赋值,因为这会导致无限递归。方法时要特别小心,因为它会影响到你类中所有属性的设置行为。方法来实际设置属性值。方法,你可以自定义属性设置的行为。原创 2024-04-07 21:55:57 · 230 阅读 · 0 评论 -
__new__()函数详解
当我们尝试创建第二个实例时,__new__方法会返回已经存在的实例,而不是创建一个新的实例。在Python中,__new__是一个静态方法,用于创建并返回对象实例。通常,当你创建类的新实例时,Python会自动调用__new__方法来分配内存,并返回新创建的对象实例。注意,__new__方法应该返回一个实例对象,然后这个实例对象会被传递给__init__方法进行初始化。如果你没有在__new__方法中返回实例对象,那么__init__方法将不会被调用,而且你可能会遇到未定义的行为。原创 2024-04-07 21:46:28 · 426 阅读 · 0 评论 -
__init__()函数详解
当我们创建一个新的 Person 实例时,我们提供了这两个参数的值,这些值被用来初始化 person1 对象的 name 和 age 属性。方法接受至少一个参数,即 self,它是对新创建对象的引用。除了 self 之外,你还可以定义其他参数来在创建对象时提供初始值。在这个修改后的例子中,age 参数有一个默认值 0,这意味着如果你在创建对象时没有提供 age 参数,它将自动被设置为 0。是一个特殊的方法,称为类的构造函数或初始化方法。当你创建一个类的新实例时,这个方法通常用于初始化新创建的对象的状态。原创 2024-04-07 21:32:00 · 202 阅读 · 0 评论 -
主函数if __name__ == ‘__main__‘:
在Python中,主函数通常指的是脚本的入口点,也就是当你直接运行一个Python脚本时,会首先执行的函数。在大多数Python脚本中,主函数并不是通过main()这样的函数名来定义的,而是通过检查脚本是作为模块导入还是被直接运行来决定的。如果脚本被导入为模块,则__name__的值将是模块的名字,而if语句块下的代码将不会被执行。’:语句块下的代码不会被执行,除非你在导入的脚本中显式地调用了script.main()。在这个例子中,main()函数定义了当脚本作为主程序运行时应该执行的代码。原创 2024-04-06 20:49:33 · 243 阅读 · 0 评论 -
subprocess模块篇
在这个例子中,我们使用Popen创建了一个子进程,并通过stdout=subprocess.PIPE和stderr=subprocess.PIPE参数捕获了其标准输出和错误输出。subprocess.run()函数会等待子进程完成,并返回一个CompletedProcess实例,你可以通过这个实例的stdout和stderr属性来获取子进程的标准输出和错误输出。要使用subprocess模块调用Python程序,你可以使用subprocess.run()或subprocess.Popen()函数。原创 2024-04-06 20:41:22 · 892 阅读 · 0 评论 -
获取指定路径下,所有指定后缀文件列表
【代码】获取指定路径下,所有指定后缀文件列表。原创 2024-03-19 22:52:33 · 120 阅读 · 0 评论 -
argparse命令行参数解析
其他可选的动作包括 store_const(存储一个常量值)、store_true 或 store_false(分别用于标志参数来存储 True 或 False)、append(将值添加到列表中)、append_const(将常量添加到列表中)等。这个方法非常灵活,允许你定义各种不同类型的参数,包括位置参数、可选参数、标志参数等,并可以为这些参数设置各种属性和行为。使用 argparse 模块,你可以轻松地创建复杂的命令行接口,支持多种参数类型和选项,同时提供清晰的帮助信息和错误处理。原创 2024-03-18 20:54:27 · 941 阅读 · 0 评论 -
Yaml格式解析
YAML(YAML Ain’t Markup Language)是一种常用于配置文件的人类可读的数据序列化标准。它通常用于存储和传输数据,并且由于其简洁性、可读性和易于编写的特性,它经常被用于编写配置文件和API响应。YAML的基本语法大小写敏感:YAML对大小写敏感。数据值前的空格:在键值对中,冒号后面必须有一个空格,表示值的开始。3.块样式:数据可以通过缩进(通常是两个或四个空格)来表示层级关系。同一层级的元素左侧对齐。4.注释:# 用于表示注释,从该字符到行尾的内容都会被解析器忽略。原创 2024-03-16 21:52:03 · 901 阅读 · 0 评论 -
Json格式解析
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于 ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于语言的文本格式来存储和表示数据。JSON易于人阅读和编写,同时也易于机器解析和生成。简单值:这些包括字符串、数字、布尔值(true 或 false)、null、JSON数组(由方括号 [] 包围的值的列表)和JSON对象(由大括号 {} 包围的键值对的列表)。原创 2024-03-16 21:35:50 · 487 阅读 · 0 评论 -
Xml文件解析
xml.etree.ElementTree是内置库,适用于简单的XML解析任务,而lxml则提供了更多的功能和更好的性能,适用于更复杂的XML处理场景。xml.etree.ElementTree是Python的内置库,用于解析XML文档。lxml是一个功能强大的XML和HTML解析库,它提供了比xml.etree.ElementTree更多的功能和更好的性能。在Python中解析XML文件通常使用标准库中的xml.etree.ElementTree模块,或者使用第三方库如lxml。原创 2024-03-16 22:03:07 · 353 阅读 · 0 评论 -
os模块篇(二十二)
在 Windows 系统中,os.altsep 的值为正斜杠(‘/’),这是因为 Windows 系统虽然主要使用反斜杠(‘’)作为路径分隔符,但也支持使用正斜杠(‘/’)作为路径分隔符。例如,在构建目录路径时,可以使用os.sep来连接目录和文件名,以确保路径的正确性。os.defpath是Python os模块中的一个变量,它表示当使用exec函数族(如execv, execve等)执行外部程序时,如果没有明确指定PATH环境变量,那么os.defpath中的值将被用作默认搜索路径来查找可执行文件。原创 2024-04-06 20:00:21 · 565 阅读 · 0 评论 -
os模块篇(二十一)
例如,对于 os.SCHED_FIFO 和 os.SCHED_RR(轮转和先进先出调度策略),os.sched_param 对象中的 sched_priority 字段表示进程的优先级。在这个示例中,我们首先获取了当前进程的ID,然后使用 os.sched_getparam() 函数来获取该进程的调度参数。os.sched_rr_get_interval(pid) 是 Python 的 os 模块中的一个函数,用于获取指定实时轮转(Round Robin, RR)调度策略进程的时间片长度。原创 2024-04-06 19:37:23 · 719 阅读 · 0 评论 -
os模块篇(二十)
os.WCOREDUMP(status)是Python的os模块中的一个宏,用于检查由wait()、waitpid()等函数返回的进程终止状态status,以确定是否产生了core dump。这个函数返回的值是一个整数,表示子进程的退出码。status 是一个整数,可以通过 os.WIFEXITED(status)、os.WIFSIGNALED(status) 和 os.WEXITSTATUS(status) 等宏来检查子进程是正常退出还是由于接收到信号而终止,以及获取子进程的退出码。原创 2024-04-06 18:43:55 · 957 阅读 · 0 评论 -
os模块篇(十九)
这个函数与 os.spawnle() 类似,但 os.spawnlp() 使用环境变量路径来查找要执行的程序,而 os.spawnle() 需要提供程序的完整路径。这个函数结合了 os.spawnv() 和 os.execvpe() 的功能,允许你指定要执行的程序的名称、命令行参数以及一个环境变量列表。它的值与 os.spawnv()、os.spawnle() 和其他 os.spawn*() 函数中的 mode 参数相同,可以是 os.P_WAIT、os.P_NOWAIT 或 os.P_DETACH。原创 2024-04-06 18:06:26 · 755 阅读 · 0 评论 -
os模块篇(十八)
os.posix_spawnp() 是 Python 的另一个用于创建新进程的函数,它与 os.posix_spawn() 类似,但有一个关键的区别:os.posix_spawnp() 会使用 PATH 环境变量来查找要执行的程序。在这个例子中,我们首先使用 os.getpriority() 函数获取当前进程的 nice 值,然后调用 os.nice(5) 来增加 nice 值,最后再次调用 os.getpriority() 来确认 nice 值已经改变。这个函数的主要用途是在父进程中跟踪子进程的状态。原创 2024-04-06 17:14:24 · 556 阅读 · 0 评论 -
os模块篇(十七)
与 os.execle() 类似,os.execlp() 会改变当前进程以执行指定的文件,但 os.execlp() 会自动使用环境变量 PATH 来搜索要执行的程序。需要注意的是,os.execve() 与 os.execl(), os.execle(), os.execlp(), 和 os.execvp() 等函数的主要区别在于它允许你明确指定环境变量,而不是使用当前进程的环境。需要注意的是,os.execl() 和其他类似的 os.exec* 函数在调用时不会创建新的进程,而是替换当前进程的镜像。原创 2024-04-05 22:25:46 · 1003 阅读 · 0 评论 -
os模块篇(十六)
然后,我们使用 os.timespec_get() 获取了当前时间加上 1 秒的时间点,并使用 os.timerfd_settime() 设置了一个定时器,使其在 1 秒后到期。os.timerfd_settime_ns() 是 Python 中用于设置定时器文件描述符(timerfd)的定时参数的另一个函数,它提供了纳秒级别的精度。os.timerfd_gettime_ns() 是 Python 的一个函数,用于获取定时器文件描述符(timerfd)的当前时间和到期间隔,这些值都是以纳秒为单位的。原创 2024-04-05 21:41:57 · 737 阅读 · 0 评论 -
os模块篇(十五)
os.memfd_create() 是 Python 3.8 版本中新增的一个函数,它用于创建一个内存中的文件描述符,而不是在磁盘上创建实际的文件。请注意,事件文件描述符的值是以字节数组的形式读写的,通常是一个 8 字节的数组,以支持 64 位的事件值。在上面的例子中,我们使用了 b’\x01\x00\x00\x00\x00\x00\x00\x00’ 和 b’\x00\x00\x00\x00\x00\x00\x00\x00’ 来表示 1 和 0 的值。最后,我们使用 os.close() 关闭文件描述符。原创 2024-04-05 21:17:26 · 820 阅读 · 0 评论 -
os模块篇(十四)
os.renames(old, new) 是 Python 的 os 模块中的一个函数,用于在单个操作中重命名文件或目录。如果你使用的是更早的 Python 版本,你可能需要使用 os.listdir() 结合 os.path.isdir() 和 os.path.isfile() 来达到类似的效果,但效率可能会较低。需要注意的是,由于 os.replace() 在替换时会先删除目标文件,因此如果源文件和目标文件位于不同的文件系统中,它可能会失败,因为跨文件系统移动文件通常需要特殊的权限。原创 2024-04-04 20:34:39 · 682 阅读 · 0 评论 -
os模块篇(十三)
然而,需要注意的是,从 Python 3.8 开始,os.makedev(), os.major(), 和 os.minor() 函数已经被标记为废弃(deprecated),因为它们与 Python 的其他部分不完全兼容,并可能导致意外的行为。此外,如果源文件和目标文件位于不同的文件系统中,os.rename() 的行为可能因操作系统而异。对于需要处理设备号的现代代码,建议查看 os.stat() 函数的文档,并了解如何使用它来提取设备信息,包括设备号,然后使用适当的位运算来分离主设备号和次设备号。原创 2024-04-04 20:19:33 · 732 阅读 · 0 评论 -
os模块篇(十二)
在Python的os模块中,os.lstat(path, *, dir_fd=None)是一个函数,用于获取指定路径的文件或符号链接本身的状态信息,而不是链接指向的文件的状态信息。此外,os.listdir() 返回的文件和目录名称的顺序通常是按照它们在文件系统中的顺序,但这并不是绝对保证的,因为它取决于底层的文件系统实现。请注意,由于os.lstat()返回的是符号链接本身的状态信息,因此如果路径指向一个符号链接,那么返回的信息将是关于该链接本身的,而不是链接指向的文件的。原创 2024-04-04 08:02:04 · 1062 阅读 · 0 评论 -
os模块篇(十一)
如果程序没有设置工作目录(例如,在脚本开始时或在一个新创建的线程中),os.getcwd() 可能会返回程序启动时的默认工作目录,这通常是脚本所在的目录或系统的某个标准目录(如 /)。最后需要注意的是,虽然 os.getcwdb() 提供了字节串形式的路径,但在 Python 3 中,推荐使用字符串形式的路径,并使用 os.path 模块中的函数来处理路径的转换和组合。这个函数可以直接修改文件系统的权限位。此外,与 os.chmod() 类似,os.lchmod() 需要足够的权限才能更改链接的权限。原创 2024-04-03 22:08:34 · 938 阅读 · 0 评论 -
os模块篇(十)
os.writev(fd, buffers, /) 是 Python 的 os 模块中的一个函数,它提供了一种更高效的写入方式,可以一次性向文件描述符 fd 写入多个数据缓冲区。例如,如果你正在编写一个需要创建子进程的程序,并且你不希望子进程继承某些打开的文件描述符(以避免资源泄露或意外行为),那么你需要使用 os.set_inheritable() 来确保这些文件描述符在子进程中是不可用的。文件描述符的继承是指当父进程创建一个子进程时,父进程中的某些文件描述符(如打开的文件、套接字等)可以被子进程继承。原创 2024-04-03 21:55:38 · 1055 阅读 · 0 评论