Python学习笔记
文章平均质量分 74
Insomnia_X
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Python学习笔记——字符串
不能对等直接赋值Python中字符串并非所见即所得用来转义一些特殊字符(否则它们不能正常放在字符串中),例如换行符,表示一个符号,、、等可在字符串前加,标记原始字符串,则打印时所见即所得切片字符串切片同样遵循,注意不包括常用字符串方法字符串转列表、列表转字符串、所有字母转为大写/小写(注意,这并不改变原str)翻转大小写、判断是否所有字母是大写/小写将所有字母变为小写后,再将第一个字母变为大写如得到将字符串中所有单词的首字母变为大写,其余字母小写若非空字符串中的所有单词,都满足首字原创 2022-07-11 21:21:43 · 347 阅读 · 0 评论 -
Python学习笔记——queue标准库(队列、栈、优先队列)、heapq标准库(堆)
Python自带的queue标准库可以实现队列、栈、优先队列import queueq = queue.Queue()# 队列#也可用q = queue.Queue(maxsize=5)创建有限大小的队列,用q.full()判断队满#队满后再入队貌似会卡死,若需“顶出”另一端元素,可用双端队列stack = queue.LifoQueue()# 栈pq = queue.PriorityQueue()# 优先队列================== RESTART: C:\Users\132原创 2022-01-30 01:35:23 · 5818 阅读 · 0 评论 -
Python学习笔记——collections标准库(双端队列、计数器、默认字典、有序字典)
双端队列import collectionsdq = collections.deque('abcdef')#双端队列,支持用下标访问,如dq[0]='a'deque的用法:入队默认在右端,出队默认在左端deque.append()将一个对象从右端入队deque.extend()直接将可迭代对象中的元素分别入队例如search_queue.extend([‘b’, ‘c’, ‘d’])也可以用+操作符实现等价操作,如search_queue += [‘b’, ‘c’, ‘d’]dequ原创 2022-01-30 01:33:08 · 808 阅读 · 0 评论 -
Python学习笔记——math标准库
math库 方法一览>>> import math>>> dir(math)['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'er原创 2022-01-30 01:31:35 · 297 阅读 · 0 评论 -
Python学习笔记——正则表达式
正则表达式正则表达式在Pyhton中体现为一个Regex对象要创建Regex对象,需要导入re模块,向re.compile()传入一个字符串,从而得到Regex对象>>> import re>>> a=re.compile(r'(\d{3})-(\d{4})')a此时就是一个Regex对象,可以使用Regex对象的各种方法,进行字符串模式匹配注意:Python中的字符串,本身需要用倒斜杠\来转义一些特殊字符(否则它们不能正常放在字符串中),例如'\n'换行原创 2022-01-30 01:26:15 · 296 阅读 · 0 评论 -
Python学习笔记——高级迭代(推导式comprehension、生成器generator)
我们的程序往往会在循环上花大量时间。优化循环有两种方法:①改进循环语法(从而更容易地建立循环)②改进循环的执行(使循环更快地执行)Python实现这两种方法的语言特性是推导式(comprehension)...原创 2021-11-26 18:06:02 · 769 阅读 · 0 评论 -
Python学习笔记——处理等待
不同类型的等待等待“读”例如,用户向Web服务器请求数据,Web服务器需要向其数据库请求数据,此时必须要等待数据库完成工作,Web应用会“阻塞”阻塞代码:一个代码要等待外部系统完成工作,然后才会继续,则程序的执行会阻塞等待“写”例如,对于用户的访问,Web服务器希望记录这个Web请求的详细信息,虽然也是与数据库交互:向数据库写入信息,但是程序员(和用户)并不关心何时写入,而只关心数据确实能写入。这时用户没必要等待响应(重要的是这个代码最终被执行)对于后面一种类型的等待,可以采用多线程原创 2021-11-26 18:05:51 · 706 阅读 · 0 评论 -
Python学习笔记——异常处理(try/except、except...as、处理上下文管理器的__exit__异常、自定义异常)
异常类型Python内置异常解释器采用一个层次结构组织异常所有内置异常(也包括自定义异常)都继承了一个名为Exception的类BaseException +-- SystemExit +-- KeyboardInterrupt +-- GeneratorExit +-- Exception +-- StopIteration +-- StopAsyncIteration +-- ArithmeticError | +-- Floatin原创 2021-10-23 20:29:32 · 2246 阅读 · 0 评论 -
Python学习笔记——上下文管理器与with
with与上下文管理协议尽管大多数主流语言都支持类和对象,但几乎没有语言提供类似 Python的上下文管理协议在处理文本文件(甚至数据库)时,有通用的“建立、处理、清理”模式建立( setup):处理文件时,with语句会打开指定的文件,返回一个表示这个文件流的变量,这里即tasks变量处理(do):就是与with语句关联的代码组,它们是“核心部分”,完成具体的工作清理( teardown):用with打开一个文件时,它承诺当with的代码组结束时会关闭这个文件最简单的例子是处理一个文本原创 2021-10-23 20:29:17 · 431 阅读 · 0 评论 -
Python学习笔记——读写文本文件及其数据(open、close、with)
打开、处理、关闭文件Python提供了内置支持来实现文件的打开(open)、处理( process)和关闭( close)的通用技术打开文件>>> todos=open('todos.txt','a')#在当前工作目录以“追加模式”打开todos.txt如果open调用成功,解释器返回一个对象(称为一个流),这是实际文件的一个别名。这个对象将赋给todos变量,todos变量也称文件句柄,可用它来指示你的文件open的第二个参数是可选的,用于指示这个文件以什么模式打开(详见原创 2021-10-23 20:29:01 · 699 阅读 · 0 评论 -
Python学习笔记——类和对象(如何定义一个类并创建对象、魔法方法、__init__、__repr__)
面向对象的编程语言?Python到底是一种什么类型的编程语言:面向对象、函数式还是过程式语言?Python借用了所有这3种流行方法的编程范式,还鼓励程序员根据需要混合使用。在其他编程语言中(如Java)你写的所有代码都必须放在一个类里,要从这个类实例化对象在Python中,可以用你熟悉的任何一种范式创建代码,可以同样把所有代码放在一个类中,也可以不这么做Python支持面向对象编程(OOP):如封装一个对象、继承和多态Python的类类将行为(本质即函数)和状态(本质即变量)打包在一个对原创 2021-10-23 20:28:52 · 1266 阅读 · 0 评论 -
Python学习笔记——函数修饰符
修饰符和上下文管理器都会用额外的逻辑増强现有的代码,为代码包装额外的功能修饰符主要考虑为现有函数增加额外的功能上下文管理器更关注于确保你的代码在一个特定的上下文环境中执行、安排with语句之前、之后运行的代码。用修饰符也可以做类似的事情,不过如果你试图这么做,大多数 Python程序员都会认为你可能有点疯狂。复制粘贴不是好主意有时需要同时修改多个函数,为他们增加某个功能直接在函数中复制粘贴代码:难以维护解决方法1:把共享的代码放在一个函数中,再调用函数这个策略可以解决维护问题(因为共.原创 2021-10-23 20:28:27 · 559 阅读 · 0 评论 -
Python学习笔记——函数Part2
可以将一个函数作为参数传递到另一个函数。使用函数名(没有小括号)可以得到一个函数对象,可以像处理任何其他变量一样处理这个函数对象。使用一个函数对象作为函数的参数时,可以通过加小括号让接收函数调用传入的函数对象。一个函数可以嵌套在外围函数的代码组中(而且只在这个外围函数作用域中可见)。除了可以接收函数对象为参数,函数还可以返回嵌套函数作为返回值。*args是“展开为项列表”的缩写。**kwargs是“展开为一个键和值字典”的缩写。看到“kw”时,可以把它想成是“关键字”( keywords)*a原创 2021-10-23 20:28:12 · 217 阅读 · 0 评论 -
Python学习笔记——更多语法(双下划线“dunder”、__name__、函数修饰符@、括号前的逗号)
dunders__与wonder_在Python中,一个名字的前缀和后缀为双下划线,称为“ dunder name"由于 Python中大量使用了双下划线,它们统称为“ dunders”例如,__name__值由 Python解释器维护,在程序代码中的任何地方使用这个值时,它会设置为当前活动模块的名字。还有一个约定是使用单个下划线字符作为某些变量名的前缀。一些 Python程序员把有单下划线前缀的名字称为“ wonder”(“ one underscore”的简写)。函数修饰符@引入一个新的原创 2021-10-21 20:05:26 · 669 阅读 · 0 评论 -
Python学习笔记——关于编程代码风格(命名规范、PEP 8、检查代码是否符合PEP 8、pycodestyle工具)
关于编程风格:遵循PEP的最佳实践关于代码编程风格, Python编程社区已经花了很长时间来建立最佳实践,并提供了相应的文档说明。这个最佳实践名为PEP 8PEP是“ Python增强协议”( Python Enhancement Protocol)网址:https://www.python.org/dev/peps/PEP 8是 Python代码的风格指南。建议所有 Python程序员都要阅读(例如对字符串统一使用'包围)另外一个文档PEP 257描述了格式化 docstring的有关约定原创 2021-10-21 20:05:18 · 732 阅读 · 0 评论 -
Python学习笔记——模块(生成模块、安装第三方模块、setuptools、pip、PyPI)
为代码组命名,就得到函数将多个函数放在一个文件中,就得到模块如何创建模块创建模块很简单:将包含许多函数的代码保存为.py文件,就得到一个模块def search4vowels(word:str='Hello') -> set: """Return any vowels found in a word""" vowels = set('aeiou') return vowels.intersection(set(word))def search4letters(w.原创 2021-10-21 20:04:35 · 503 阅读 · 0 评论 -
Python学习笔记——函数参数,按值传递还是按引用传递?(变量是对象引用、变量只存储值的内存地址)
函数参数,按值传递 还是 按引用传递?单纯从行为上看,Python的函数参数语义“既支持按值调用也支持按引用调用”,不同情况下,其表现不同更准确的说,Python函数的调用语义是:按对象引用调用语义Python中的变量并不是与其他编程语言中的变量不同,这些变量是对象引用可以把变量中存储的值认为是值的内存地址,而不是它真正的值传递参数时,会把这个内存地址传入函数(而非传入实际的值)传递参数时,发生了什么实际上,解释器会查看对象引用(内存地址)指示的那个值的类型:如果其为可变的,就会应用按原创 2021-10-20 20:48:35 · 573 阅读 · 0 评论 -
Python学习笔记——函数(函数注解和docstring、为参数设置默认值)
重用代码是构建一个可维护的系统的关键要在 Python中重用代码,以函数为始,也以函数为终。为取几行代码指定一个名字,你就得到了一个(可以重用的)函数;取一组函数,把它们打包成一个文件,你就得到了一个(可以重用的)模块Python函数的参数/返回值无需指定类型Python解释器不要求指定函数的参数/返回值的类型。Python允许将任何对象作为参数/返回值。解释器不关心也不检查这些对象的类型是什么(它只检查是否提供了参数和返回值)在 Python3中,可以指示期望的参数/返回值的类型。不过原创 2021-10-20 20:03:01 · 692 阅读 · 0 评论 -
Python学习笔记——元组
元组的优点元组不可变,相当于不可变的列表,可以维持常量列表且保证没有副作用节省开销,元组的代码开销小于(可变的)列表创建元组使用字面量创建>>> vowels=('a','e','i','o','u')>>> type(vowels)<class 'tuple'>元组一旦创建和填充后,就不能改变>>> vowels[2]='E'Traceback (most recent call last): File "&原创 2021-10-20 20:02:26 · 218 阅读 · 0 评论 -
Python学习笔记——集合
Python学习笔记——集合原创 2021-10-20 20:02:18 · 377 阅读 · 0 评论 -
Python学习笔记——字典
创建字典使用字面量法创建:>>> person={'Name':'Niko', 'Gender':'Male', 'Age':20}字典是无序的Python的字典是无序的,与列表不同, 字典不会维持对象插入时的顺序因此,你不能假设字典中的数据行有某种特定的顺序>>> person{'Name': 'Niko', 'Age': 20, 'Gender': 'Male'}#顺序与插入时不同字典以什么顺序存储并不重要。重要的是解释器能够快速地访问与一个原创 2021-10-20 20:01:52 · 421 阅读 · 0 评论 -
Python学习笔记——列表
创建和填充列表字面量法Python程序员将它称为一个字面列表,因为这个列表会一次性完成创建和填充(将列表中的对象赋给列表)>>> odds=[1,3,5,7,9]在代码中“扩展”列表创建和填充列表的另一种方法是在代码中“扩展”列表:随着代码的执行,为列表追加对象>>> nums=[]#创建空列表>>> nums.extend([2,3,4])>>> nums[2, 3, 4]使用list()函数lis原创 2021-10-20 20:01:42 · 308 阅读 · 0 评论 -
Python学习笔记——变量与内置数据结构(一切皆对象、in操作符、列表、字典、元组、集合)
一切皆对象Python中,一切都是对象;而所有对象都可以赋给变量(变量动态赋值:声明时无需指定类型)对 Python程序员来说,“Don’ t panIc!”是一个字符串对象,42则是一个数字对象与其他编程语言中一样,对象可以有状态(属性或值)和行为(方法)与对象有关的函数和操作符检查一个对象是否在另一个对象中,使用in操作符(或用not in)>>> if 1 in [0,1,2]: print("true") truelen内置函数返回对象的大小>原创 2021-10-20 20:01:31 · 310 阅读 · 0 评论 -
Python学习笔记——迭代(for、range)
选代处理一个对象序列for 循环迭代变量 in 序列:for循环将序列中各个数据依次赋给一个循环选代变量,并执行相应操作。for循环无需指定循环次数,它能自动迭代序列中的所有对象,且保证无遗漏注意,Python中不仅可以迭代列表,还可以迭代各种序列(序列是一个有序的对象集合)Python解释器可以迭代处理Python中的所有序列:列表、range()函数、字符串等例1 对简单列表的迭代>>> for i in [1,2,3]: print(i) 123例2 指原创 2021-10-20 19:56:40 · 1100 阅读 · 0 评论 -
Python学习笔记——概述:Python与其他编程语言的不同之处(声明变量、用缩进区分代码组)
Python与其他编程语言的不同之处声明变量时,无需(对标识符)指定类型;(它会自动取相应数据的类型)检查标识符的数据类型:如if isinstance(变量名,数据类型): ...声明函数时,使用defpython中一行结束,一般就代表一条语句结束(无需用;表示)当然,也有一些特例:如创建列表时,可以使用多行python提供帮助高效快速完成工作的功能,包括内置函数BIF(Built-in Functions)键入dir(__builtins__)可查看内置方法列表,键入help(len)可原创 2021-10-20 19:55:08 · 838 阅读 · 0 评论 -
Python学习笔记——入门(IDLE的使用、标准库和模块、测试和调试、虚拟编程环境)
初识Pythonpython与其他编程语言的不同之处声明变量时,无需(对标识符)指定类型;声明函数时,使用def检查标识符的数据类型:如if isinstance(变量名,list): ...代码块不用{...}来界定,而是直接用缩进来指示代码块python提供帮助高效快速完成工作的功能,包括内置函数BIF(Built-in Functions)遍历使用for 目标标识符 in 列表:,且这样迭代处理时能保证无遗漏条件判断用if 条件: ... else: ...或等价于while 条件:原创 2021-10-20 19:54:49 · 5570 阅读 · 1 评论
分享