- 博客(111)
- 收藏
- 关注
原创 Python 语言对面向对象的支持
基本数据结构,如numbers、string和list设计这些基本类型用来表示简单的信息,例如一套课程的,水果或最喜欢的颜色,这样用基本数据类型是无法表示,我们需要更复杂数据类型来描述这些事物。例如,需要维护一个发布的课程列表。需要存储每套课程的的一些基本信息,如课程标题、难度级别、课程数。这种表示方式存在着一些问题难于管理和维护,当使用引用我们需要熟悉在列表索引为 0 值对应是课程哪一个属性,是课程名称还是课程数难于维护,一旦某一条记录有数据遗漏就会发生数据错位,随着带来获取数据不正确。
2022-09-27 19:55:29 666 1
原创 一文了解异步编程基础
异步编程是指并发编程的范式,其中除了单个主应用程序线程之外,工作可以委托给一个或多个并行工作线程。这被称为非阻塞系统,其中整体系统速度不受订单执行的影响,并且多个进程可以同时发生。函数从 API 获取数据需要时间。设计异步编程是为了适应调用函数到返回该函数的值之间的延迟。让我们通过一个例子来理解这一点 -如果您要创建一个天气应用程序,您可能希望从一个外部 API 获取城市的温度,并从另一个 API 获取风速或降雨可能性。
2022-09-27 19:41:40 3274 1
原创 Python的可等待对象在Asyncio的作用
在深入了Task,Future的源码了解后,了解了Task和Future在Asyncio的作用,同时也发现Task和Future都跟loop有一定的耦合,而loop也可以通过一定的方法来创建Task和Future,所以如果要真正的理解到Asyncio的调度原理,还需要更进入一步,通过Asyncio的源码来了解整个Asyncio的设计.
2022-09-23 19:58:41 363
原创 10个有趣的 Python 高级脚本,建议收藏
比如不久前的复旦大佬,用130行Python代码硬核搞定核酸统计,大大提升了效率,节省了不少时间。使用Python的pikepdf模块,即可对文件进行加密,写一个循环就能进行批量加密文档。如果你有100个或更多的PDF文件需要加密,手动进行加密肯定是不可行的,极其浪费时间。其实使用Python的OpenCV,就能够快速实现很多你想要的效果。使用Python的WMI模块,便可以轻松查看你的电脑信息。其中不少的问题,使用一些简单的Python代码就能解决。下面这个简单的脚本将帮助你在一秒钟内完成相同的操作。
2022-09-23 16:13:55 302
原创 一行 Python 代码实现并行
dummy 是 multiprocessing 模块的完整克隆,唯一的不同在于 multiprocessing 作用于进程,而 dummy 模块作用于线程(因此也包括了 Python 所有常见的多线程限制)。这段代码能正确的运行,但仔细看看我们需要做些什么:构造不同的方法、追踪一系列的线程,还有为了解决恼人的死锁问题,我们需要进行一系列的 join 操作。Pool 对象有一些参数,这里我所需要关注的只是它的第一个参数:processes. 这一参数用于设定线程池中的线程数。所以替换使用这两个库异常容易。
2022-09-23 15:46:34 123
原创 Python 超强数据可视化库:Altair
Altair提供了一个强大而简洁的可视化语法,使你能够快速建立一个广泛的统计可视化。下面是一个使用Altair API的例子,通过一个交互式散点图快速实现数据集的可视化。Altair是一个用于Python的声明式统计可视化库,基于Vega和Vega-Lite。
2022-09-23 15:39:21 255
原创 Python 中的万能之王 Lambda 函数
通过一个例子来理解高阶函数。假设有一个整数列表,必须返回三个输出。一个列表中所有偶数的和一个列表中所有奇数的和一个所有能被三整除的数的和首先假设用普通函数来处理这个问题。在这种情况下,将声明三个不同的变量来存储各个任务,并使用一个for循环处理并返回结果三个变量。该方法常规可正常运行。现在使用Lambda函数来解决这个问题,那么可以用三个不同的Lambda函数来检查一个待检验数是否是偶数,奇数,还是能被三整除,然后在结果中加上一个数。= 0。
2022-09-23 15:31:53 158
原创 附答案 | 最强Python面试题之机器学习篇
机器学习简单的说,机器学习就是让机器从数据中学习,进而得到一个更加符合现实规律的模型,通过对模型的使用使得机器比以往表现的更好,这就是机器学习。数据:从现实生活抽象出来的一些事物或者规律的特征进行数字化得到。学习:在数据的基础上让机器重复执行一套特定的步骤(学习算法)进行事物特征的萃取,得到一个更加逼近于现实的描述(这个描述是一个模型它的本身可能就是一个函数)。我们把大概能够描述现实的这个函数称作我们学到的模型。更好:我们通过对模型的使用就能更好的解释世界,解决与模型相关的问题。机器学习机器学习。
2022-09-23 14:40:11 1155
原创 Python基础语法14个知识点大串讲
列表是 Python 中使用最为频繁的数据类型,是写在方括号 [ ] 之间、元素之间用逗号分隔开。列表中的元素类型可以相同,也可以不同,它支持数字、字符串甚至可以包含列表(也叫嵌套),例如:输出为:[ 1, 2, 3, 'hello', [ 4, 5, 6] ]
2022-09-23 14:37:01 132
原创 10大Python数据可视化库
它没有默认值,你得定义图表的每一个元素。由于Seaborn是构建在matplotlib的基础上的,你需要了解matplotlib从而来调整Seaborn的默认参数。Plotly 跟 Bokeh 一样致力于交互图表的制作,但是它提供在别的库中很难找到的几种图表类型,比如等值线图,树形图和三维图表。ggplot跟pandas的整合度非常高,所以当你使用它的时候,最好将你的数据读成 DataFrame。由于所有的图表都被封装成了方法,而且默认的风格也很漂亮,用几行代码就可以很容易地制作出漂亮的图表。
2022-09-22 16:45:38 2148
原创 一文读懂Python 高阶函数
偏函数主要辅助原函数,作用其实和原函数差不多,不同的是,我们要多次调用原函数的时候,有些参数,我们需要多次手动的去提供值。变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。map(fun, lst),将传入的函数变量func作用到lst变量的每个元素中,并将结果组成新的列表返回。而偏函数便可简化这些操作,减少函数调用,主要是将一个或多个参数预先赋值,以便函数能用更少的参数进行调用。将函数作为参数传入,这样的函数称为高阶函数。闭包本质上就是一个函数。
2022-09-22 16:21:07 256
原创 Python 字典用法详解(超全)
update() 字典更新,将字典dict1的键-值对更新到dict里,如果被更新的字典中己包含对应的键-值对,那么原键-值对会被覆盖,如果被更新的字典中不包含对应的键-值对,则添加该键-值对。其中 dic2 是 dic1 的引用,所以输出结果是一致的,dic3 父对象进行了深拷贝,不会随dic1 修改而修改,子对象是浅拷贝所以随 dic1 的修改而修改,注意父子关系。get() 用于返回指定键的值,也就是根据键来获取值,在键不存在的情况下,返回 None,也可以指定返回值。字典也被称作关联数组或哈希表。
2022-09-22 16:08:05 2166
原创 Pandas玩转数据透视表,用它就够了
聚合函数/函数列表,默认 numpy.mean 这里要注意如果 aggfunc 中存在函数列表,则返回的 DataFrame 中会显示函数名称。对于数据透视表,相信对于 Excel 比较熟悉的小伙伴都知道如何使用它,并了解它的强大之处,而在。:默认 True,如果列的所有值都是 NaN,将被删除;参数,当参数值包含列表时,在结果。
2022-09-22 15:41:39 173
原创 4个Python项目管理与构建工具,建议收藏
Python 历时这么久以来至今还未有一个事实上标准的项目管理及构建工具,以至于造成 Python 项目的结构与构建方式五花八门。这或许是体现了 Python 的自由意志。不像 Java 在经历了最初的手工构建,到半自动化的 Ant, 再到 Maven 基本就是事实上的标准了。
2022-09-22 15:28:17 121
原创 Python 函数中,参数是传值,还是传引用?
执行 append 方法前 b 和 arg 都指向(绑定)同一个对象,执行 append 方法时,并没有重新赋值操作,也就没有新的绑定过程,append 方法只是对列表对象插入一个元素,对象还是那个对象,只是对象里面的内容变了。在代码段1中,变量 a 绑定了 1,调用函数 foo(a) 时,相当于给参数 arg 赋值 arg=1,这时两个变量都绑定了 1。Python 中一切皆为对象,数字是对象,列表是对象,函数也是对象,任何东西都是对象。例如,[]是一个空列表对象,变量 a 是该对象的一个引用。
2022-09-22 14:57:42 444
原创 Python 强大的信号库:blinker
因为 Flask 集成了信号,所以在 Flask 中使用信号时从 Flask 中引入。s.send()app.run()信号的优点:解耦应用:将串行运行的耦合应用分解为多级执行发布订阅者:减少调用者的使用,一次调用通知多个订阅者信号的缺点:不支持异步支持订阅主题的能力有限。
2022-09-22 14:50:36 235
原创 Python 实现定时任务的八种方案
在日常工作中,我们常常会用到需要周期性执行的任务,一种方式是采用 Linux 系统自带的 crond 结合命令行实现。另外一种方式是直接使用Python。接下来整理的是常见的Python定时任务的实现方式。
2022-09-22 14:48:09 328
原创 你见过的最全面的Python重点
SSH客户端适用于多种平台。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。对于InnoDB的主索引,数据会按照主键进行排序,由于UUID的无序性,InnoDB会产生巨大的IO压力,此时不适合使用UUID做物理主键,可以把它作为逻辑主键,物理主键依然使用自增ID。但是在删除这些元素的时候,Memcached采用的是通过黑名单的方式来隐藏列表里的元素,从而避免了对元素的读取、更新、删除等操作。
2022-09-22 14:41:43 126
原创 Python 图形界面框架 PyQt5 使用指南!
PyQt是Qt框架的Python语言实现,由Riverbank Computing开发,是最强大的GUI库之一。PyQt提供了一个设计良好的窗口控件集合,每一个PyQt控件都对应一个Qt控件,因此PyQt的API接口与Qt的API接口很接近,但PyQt不再使用QMake系统和Q_OBJECT宏。PyQt5提供GPL版和商业版证书,自由开发者可以使用免费的GPL许可,如果需要将PyQt用于商业应用,则必须购买商业许可。PyQt5特性如下:基于高性能的Qt的GUI控件集。
2022-09-21 17:10:31 751
原创 Python 使用和高性能技巧总结
字符串拼接,例如 a + ':' + b + ':' + c 会创造大量无用的中间变量,':',join([a, b, c]) 效率会高不少。C/C++ 的习惯是把输入输出参数都列为函数的参数,通过指针改变输出参数的值,函数的返回值是执行状态,函数调用方对返回值进行检查,判断是否成功执行。在 Python 中,不需要函数调用方进行返回值检查,函数中遇到特殊情况,直接抛出一个异常。对别名的修改会影响原变量,(浅)复制中的元素是原列表中元素的别名,而深层复制是递归的进行复制,对深层复制的修改不影响原变量。
2022-09-21 17:07:22 124
原创 Python 最快Web框架
如果说要用 Python 进行 web 开发,我想你一定会告诉我 使用 Flask 或者 Django 再或者 tornado, 用来用去无非就这三种框架。可能逛 github 多的朋友还会说一个 fastapi。但是,皇上,时代变了,大清… 亡了!!!
2022-09-21 17:02:56 162
原创 Python这些操作,逆天且实用
有时,我们在工作中需要频繁地输入一些单词。如果我们能使我们的键盘自动化,只用缩写就能写出这些经常使用的单词,这不是很有趣吗?没错,我们可以用Python使之成为可能。安装代码keyboard.add_abbreviation('ex', '我是一条测试数据!然后,在任何位置输入ex加空格就可以快速补全对应的语句!
2022-09-21 16:56:55 114
原创 Python eval 函数动态地计算数学表达式
Python的 eval()允许从基于字符串或基于编译代码的输入中计算任意Python表达式。当从字符串或编译后的代码对象的任何输入中动态计算Python表达式时,此函数非常方便。本文中,云朵君将和大家一起从如下两个方面展开学习。Python的 eval()如何工作如何使用 eval()来任意基于字符串或基于编译代码的输入此外,eval()。通过这个例子,我们将把所学到的关于eval()的一切应用于一个实际问题。
2022-09-21 16:54:48 1268 1
原创 Python 实现单例模式的五种写法
是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。比如,某个服务器程序的配置信息存放在一个文件中,客户端通过一个 AppConfig 的类来读取配置文件的信息。如果在程序运行期间,有很多地方都需要使用配置文件的内容,也就是说,很多地方都需要创建 AppConfig 对象的实例,这就导致系统中存在多个 AppConfig 的实例对象,而这样会严重浪费内存资源,尤其是在配置文件内容很多的情况下。
2022-09-21 16:53:13 82
原创 Python自动化操作Excel
如果想利用Python进行web项目开发等,建议使用Python基础环境+Pycharm,安装使用参考 Windows下安装、使用Pycharm教程,这下全了 和Mac下玩转Python-安装&使用Python/PyCharm。基本介绍:用于Python与Excel之间的交互,可以轻松地从 Excel 调用 Python,也可以利用Python自动化操作Excel,调用VBA,非常方便。这篇文章肝太久了,最后实战部分我们下回见,由于本人水平有限,文中错误,敬请指出,互相学习,一起进步。
2022-09-21 16:49:13 1914 4
原创 Python处理办公自动化的10大场景
在编程世界里,Python已经是名副其实的网红了。曾经一个学汉语言的研究生,问我怎么学Python,因为他们课程论文里需要用到文本分析,用Python来跑数据。我和他说,你看两天语法,就可以上手开干,不会的再查资料。后来这位同学半个月就用Python把论文数据搞好了。所以Python最大优势在于容易学,门槛比Java、C++低非常多,给非程序员群体提供了用代码干活的可能性。当然Python能成为大众编程工具,不光光是因为易学,还因为Python有成千上万的工具包,遍布各行各业。
2022-09-21 16:35:51 100
原创 使用 Python Poetry 进行依赖管理
当您的 Python 项目依赖于外部包时,您需要确保使用每个包的正确版本。更新后,软件包可能无法像更新前那样工作。Python类的依赖项管理器可帮助您指定、安装和解析项目中的外部包。通过这种方式,您可以确保始终在每台机器上使用正确的依赖版本。使用 Poetry 将帮助您启动新项目、维护现有项目并掌握。您将准备好使用 pyproject.toml 文件,这将是在 Python 项目中定义构建需求的标准。要完成本教程并充分利用它,您应该对虚拟环境、模块和包以及 pip.
2022-09-21 15:17:00 647
原创 Flask 源码解析:session
在解析 session 的实现之前,我们先介绍一下 session 怎么使用。session 可以看做是在不同的请求之间保存数据的方法,因为 HTTP 是无状态的协议,但是在业务应用上我们希望知道不同请求是否是同一个人发起的。比如购物网站在用户点击进入购物车的时候,服务器需要知道是哪个用户执行了这个操作。在 flask 中使用 session 也很简单,只要使用导入这个变量,在代码中就能直接通过读写它和 session 交互。上面这段代码模拟了一个非常简单的登陆逻辑,用户访问来登陆,后面访问页面的时候。
2022-09-21 14:56:00 205
原创 【Python 技能树共建】Beautiful Soup
初学 Python 爬虫,十之八九你采集的目标是网页,因此快速定位到网页内容,就成为你面临的第一道障碍,本篇博客就为你详细说明最易上手的网页元素定位术,学完就会系列。模块,因此我们用来做测试采集的站点,也是其官网(现阶段爬虫采集越来越严格,很多站点不能在采集了,很容易被封杀,只能学谁就采集谁了)方法,可以将 HTML 标签进行格式化操作,这样你就可以在存储到外部文件的时候,让其 HTML 代码进行美观。类的构造函数中传递的两个参数,一个是待解析的字符串,另一个是解析器,官方建议的是。
2022-09-20 17:08:00 257
原创 爬虫与反爬虫技术简介
爬虫分为通用爬虫和聚焦爬虫两大类,前者的目标是在保持一定内容质量的情况下爬取尽可能多的站点,比如百度这样的搜索引擎就是这种类型的爬虫,如图 1 是通用搜索引擎的基础架构:首先在互联网中选出一部分网页,以这些网页的链接地址作为种子 URL;将这些种子 URL 放入待抓取的 URL 队列中,爬虫从待抓取的 URL 队列依次读取;将 URL 通过 DNS 解析,把链接地址转换为网站服务器对应的 IP 地址;网页下载器通过网站服务器对网页进行下载,下载的网页为网页文档形式;
2022-09-20 16:48:10 244
原创 Python 爬虫实战 | 利用多线程爬取 LOL 高清壁纸
随着移动端的普及出现了很多的移动 APP,应用软件也随之流行起来。最近看到英雄联盟的手游上线了,感觉还行,PC 端英雄联盟可谓是爆火的游戏,不知道移动端的英雄联盟前途如何,那今天我们使用到多线程的方式爬取 LOL 官网英雄高清壁纸。本次我们使用了多线程爬取了英雄联盟官网英雄皮肤高清壁纸,因为图片涉及到 IO 操作,我们使用并发方式进行,大大提高了程序的执行效率。
2022-09-20 16:33:21 558
原创 Python 爬虫从入门到入坑全系列教程(详细教程 + 各种实战)
爬虫定义:网络爬虫(又被称为网页蜘蛛、网络机器人,在 FOAF 社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫两大特征能按作者要求下载数据或者内容能自动在网络上流窜三大步骤下载网页提取正确的信息根据一定规则自动跳到另外的网页上执行上两步内容爬虫分类通用爬虫专用爬虫(聚焦爬虫)Python 网络包简介python2:urllib 和 urllib2 配合使用,或者 requests。
2022-09-20 16:26:23 3706
原创 python 爬虫 - 学习 urllib 和 requests 使用,模拟请求
Python 内置的 HTTP 请求库,安装好 Python 就能用,它是最基本的请求库,用于访问网络资源,程序发起请求,获取响应数据,使用该库实现。主要有 4 个模块>urllib.request 请求模块urllib.error 异常处理模块,捕获请求和响应中出现的错误urllib.parse url 解析模块,提供 url 处理方法,拆分合并urllib.robotparser robots.txt 解析模块学习 urllib 和 requests 使用,是我们学习爬虫最关键的一步。
2022-09-20 16:18:54 1931
原创 5道关于Python基础方面的练习题
1.校验输入内容是否符合规范(xx@polo.com), 如是进入下一步,如否则抛出提 示"incorrect email format"。控制台输入邮箱地址(格式为 username@companyname.com), 程序识别用户名和公司名后,将用户名和公司名输出到控制台。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数。4.如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。2.一个for循环,每次获取同下标值。1.固定以.com结尾,用正则匹配。
2022-09-20 15:44:13 182
原创 清华北大教授教授推荐Python448集高清视频教程
而且Python的热度现在一直高居不下,比如,完成同一个任务,C语言要写1000行代码,Java只需要写100行,而Python可能只要20行。设计模式的掌握可以让你的项目变得更好维护,是一种经验的总结,排序算法很多种,项目经常会有取TopN的需求,所以常见设计模式和算法排序面试官们很喜欢问,也是为后面的项目打好一个扎实的基础。Python基础语法的掌握是必备技能,认识到了Python语言的优雅,即使你之前用过其他开发语言,也会转到Python的行列中。1.Django-Git版本控制。
2022-09-20 14:52:06 128
原创 数据科学面试你应该知道的10个统计概念
然后,您可以使用 Excel 等方法随机生成每个元素的数字,并采集所需的前 n 个样本。想想看,这是有道理的。实际上,如果 p 值小于 alpha,例如 0.05,则我们说,结果可能偶然发生的概率小于 5。因为它超出了本文的范围,我不会进入更多的细节,但现在你知道它是如何工作的!额外的步骤是提供您以前在下面的 sigmoid 函数中计算的分数,以便您获得回报的概率。最流行的机器学习算法之一,奈夫·贝叶斯,是建立在这两个概念之上的。有很多不同的分布类型,你应该了解,但一些我推荐的是正常,均匀,泊松。
2022-09-19 17:21:42 398
原创 Python面试技巧合集(建议收藏)
38.请合并下面两个字典 a = {"A":1,"B":2},b = {"C":3,"D":4}39.如何使用生成式的方式生成一个字典,写一段功能代码。28. (1)s="info:xiaoZhang 33 shandong",用正则切分字符串输出['info', 'xiaoZhang', '33', 'shandong'](2) a = "你好 中国 ",去除多余空格只留一个空格。33.[[1,2],[3,4],[5,6]]一行代码展开该列表,得出[1,2,3,4,5,6]
2022-09-19 16:58:42 379
原创 详解Python中的文本处理
然而 .read() 生成文件内容最直接的字符串表示,但对于连续的面向行的处理,它却是不必要的,并且如果文件大于可用内存,则不可能实现这种处理。所以,字符串的中间必须包括一个(或者两个,或者一千个)与括号中的子表达式匹配的字符或字符串。" 表示“零或一”。但是,请记住,cStringIO“虚拟文件”不是永久的,这一点与真正的文件不同。如果正在使用处理文件的标准模块,可以使用 cStringIO 模块将字符串转换成“虚拟文件”(如果需要生成模块的子类,可以使用 StringIO 模块,初学者未必要这样做)。
2022-09-19 16:17:51 1510
原创 Python 加速运行技巧
其会预分配一定内存空间,当预分配的内存空间用完,又继续向其中添加元素时,会申请一块更大的内存空间,然后将原有的所有元素都复制过去,之后销毁之前的内存空间,再插入新元素。因此,如果有频繁的新增、删除操作,新增、删除的元素数量又很多时,list的效率不高。如果你的代码运行速度很慢,首先要找到代码运行慢的位置,通常是内部循环,专注于运行慢的地方进行优化。优化是有代价的,想解决所有性能的问题是几乎不可能的。底层都是 C 实现的,速度非常快,自己实现新的数据结构想在性能上达到内置的速度几乎是不可能的。
2022-09-19 16:01:06 145
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人