python
文章平均质量分 73
python学习笔记,python实例源码
资料小助手
python,java,区块链,微服务架构
展开
-
NumPy入门介绍
NumPy是Python语言的一个扩展库,是Numeric Python的缩写,是一个用于科学计算的开源软件包。它提供了高效的多维数组对象,以及针对这些数组执行快速操作的工具。NumPy的核心功能是numpy.ndarray,即一种能够表示任意维度的数组对象。这篇文章将介绍NumPy的基础知识以及一些常用操作。原创 2023-03-13 13:22:31 · 541 阅读 · 0 评论 -
pandas DataFrame数据结构
在Pandas中,DataFrame是最常用的数据结构之一。它提供了许多强大的功能,可以帮助您轻松地进行数据操作和数据分析。在本文中,我们将深入探讨Pandas DataFrame数据结构的细节,以便更好地了解和使用它原创 2023-03-12 12:23:21 · 902 阅读 · 0 评论 -
Pandas Series数据结构
本篇博客将介绍Pandas中的Series数据结构,包括Series的创建、索引、切片、计算和操作等基本用法。原创 2023-03-12 12:00:00 · 324 阅读 · 0 评论 -
Pandas快速入门
Pandas是Python中非常流行的数据处理库之一,它提供了一种简单而强大的方法来处理和分析数据。在本篇文章中,我将向你介绍Pandas的基础知识,以便你可以开始使用它来处理和分析数据。原创 2023-03-11 19:06:35 · 508 阅读 · 0 评论 -
python进程池
Python进程池是Python标准库中multiprocessing模块提供的一种用于管理进程的方式。它可以使Python程序以并行的方式执行任务,提高程序的运行效率。本篇博客将介绍如何使用Python进程池原创 2023-03-11 18:46:27 · 930 阅读 · 0 评论 -
python线程池
假设我们必须多线程任务创建大量线程。由于线程太多,因此可能会有很多性能问题,这在计算上会是最昂贵的。一个主要问题可能是吞吐量受限。我们可以通过创建一个线程池来解决这个问题。一个线程池可以被定义为一组预先实例化和空闲的线程,它们随时可以开始工作。创建线程池比我们需要执行大量任务时为每个任务实例化新线程更受欢迎。线程池可以管理大量线程的并发执行,如下所示 -原创 2023-03-09 12:31:29 · 783 阅读 · 0 评论 -
python进程间通信
进程间通信表示进程之间的数据交换。为了开发并行应用程序,需要在进程间交换数据。下图显示了多个子过程之间同步的各种通信机制 -原创 2023-03-09 12:17:15 · 656 阅读 · 1 评论 -
python线程通信
在现实生活中,如果一个人团队正在共同完成任务,那么他们之间应该有通信,以便正确完成任务。同样的比喻也适用于线程。在编程中,要减少处理器的理想时间,我们创建了多个线程,并为每个线程分配不同的子任务。因此,必须有一个通信设施,他们应该互相沟通交流,以同步的方式完成工作。考虑以下与线程通信相关的重要问题 -原创 2023-02-27 09:58:20 · 561 阅读 · 0 评论 -
python同步线程
线程同步可以定义为一种方法,借助这种方法,可以确信两个或更多的并发线程不会同时访问被称为临界区的程序段。另一方面,正如我们所知道的那样,临界区是共享资源被访问的程序的一部分。因此,同步是通过同时访问资源来确保两个或更多线程不相互连接的过程。下图显示了四个线程同时尝试访问程序的临界区。为了使它更清楚,假设有两个或更多线程试图同时在列表中添加对象。这种行为不能导致成功的结局,因为它会抛弃一个或所有的对象,或者它会完全破坏列表的状态。这里同步的作用是每次只有一个线程可以访问列表。原创 2023-02-27 09:33:07 · 315 阅读 · 0 评论 -
python多线程实现
Python线程有时称为轻量级进程,因为线程比进程占用的内存少得多。 线程允许一次执行多个任务。 在Python中,以下两个模块在一个程序中实现线程 -原创 2023-02-26 16:27:46 · 1644 阅读 · 2 评论 -
python排序算法
排序是指以特定格式排列数据。 排序算法指定按特定顺序排列数据的方式。 最常见的排序是数字或字典顺序。排序的重要性在于,如果数据是以分类方式存储,数据搜索可以优化到非常高的水平。 排序也用于以更易读的格式表示数据原创 2023-02-25 12:55:18 · 316 阅读 · 0 评论 -
python数据结构-栈,队列,双端队列
在英语词典中,堆(Stack)表示将对象放在另一个对象上。 在这个数据结构中分配内存的方式是一样的。 它以类似的方式存储数据元素,类似在厨房中一堆盘子:一个在另一个之上存放。 所以堆栈数据数据允许操作的一端可以称为栈顶。 可在栈顶上添加元素或仅从堆栈中移除元素。原创 2023-02-25 12:46:45 · 441 阅读 · 0 评论 -
Python数据结构-链表
链表是一系列数据元素,通过链接连接在一起。 每个数据元素都以指针的形式包含到另一个数据元素的连接。 Python在其标准库中没有链接列表。 我们使用前一章讨论的节点概念来实现链表的概念。 我们已经知道如何创建节点类以及如何遍历节点的元素。 在本章中,将学习链表的类型:单链表。 在这种类型的数据结构中,任何两个数据元素之间只有一个链接。 创建一个链表并使用一些方法来插入,更新和从列表中移除元素。原创 2023-02-20 12:12:49 · 463 阅读 · 0 评论 -
python数据结构-字典(dict)
在Python字典中,每个键和值之间使用冒号(:)分隔,每个项之间用逗号(,)隔开,整个字典数据用大括号括起来。 如果是没有任何项目的空字典则使用两个大括号编写,如下所示:{}。键在字典中是唯一的,而值可能不是唯一的。 字典的值可以是任何类型,但键必须是不可变的数据类型,例如:字符串,数字或元组。原创 2023-02-20 11:59:50 · 290 阅读 · 0 评论 -
python数据结构-集合(set)
在数学上,集合(Set)是不以任何特定顺序的数据项。 Python集合与此数学定义类似,但有以下附加条件。集合中的元素不能重复。集合中的元素是不可变的(不能被修改),但集合作为一个整体是可变的。附加到python集合中的任何元素不需要索引。所以集合不支持任何索引或切片操作。原创 2023-02-18 13:47:51 · 431 阅读 · 0 评论 -
python数据结构-二维数组
二维数组是数组中的数组。 它是一个数组的数组。 在这种类型的数组中,数据元素的位置由两个索引,而不是一个索引来引用。 所以它表示了一个包含行和列的数据的表。 在下面的二维数组的例子中,每个数组元素本身也是一个数组。原创 2023-02-17 09:08:37 · 1936 阅读 · 0 评论 -
python数据结构-列表,元组
列表是Python中最通用的数据类型,可以写成方括号之间的逗号分隔值(项目)列表。 使用列表的重要事项是,列表中的项目不必是相同的类型。也就是说一个列表中的项目(元素)可以是数字,字符串,数组,字典等甚至是列表类型。原创 2023-02-12 14:29:40 · 379 阅读 · 0 评论 -
python数据结构-数组
数组是一个容器,它可以容纳一定数量的项目,这些项目是相同的类型。删除是指从数组中删除现有元素并重新组织数组的所有元素。在这里,使用python内置remove()方法来删除数组中的数据元素。根据需要,可以在开始,结束或任何给定的数组索引中添加/插入一个新元素。在这里,使用python内置index()方法来搜索数组中的元素。可以使用元素的索引来访问数组中的每个元素。是用于定义数组将保存的值类型的代码。在这里,使用python内置insert()方法在数组中间添加一个数据元素。以下是数组支持的基本操作。原创 2023-02-10 09:33:58 · 538 阅读 · 0 评论 -
python文本处理-排序行,重新格式化段落
例如,我们希望得到不同学生写的句子,按名称的字母顺序排列。在下面的程序中,首先从文件中读取行,然后使用sort函数打印它们,sort函数是标准python库的一部分。可能只想打印具有特定宽度的每一行,或者在打印诗词时增加每一行的缩进。在此示例中,为段落的每一行指定了30个字符的宽度。在这个例子中,增加了要打印诗语的每一行的缩进。当我们运行上面的程序时,得到以下输出 -当我们运行上面的程序时,得到以下输出 -当运行上面的程序时,我们得到以下输出 -当运行上面的程序时,得到以下输出 -原创 2023-02-09 09:52:59 · 355 阅读 · 0 评论 -
python设计模式-享元设计模式,抽象工厂设计模式,面向对象设计模式
享元(flyweight)设计模式属于结构设计模式类别。它提供了一种减少对象数的方法。它包含各种有助于改进应用程序结构的功能。享元对象最重要的特性是不可变的。这意味着一旦构建就不能修改它们。抽象工厂模式也被称为工厂的工厂。此设计模式属于创建设计模式类别。它提供了创建对象的最佳方法之一。在上面的程序中,抽象工厂为每个窗口创建对象。它调用每个方法,按预期执行输出。它包含一个接口,负责创建与工厂相关的对象。参考以下程序,演示如何实现抽象工厂模式。执行上面示例代码,得到以下结果 -以下程序演示如何实现享元模式。原创 2023-02-09 09:40:22 · 368 阅读 · 0 评论 -
python设计模式-策略设计模式,模板设计模式
策略模式是一种行为模式。策略模式的主要目标是使客户能够从不同的算法或程序中进行选择以完成指定的任务。不同的算法可以交换出入,而不会对上述任务产生任何影响。模板模式使用抽象操作在基类中定义基本算法,其中子类覆盖具体行为。模板模式将算法的轮廓保留在单独的方法中。在这里,参数表示用于创建茶,披萨等餐点的一部分的属性。它提供执行输出的函数的策略列表。这种行为模式的主要焦点是行为。有关如何使用Python实现策略模式,请参考以下代码 -有关模板设计模式的实现,请参考以下代码。以下是模板模式的不同功能 -原创 2023-02-06 08:22:06 · 268 阅读 · 0 评论 -
python设计模式-观察者设计模式,状态设计模式
在观察者设计模式这种模式中,对象被表示为等待事件触发的观察者。一旦发生指定的事件,观察者就会关注该主体。当事件发生时,主体告诉观察者它已经发生。它为状态机提供了一个模块,它使用从指定的状态机类派生而来的子类来实现。这些方法独立于状态,并使用装饰器声明转换。上面的代码解释了下载特定结果的过程。根据观察者模式逻辑,每个对象都被视为观察者。现在让我们来看看如何实现观察者模式。状态模式的基本实现,请参考如下代码。以下UML图表示观察者模式 -执行上述程序生成以下输出。执行上述程序生成以下输出。原创 2023-02-06 08:15:26 · 89 阅读 · 0 评论 -
python设计模式-代理设计模式,责任链设计模式
代理设计模式包含一个新对象,称为“代理”,代替被称为“真实主体”的现有对象。由真实主体创建的代理对象必须位于相同的接口上,以便不让客户端知道使用代理来代替真实对象。客户端向代理生成的请求将通过真实主体传递。责任链模式用于实现软件中的松散耦合,其中来自客户端的指定请求通过包含在其中的对象链传递。请求从一端进入并从一个对象移动到另一个对象。上面的代码是创建一个报告的月任务,通过每个函数发送命令。代理模式设计有助于复制创建的图像。该模式允许对象发送命令而不知道哪个对象将处理该请求。代理模式的UML表示如下 -原创 2023-02-04 15:12:52 · 85 阅读 · 0 评论 -
python设计模式-适配器设计模式,装饰器设计模式
这种模式涉及一个类,它负责连接独立或不兼容接口的功能。一个现实的例子是读卡器,它是存储卡和笔记本电脑之间的适配器。它根据需求将一个类的接口转换为另一个接口。根据收集到的要求,生成一个使用的形状类。这种类型的设计模式属于结构模式,因为此模式充当现有类的包装。这种类型的设计模式属于结构模式,因为此模式结合了两个独立接口的功能。这个模式创建了一个装饰器类,它封装了原始类,并提供了额外的功能,保持了类方法签名的完整性。如下所述,coffeeshop抽象类的实现是通过一个单独的文件完成的。执行上述程序生成以下输出。原创 2023-02-04 15:06:52 · 725 阅读 · 0 评论 -
python设计模式-门面(Facade)设计模式,命令设计模式
这是启动汽车或任何车辆的发动机。如果您观察代码,它还包括驱动,停车和消耗燃料的相关功能。门面(Facade)设计模式为子系统中的一组接口提供统一的接口。它定义了任何子系统都可以使用的更高级别的接口。在这种设计模式中,客户端创建一个包含要执行的命令列表的命令对象。创建的命令对象实现了特定的接口。现在让我们看看如何设计一个门面(Facade)设计模式。注意:输出实现了Python语言中列出的所有命令和关键字。命令模式在动作之间添加一个抽象级别,并包含一个调用这些动作的对象。以下是命令模式的基本架构。原创 2023-02-03 18:15:09 · 352 阅读 · 0 评论 -
python设计模式-构建器(Builder)设计模式,原型设计模式
构建器(Builder)模式是一种独特的设计模式,它有助于使用简单对象构建复杂对象并使用算法。这种设计模式属于创建型模式。在这种设计模式中,构建器类逐步构建最终对象。该构建器独立于其他对象。构建器(Builder)模式的优点它提供了清晰的分离和独特的层次,可以在构建和表示由类创建的指定对象之间进行表示。它可以更好地控制所建模式的实现过程。它提供了改变对象内部表示的场景。原创 2023-02-03 12:18:58 · 559 阅读 · 0 评论 -
python设计模式-单例模式,工厂模式
单例模式单例模式将类的实例化限制为一个对象。 它是一种创建模式,只涉及创建方法和指定对象的一个类。它提供了创建实例的全局访问点。如何实现一个单例类?下面的程序演示了单例类的实现,并多次打印创建的实例。class Singleton: __instance = None @staticmethod def getInstance(): """ Static access method. """ if Singleton.__instance == Non原创 2023-02-02 18:54:43 · 368 阅读 · 0 评论 -
python爬虫学习笔记-scrapy框架(6)
增量式爬虫应用场景分类通用爬虫聚焦爬虫功能爬虫分布式爬虫增量式:用来监测网站数据更新的情况(爬取网站最新更新出来的数据)。只是一种程序设计的思路,使用什么技术都是可以实现的。核心:去重。使用一个记录表来实现数据的去重:记录表:存储爬取过的数据的记录如何构建和设计一个记录表:记录表需要具备的特性:去重需要持久保存的方案1:使用Python的set集合充当记录表?不可以的!因为set集合无法实现持久化存储方案2:使用redis的set集合充当记录原创 2023-01-31 09:40:11 · 469 阅读 · 0 评论 -
python爬虫学习笔记-scrapy框架(4)
selenium+scrapy需求:将网易新闻中的国内,国际,军事,航空四个板块下的新闻标题和内容进行数据爬取注意:哪些数据是动态加载的!技术:selenium,scrapy,中间件分析:抓取首页中四个板块下所有的新闻标题和新闻内容获取首页中四个板块对应的详情页链接首页是没有动态加载数据,可以直接爬取+解析对每一个板块的url发起请求,获取详情页中的新闻标题等内容通过分析发现每一个板块中的新闻数据全部是动态加载的数据,如何解决呢?通过selenium解决原创 2023-01-30 10:48:16 · 490 阅读 · 0 评论 -
python爬虫学习笔记-scrapy框架(3)
ImagePipeLines的请求传参环境安装:pip install PillowUSER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36'需求:将图片的名称和详情页中图片的数据进行爬取,持久化存储。分析:深度爬取:请求传参多页的数据爬取:手动请求的发送爬原创 2023-01-30 10:26:20 · 471 阅读 · 0 评论 -
python爬虫学习笔记-scrapy框架(2)
管道深入操作如何将数据存储到数据库注意:一个管道类负责将数据存储到一个具体的载体中。如果想要将爬取到的数据存储到多个不同的载体/数据库中,则需要定义多个管道类。思考:在有多个管道类的前提下,爬虫文件提交的item会同时给没一个管道类还是单独的管道类?爬虫文件只会将item提交给优先级最高的那一个管道类。优先级最高的管道类的process_item中需要写return item操作,该操作就是表示将item对象传递给下一个管道类,下一个管道类获取了item对象,才可以将数据存储成功!原创 2023-01-29 12:05:09 · 501 阅读 · 0 评论 -
python爬虫学习笔记-scrapy框架(1)
简介什么是框架?所谓的框,其实说白了就是一个【项目的半成品】,该项目的半成品需要被集成了各种功能且具有较强的通用性。Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍。所谓的框架就是一个已经被集成了各种功能(高性能异步下载,队列,分布式,解析,持久化等)的具有很强通用性的项目模板。对于框架的学习,重点是要学习其框架的特性、各个功能的用法即可。初期如何学习框架?只需要学习框架集成好的各种功能的用法即可!前期切勿钻研框架的源码!安装Linux/mac系统:原创 2023-01-29 10:22:42 · 640 阅读 · 0 评论 -
python爬虫学习笔记-mongodb安装&基本介绍&pymongo使用
MongoDB数据存储MongoDB是一个非关系型数据库(NoSQL). 非常适合超大数据集的存储, 由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。下面是Sql与mongodb的术语对比SQLMongodb表(Talbe)集合(Collection)行(Row)文档(Document)列(Col)字段(Field)主键原创 2023-01-28 08:58:27 · 850 阅读 · 0 评论 -
python爬虫学习笔记-redis介绍&基本使用
redis基本使用介绍:redis是一款非关系型数据库或者缓存数据库(性能最高的非关系型数据库之一),拥有每秒近十万次的读写能力。安装&启动安装:使用免安装版本即可,免安装版本压缩包在window和mac文件夹中,对压缩包解压缩即可。启动:window:终端进入到解压缩文件夹的bin目录下,执行./redis-server启动服务,执行./redis-cli启动客户端mac:终端进入到解压缩文件夹的src目录下,执行./redis-serve原创 2023-01-27 10:30:47 · 720 阅读 · 0 评论 -
python爬虫学习笔记-python连接操作mysql
python操作链接数据库pymysql模块:pip install pymysql作用:可以实现使用python程序链接mysql数据库,且可以直接在python中执行sql语句import pymysql#1.创建链接对象conn = pymysql.Connect( host='127.0.0.1',#数据库服务器主机地址 port=3306, #mysql的端口号 user='root', #数据库的用户名 password='boboadmin原创 2023-01-27 10:28:26 · 891 阅读 · 0 评论 -
python爬虫学习笔记-SQL学习
Sql概述先来看一个例子:小王第一次使用数据库,然后跟数据库来了个隔空对话其实,我们想一想,mysql是一个软件,它有它自己一套的管理规则,我们想要跟它打交道,就必须遵守它的规则,如果我想获取数据,它自己有一套规则,这个规则就是SQL。什么是sql?SQL : 结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程言,是一种数据库查询和程序设计语言,SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发原创 2023-01-26 16:44:07 · 4517 阅读 · 2 评论 -
python爬虫学习笔记-mysql数据库介绍&下载安装
数据库概述为什么要使用数据库?那我们在没有学习数据库的时候,数据存放在json或者磁盘文件中不也挺好的嘛,为啥还要学习数据库?文件中存储数据,无法基于文件直接对数据进行操作或者运算,必须借助python将数据读取到计算机内存中然后基于Python程序操作数据,麻烦而且性能不高。使用文件存储数据,无法实现数据的共享。什么是数据库呢?先介绍几个概念:数据:Data描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字、图片,图像、声音、语言等,数原创 2023-01-25 10:08:35 · 1348 阅读 · 0 评论 -
python爬虫学习笔记-selenium
简介selenium是一种浏览器自动化的工具,所谓的自动化是指,我们可以通过代码的形式制定一系列的行为动作,然后执行代码,这些动作就会同步触发在浏览器中。环境安装下载安装selenium:pip install selenium下载浏览器驱动程序:http://chromedriver.storage.googleapis.com/index.html查看驱动和浏览器版本的映射关系:http://blog.csdn.net/huilan_same/article/deta原创 2023-01-25 09:26:47 · 1457 阅读 · 0 评论 -
python爬虫学习笔记-高性能异步爬虫
所以使用“池”必须考虑其面临的响应规模,并根据响应规模调整“池”的大小。接下来让我们来了解下协程的实现,从 Python 3.4 开始,Python 中加入了协程的概念,但这个版本的协程还是以生成器对象为基础的,在 Python 3.5 则增加了 asyncio,使得协程的实现更加方便。由于网络请求会受到个人电脑或者服务器响应时长不同等因素,我们可以自己创建一个专门用于测试的实验环境,搭建一个flask服务器,爬取本机自己服务器中的数据,避免其他因素的干扰,以便非常明显的观测出异步的效果。原创 2023-01-24 10:14:36 · 1381 阅读 · 1 评论 -
python爬虫学习笔记-M3U8流视频数据爬虫
现在大部分视频客户端都采用HTTP Live Streaming,而不是直接播放MP4等视频文件(HLS,Apple为了提高流播效率开发的技术)。HLS技术的特点是将流媒体切分为若干【TS片段】(比如几秒一段),然后通过一个【M3U8列表文件】将这些TS片段批量下载供客户端播放器实现实时流式播放。因此,在爬取HLS的流媒体文件的思路一般是先【下载M3U8文件】并分析其中内容,然后在批量下载文件中定义的【TS片段】,最后将其【组合】成mp4文件或者直接保存TS片段。原创 2023-01-24 10:11:13 · 4491 阅读 · 1 评论