python
文章平均质量分 75
魔王不会哭
学习是需要长期坚持的,一步一个脚印地走向美好未来!
展开
-
python中那些双下划线开头得函数和变量
以单下划线开头_foo的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用from xxx import *而导入;要重建序列化对象,Python 需要创建一个和被序列化的对象看起来一样的新对象,然后设置新对象的所有属性。方法允许将 color 列为可用属性,对于想使用你的类但却不想深入其内部的人来说,该方法非常有益。“双下划线” 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。如果要创建自己的类,且对象之间的比较有意义,可以使用下面的特殊方法来实现比较。原创 2024-02-22 16:31:21 · 1300 阅读 · 0 评论 -
Python基础教程:解构
3、4、5 和 6 被统一 打包 给了 c,打包 后的数据以 列表 的形式储存。躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。这种将等号右面的数据分别赋值给等号前面的变量的方法,就是解构。需要注意的是,字典在进行迭代操作时,只会返回键,而不会返回值。结构时,等式左边的变量数要和右边的元素数目相等,否则就会报错。我们得到的是一个键值对列表,每个键值对以元组的形式存在。可以看出,10 和 20 的值分别被赋给了 a 和 b。虽然能够实现,但是十分繁琐,这就需要用到结构的方法。原创 2024-02-18 13:54:26 · 558 阅读 · 0 评论 -
range函数用法完全解读
可以获得迭代器的内置方法很多,例如 zip() 、enumerate()、map()、filter() 和 reversed() 等等,但是像 range() 这样仅仅得到的是可迭代对象的方法就绝无仅有了(若有反例,欢迎告知)。问题的关键就在于 range 序列的 pattern,仔细想想,其实它表示的就是一个等差数列啊,拼接两个等差数列,或者重复拼接一个等差数列,想想确实不妥,这就是为啥 range 类型不支持这两个操作的原因了。原创 2024-01-30 16:48:42 · 1603 阅读 · 0 评论 -
python读取文件指定行的三种方法
本文通过4个测试案例分析了在python中读取文件指定行内容的方案,并得到了一些运行耗时的数据。从需求上来说,如果是对于小规模的数据,比如几百行规模的数据,建议使用readline循环遍历来操作,速度也相当不错,或者是linecache中的函数实现也是可以的,甚至可以直接用readlines将整个文本内容加载到内存中。但是对于数据规模比较大的场景,比如超过了千万行的级别,那么使用sed指令的方式对指定行内容进行读取的方式,应该是所有方式中最快速的。原创 2024-01-28 14:15:00 · 3025 阅读 · 0 评论 -
Python中通过字符串访问与修改局部变量
Python本身是一门比较灵活便捷的编程语言,但是便捷往往有可能伴随着一些风险,比如exec和eval等内置函数的实现,有可能导致sandbox escaping的问题。而有时候我们又需要一些批量化的操作,比如批量化的创建或者修改局部、全局或者是成员变量,这样就需要我们首先要把所有的变量名存成字符串,在需要的时候再作为变量名去调用。在这篇文章中,我们介绍了一系列非exec和eval的操作(并不是说没有风险,也引用了ctype和sys定义的数据帧),来查看和定义、修改所需的各种变量。原创 2024-01-27 15:23:47 · 1030 阅读 · 0 评论 -
python基础小知识:引用和赋值的区别
通过引用,就可以在程序范围内任何地方传递大型对象而不必在途中进行开销巨大的赋值操作。不过需要注意的是,这种赋值仅能做到顶层赋值,如果出现嵌套的情况下仍不能进行深层赋值。赋值与引用不同,复制后会产生一个新的对象,原对象修改后不会影响到新的对象。如果在原位置修改这个可变对象时,可能会影响程序其他位置对这个对象的引用原创 2024-01-22 15:06:17 · 511 阅读 · 0 评论 -
python爬虫知识点:5种线程锁
递归锁是同步锁的一个升级版本,在同步锁的基础上可以做到连续重复使用多次acquire()后再重复使用多次release()的操作,但是一定要注意加锁次数和解锁次数必须一致,否则也将引发死锁现象。条件锁是在递归锁的基础上增加了能够暂停线程运行的功能。并且我们可以使用wait()与notify()来控制线程执行的个数。注意:条件锁可以自由设定一次放行几个线程。事件锁是基于条件锁来做的,它与条件锁的区别在于一次只能放行全部,不能放行任意个数量的子线程继续运行。原创 2024-01-20 15:27:23 · 1351 阅读 · 0 评论 -
Python基础学习:同步异步阻塞与非阻塞
在了解其他概念之前,我们首先要了解进程的几个状态。就绪,运行和阻塞。就绪(Ready)状态:当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。执行/运行(Running)状态当进程已获得处理机,其程序正在处理机上执行,此时的进程状态称为执行状态。阻塞(Blocked)状态正在执行的进程,由于等待某个事件发生而无法执行时,便放弃处理机而处于阻塞状态。引起进程阻塞的事件可有多种,例如,等待I/O完成、申请缓冲区不能满足、等待信件(信号)等。原创 2024-01-18 14:41:30 · 1039 阅读 · 0 评论 -
Python中重要的条件语句教程
1、 if语句语法if 条件 : 条件成立执行的代码if 条件 : 条件成立执行的代码 else : 条件不成立执行的代码3、 多重判断if 条件1:条件1成立执行的代码elif 条件2:条件2成立执行的代码else:以上条件都不成立执行的代码4、 if嵌套if 条件1:条件1成立执行的代码if 条件2:条件2成立执行的代码....原创 2024-01-17 13:47:39 · 998 阅读 · 0 评论 -
写代码时遇到反爬了要怎么做?注意以下几点!【python】
有些网站为了防止爬虫程序的访问,会封禁爬虫程序所在的 IP 地址,我们可以通过使用代理 IP 来实现每次访问使用不同的 IP 地址,从而避免被封 IP。需要注意的是,尽管以上方法可以提高爬虫程序的稳定性和可用性,但任何爬虫行为也都具有一定的风险,因此在进行爬虫爬取时,请务必遵守相关的法律法规,不要进行未经授权的爬虫行为,以免带来不必要的法律风险。有些网站会检测爬虫程序的访问行为,例如请求频率、referer 等,我们可以使用模拟用户的访问行为,例如增加访问间隔、设置 referer 等,来避免被检测。原创 2024-01-12 15:06:37 · 1342 阅读 · 0 评论 -
python 和shell 变量互相传递
主要介绍python和shell变量互相传递方法,使用了环境变量、管道等方法。在hello.py中通过返回值 让shell脚本通过参数来判断,shell脚本中执行python脚本并接收其返回值的例子。原创 2024-01-10 15:08:53 · 598 阅读 · 0 评论 -
Python采集微博评论做词云图
1. 发送请求 -> 模拟浏览器对于url地址发送请求 2. 获取数据 -> 获取服务器返回响应数据 3. 解析数据 -> 提取评论内容 4. 保存数据 -> 保存本地文件 (文本 csv Excel 数据库)原创 2024-01-08 18:36:52 · 667 阅读 · 0 评论 -
Python中列表和字符串的反转
以上就是关于Python中列表和字符串的反转操作(这才是冰山一角,还有更多的实现方式),实际应用中还是使用列表自带的函数和切片操作进行反转即可,手写的仅供参考使用,写代码嘛,怎么简单易懂怎么来。把返回的元组放到一个新的列表中,通过sorted() 进行列表排序(根据列表中元组元素的第一个元素进行排序,使用降序)关于字符串的反转,并没有确切的函数对字符串进行反转,但是字符串也可以使用切片进行反转。遍历排序后的新列表,取每个元组元素的第二个元素,组成新列表。通过字符串拼接,把切片得到的元素拼接到新的字符串中。原创 2024-01-06 15:18:40 · 850 阅读 · 0 评论 -
python多线程中:如何关闭线程?
当主线程调用event对象的 set() 方法后,在子线程循环体内,调用event对象is_set()方法,发现event 对象为True后, 立即退出任务循环,结束运行。子线程执行其任务循环,它每次循环都会检查event对象,该对象保持 false,就不会触发线程停止。子线程,可使用 event.wait() 将阻塞当前子进程,直至event 对象被置为true.is_set() 查询 event 对象,如被设置为真,则返回True, 否则返回False.原创 2023-12-20 15:37:46 · 687 阅读 · 0 评论 -
Python中format函数用法
format是python2.6新增的一个格式化字符串的方法,相对于老版的%格式方法,它有很多优点。foramt会把参数按位置顺序来填充到字符串中,第一个参数是0,然后1 ……躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)1.不需要理会数据类型的问题,在%方法中%s只能替代字符串类型。同一个参数可以填充多次,这个是format比%先进的地方。4.官方推荐用的方式,%方式将会在后面的版本被淘汰。也可以不输入数字,这样也会按顺序来填充。(1)通过位置来填充字符串。原创 2023-12-04 15:27:03 · 463 阅读 · 0 评论 -
理解 Python 的 for 循环
然而要注意一点,在像 list 这样的容器对象上调用 iter() 每次都会返回不同的迭代器,而在迭代器上调用 iter() 仅仅返回同一个迭代器。最后,我们将反编译一个简单的 for 循环,并逐步介绍 Python 解释器在执行 for 循环时执行的指令,以满足大家的好奇心。else 子句中的代码块是在 for 循环完成后才开始执行的,即在迭代对象中的所有元素都遍历完毕之后。基本上,如果我们将对象传递给内置的next() 方法,它应该从与之关联的流式数据中返回下一个值。原创 2023-12-01 14:53:25 · 1569 阅读 · 0 评论 -
Python Flask Web 框架入门
这份文档中的代码使用 Python 3 运行。是的,所以读者需要自己在电脑上安装Python 3 和 pip3。建议安装最新版本,我使用的是Python 3.6.4。安装方法,可以自行谷歌或者百度。建议在 linux 下实践本教程中命令行操作、执行代码。要处理HTTP错误,可以使用flask.abort函数。代码page_unauthorized函数返回的是一个元组,401 代表HTTP 响应状态码。如果省略401,则响应状态码会变成默认的 200。转载 2023-11-29 15:46:02 · 256 阅读 · 0 评论 -
一篇文章让你入门python集合和字典
'''print("集合的定义:")a=set()print(a,"空集合")b={1,2,4}print(b)'''''print("定义字典:")a={}原创 2023-11-25 15:02:44 · 548 阅读 · 0 评论 -
一些在使用Python中常用网页字符串处理方法
这些属于beautifulsoup的内容了原创 2023-11-24 15:50:50 · 473 阅读 · 0 评论 -
python中的exec()、eval()以及complie()
如果source是由一个代码语句序列组成,则指定mode=‘exec’,如果source由单个表达式组成,则指定mode=‘eval’;source:必选参数,可以是字符串,也可以是一个任意的code(代码)对象实例(可以通过complie函数创建)。如果source是一个code对象,且创建该code对象时,complie函数的mode参数是‘exec’,那么eval()函数的返回值是None;否则,如果source是一个输出语句,如print(),则eval()返回结果为None;原创 2023-11-22 16:06:28 · 176 阅读 · 0 评论 -
Python在函数中使用列表作为默认参数
可以看到,list1, list2, list4调用时默认参数的id并没有发生改变,而list3的id发生了改变。我们知道,在Python中,列表(list)是可变对象,所以列表的内容可能会在函数内改变。当参数的lst为[11,12,13,14]时,lst就是[11,12,13,14]。list4调用函数时,使用默认参数,因此,现在默认参数lst为[1,2]。另一个需要注意的是,使用列表作为函数的默认参数时,列表的内容变化情况。当函数再次被调用时,lst是[1]而不是[],因为lst只被创建一次。原创 2023-11-17 14:43:29 · 442 阅读 · 0 评论 -
一个非常基础的python函数语法:lambda表达式
本文主要展示了一些lambda表达式的使用示例,通过这些示例,我们可以了解到lambda表达式的常用语法以及使用的场景。在一般情况下,其最大的意义还是简化了python中函数的定义方式,在可读性上远不如def所定义的函数。原创 2023-11-14 14:54:12 · 83 阅读 · 0 评论 -
python入门:分支结构
绘制要求:不能出现程序语言的语法。原创 2023-11-13 15:57:40 · 103 阅读 · 0 评论 -
Python字符串字母大小写变换
字符串就是一系列字符,在Python中用引号括起来的都是字符串,这几个方法都是生成新的字符串,不对原字符串内容进行修改。原创 2023-11-12 12:45:00 · 163 阅读 · 0 评论 -
python OrderedDict类(有序字典)
popitem(按照后进先出原则,删除最后加入的元素,返回key-value)fromkeys(指定一个列表,把列表中的值作为字典的key,生成一个字典)move_to_end(指定一个key,把对应的key-value移到最后)setdefault(获取指定key的value,如果key不存在,则创建)values(获取字典所有的value,返回一个列表)pop(获取指定key的value,并在字典中删除)items(返回由“键值对组成元素“的列表)keys(获取字典所有的key)原创 2023-11-11 14:25:12 · 164 阅读 · 0 评论 -
python 把函数的值赋给变量
一个是模块的调用和一个自定义函数返回值赋值给变量。原创 2023-11-10 15:07:46 · 269 阅读 · 0 评论 -
Python教程:zipfile模块压缩文件
如果向 ZipFile 对象的 write()方法传入一个路径,Python 就会压缩该路径所指的文件,将它加到 ZIP 文件中。要创建你自己的压缩 ZIP 文件,必须以“写模式”打开 ZipFile 对象,即传入’w’作为第二个参数(这类似于向 open()函数传入’w’,以写模式打开一个文本文件)。要创建一个 ZipFile对象,就调用 zipfile.ZipFile()函数,向它传入一个字符串,表示.zip文件的文件名。对在d盘中创建一个new.zip文件,其中包括spam.txt文件。原创 2023-11-09 15:18:54 · 187 阅读 · 0 评论 -
Python小技巧:bytes与str的区别
这样做,会让系统在bytes实例上面调用__repr__方法,然后用这次调用所得到的结果替换格式字符串里的%s,因此程序会直接输出b’blue’,而不是像你想的那样,输出blue本身。若无法肯定,可通过encoding参数明确指定。调用这些方法的时候,可以明确指出自己要使用的编码方案,也可以采用系统默认的方案,通常是指UTF-8(但有时也不一定,下面就会讲到这个问题)。但反过来却可以,也就是说如果格式字符串是str类型,则可以用bytes实例来替换其中的%s,问题是,这可能跟你想要的结果不一样。原创 2023-11-07 15:53:18 · 92 阅读 · 0 评论 -
python推导式特殊用法
在列表生成式结束后,因为range(10)的关系i的当前值为9,也就是说生成的列表中每个lambda函数都是lambda x: x + 9,而不是一般所想象的lambda x: x+0, lambda x: x+1, …因此,在lambda函数内的i并不会被立即求值,而是会被保留为引用,直到调用这个lambda函数时,才去获取i的值。这里的result[0]被调用的时候,变量i已经循环完毕,变成9了,而不是想象中的动态0-9值。只有等到你调用它的时候,它才逐一去找这些变量的具体值。原创 2023-11-04 15:48:47 · 144 阅读 · 0 评论 -
Python元编程详细教程
Python元编程有两种方法:一是采用类似“装饰器”的工具对基本元素(例如函数、类、类型)内审和对其进行实时创建和修改,二是运用类型"元类"的方式对类实例的创建过程进行修改,甚至于允许重新设计Python面对对象编程范式的实现。原创 2023-11-02 14:09:30 · 148 阅读 · 0 评论 -
一个非常实用的Python模块-struct模块
这里有个格式符(Format specifiers)的概念,是指从字符串格式转换为已编译的表示形式,类似于正则表达式的处理方式。本地大小(Size)和对齐(Alignment)是由c编译器的sizeof表达式确定的。Struct支持将数据packing(打包)成字符串,并能从字符串中逆向unpacking(解压)出数据。在本例中,格式指定器(specifier)需要一个整型或长整型,一个两个字节的string,和一个浮点数。将打包的值传给unpack(),基本上返回相同的值(浮点数会有差异)。原创 2023-10-31 15:38:06 · 130 阅读 · 0 评论 -
Python基础教程:关于序列操作的方式方法
k表示取元素时的步进间隔,默认为1,表示每个元素都取,如果为2,则表示取一个跳过一个分片的区间是左闭右开的,所以不会包括j的索引位。表示从序列中搜索元素x并返回第一次出现的x的位置,如果给定了i,则表示从索引位i开始搜索,给定了j则表示最多搜索到索引位为j的位置。s.extend(t)或s += t表示将t扩展到序列s的尾部,等价于s[len(s):len(s)] = t。del s[i]、del s[i:j]删除序列中的元素,等价于s[i] = []、s[i:j] = []原创 2023-10-26 13:15:00 · 168 阅读 · 0 评论 -
Python基础教程:列表推导式详解
一个列表1,里面都是数字,我们需要生成一个新的列表B,依次存放列表A中每个元素的平方。其中 for 前面的部分,就是要对取出的元素进行的处理操作, 上面的例子是计算平方。就是把一个列表里面的每个元素经过简单的处理生成另一个列表的操作。躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。把一个列表里面的每个元素, 经过相同的处理 ,生成另一个列表。原创 2023-10-25 12:30:00 · 148 阅读 · 0 评论 -
python基础教程:异常处理
其中except部分是对错误信息进行处理,finally是不管之前有没有异常,都会执行此步骤。上面提示被除数不能为0,从而导致程序运行中断,为了能够让程序正常执行原创 2023-10-24 14:25:48 · 110 阅读 · 0 评论 -
Python基础教程:列表(List)的常用操作
6、list.pop(obj=list[-1]):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。列表是Python中最基本的数据结构,列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型。3、list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。4、list.index(obj):从列表中找出某个值第一个匹配项的索引位置。原创 2023-10-23 14:28:49 · 213 阅读 · 0 评论 -
Python基础教程:内置函数之字典函数的使用方法
删除字典中 key 的值,返回被删除的值。创建一个新字典,seq作为键,value为字典所有键的初始值(默认为None)返回键值对的可迭代对象,使用 list 可转换为 [(键,值)] 形式。返回指定的键的值,如果键不存在,则返会 default 的值。返回一个可迭代对象,使用 list 转换为字典中 值 的列表。随机返回一个键值对(通常为最后一个),并删除最后一个键值对。如果键不存在于字典中,则设置为 default 值。如果键存在于字典中,则不修改键的值。返回键的个数,即字典的长度。原创 2023-10-22 11:00:00 · 719 阅读 · 0 评论 -
Python常用函数中NumPy的使用教程
VWAP(Volume-Weighted Average Price,成交量加权平均价格)是一个非常重要的经济学量,它代表着金融资产的“平均”价格。某个价格的成交量越高,该价格所占的权重就越大。VWAP就是以成交量为权重计算出来的加权平均值,常用于算法交易。原创 2023-10-21 14:23:18 · 160 阅读 · 0 评论 -
学习爬虫,这个是你必须要知道的,get和post请求的区别
get和post是http请求的两种基本方法,最直观的区别就是get把参数包含在url中,post是通过request body传递参数。4、get比post更不安全,因为参数直接暴露在url上,所以不能用来传递敏感信息(其实如果知道抓包的话,两种方式都不安全)3、get请求在url中传送的参数是有长度限制的,而post没有。躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。1、get在浏览器回退时候是无害的,而post会再次提交请求。原创 2023-10-17 14:48:54 · 143 阅读 · 0 评论 -
Python实现简易过滤删除数字的方法
strip([char]) 中的 char 给定时,则截取两端的字符直到满足不在set(char) 中,不需要有序,切记!如果只是去除两端可能含有数字的字符串里的数字,则可以使用内置的strip。原创 2023-10-16 15:31:55 · 1373 阅读 · 0 评论 -
Python基础教程:print输出带颜色的方法详解
显示方式: 0(默认值)、1(高亮)、22(非粗体)、4(下划线)、24(非下划线)、 5(闪烁)、25(非闪烁)、7(反显)、27(非反显)前景色: 30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋 红)、36(青色)、37(白色)背景色: 40(黑色)、41(红色)、42(绿色)、 43(黄色)、44(蓝色)、45(洋 红)、46(青色)、47(白色)对于结尾部分,其实也可以省略,但是为了书写规范,建议\033[***开头,\033[0m结尾。原创 2023-10-14 14:52:36 · 1132 阅读 · 0 评论