Python
第112天:Python 到底是值传递还是引用传递
by 豆豆 我们平时写的 Python 程序中充斥着大量的函数,包括系统自带函数和自定义函数,当我们调用函数时直接将参数传递进去然后坐等接收返回值即可,简直不要太好用。那么你知道函数的参数是怎么传递的么,是值传递还是引用传递呢,什么又是值传递和引用传递呢? 这个问题对于很多初学者还是比较有难度的,看到这里你可以稍加停顿…
第111天:Python 垃圾回收机制
by 豆豆 众所周知,Python 是一门面向对象语言,在 Python 的世界一切皆对象。所以一切变量的本质都是对象的一个指针而已。 Python 运行过程中会不停的创建各种变量,而这些变量是需要存储在内存中的,随着程序的不断运行,变量数量越来越多,所占用的空间势必越来越大,如果对变量所占用的内存空间管理不当的话,那…
第110天:Numpy 中数组和矩阵的区别
by 吴刀钓鱼 不知道你是否跟我有同样的疑惑,就是 Numpy 科学计算库中既可以创建数组,也可以创建矩阵,这两者究竟有哪些相似与不同之处呢?下面我们一起来解开这个疑惑。 ## 1 创建方式 我们先来看一下三个例子。 应用示例1: 应用示例2: 应用示例3: 通过以上三个例子的运行结果可知,虽然矩阵 A_mat 和数组…
第109天:Numpy 矩阵
by 吴刀钓鱼 机器学习中会用到大量的数学操作,而 Numpy 计算库使这些操作变得简单,这其中就涉及到了 Numpy 的矩阵操作,下面我们就来一起学习如何在 Numpy 科学计算库中进行矩阵的一些基本运算。 ## 1 矩阵的定义 定义矩阵使用 Numpy 科学计算库中的 mat 函数,如下所示: **numpy.ma…
第108天:Python 操作 CSV
by 程序员野客 使用过 CSV 文件都知道:如果我们的电脑中装了 WPS 或 Microsoft Office 的话, 文件默认是被 Excel 打开的,那么什么是 CSV 文件?CSV 文件与 Excel 文件有什么区别?如何通过 Python 来操作 CSV 文件呢?带着这些问题我们接着往下看。 ## 1 简介 …
第107天: Python 解析 PDF
by 極光 上次给大家介绍了 Python 如何操作 Word 和 Excel ,而今天想为大家再介绍下,用 Python 如何解析 PDF ,PDF 格式不像前面两个那么规范,从它的表现来看,它更像是一张图片,在一张白纸上把内容摆放在固定的位置上,没有逻辑结构。不过还是那句话,可以先了解下都能实现什么功能,以备不时之…
第106天:机器学习概览
# 机器学习概览 近年来,随着人工智能热潮的席卷,“机器学习”、“深度学习”、“强化学习”等等层出不穷的概念、术语纷纷扰扰,不绝于耳;但是对大多数并不从事相关行业的人来说,就始终有一种雾里看花、似是而非的感觉。 正巧,Python 作为一门简单易用、功能强大的编程语言,在 AI 时代与人工智能相关的技术紧密结合,在这系…
第105天: Python 操作 Word
by 極光 上次给大家介绍了 Python 如何操作 Excel ,是不是感觉还挺有趣的,今天为大家再介绍下,用 Python 如何操作 Word ,这个可能跟数据处理关系不大,用的也不多,不过可以先了解下都能实现什么功能,以备不时之需。 ## 安装 python-docx 处理 Word 需要用到 python-do…
第104天: Python 解析 XML
by 程序员野客 ## 1 简介 XML 全称 Extensible Markup Language,中文译为可扩展标记语言。XML 之前有两个先行者:SGML 和 HTML,率先登场的是 SGML, 尽管它功能强大,但文档结构复杂,既不容易学也不易于使用,因此几个主要的浏览器厂商均拒绝支持 SGML,这些因素限制了 …
第103天: Python 操作 Excel
by 極光 之前看过一篇文章,说一个工作多年的老员工,处理数据时只会用复制粘贴到 Excel ,天天加班工作还完不成,后来公司就招了一个会 Python 的新人,结果分分钟就处理完成。所以工作中大家经常会使用 Excel 去处理以及展示数据,但是对于部分工作我们可以借助程序帮忙实现,达到高效解决问题的效果,今天就为大家…
第102天: Python异步之aiohttp
by 某某白米饭 ## aiohttp 什么是 aiohttp?一个异步的 HTTP 客户端\服务端框架,基于 asyncio 的异步模块。可用于实现异步爬虫,更快于 requests 的同步爬虫。 ### 安装 ### aiohttp 和 requests #### requests 版爬虫 requests 同步方…
第101天: Python asyncio
by 某某白米饭 ## 异步IO之asyncio 异步IO:当发起一个 IO 操作时,并不需要等待它的结束,程序可以去做其他事情,当这个 IO 操作结束时,会发起一个通知。 在 Python 中可以使用 asyncio 模块异步编程,用于协程、网络爬虫、同步等。 ### asyncio 中的概念 #### event_…
第100天: 三木板模型算法项目实战
by 戴景波 ## 机器学习 本篇同样是机器学习,虽然没有用到python中已有的算法和函数,但借鉴了机器学习中的思路。 这篇机器学习建模的思路比较新颖,模型评估也比较独特。旨在引导广大读者借鉴,举一反三。 只是通过足球领域举例,可扩展到其他任何领域,达到抛砖引玉的目的。 ## 机器学习建模 建模思路:选取三家菠菜公司…
第99天:UDP 编程
by 闲欢 前面我们讲了 TCP 编程,我们知道 TCP 可以建立可靠连接,并且通信双方都可以以流的形式发送数据。本文我们再来介绍另一个常用的协议--UDP。相对TCP,UDP则是面向无连接的协议。 ## UDP 协议 我们来看 UDP 的定义: >UDP 协议(User Datagram Protocol),中文名是…
第98天:图像库 PIL 实例—验证码去噪
by 闲欢 前面我们学习了 Python 的图像处理库 PIL,学会了一些相关的图像处理方法,好多人心里会问:有什么用呢?这一节我们就拿实际的例子来回答大家。 ## 识别验证码的原理 现在大多数网站登录不再是简单地输入用户名密码了,一般都伴随着此二者之外的验证手段,目的是阻止一些居心不良的行为。而图片验证码是其中一种比…
第97天:图像库 PIL(二)
by 闲欢 上节我们讲了 Python 的图像处理库 PIL 的基本图像处理功能,打开了 PIL 的神秘面纱。这节我们接着讲 PIL 的 Image 模块的常用方法。 ## Image 模块的方法 ### convert > Image.convert(mode=None, matrix=None, dither=No…
第96天:图像库 PIL(一)
by 闲欢 Python 提供了 PIL(python image library)图像库,来满足开发者处理图像的功能,该库提供了广泛的文件格式支持,包括常见的 JPEG、PNG、GIF 等,它提供了图像创建、图像显示、图像处理等功能。 ## 基本概念 要学习 PIL 图像库的使用,我们必须先来了解一些关于图像的基本概…
第95天:StringIO & BytesIO
by 吴刀钓鱼 上一篇中我们介绍了文件的基本读写操作,但是很多时候数据的读写并不一定都是在文件中,我们也可以在内存中读写数据,因此引出我们今天的主要内容,即 StringIO 和 BytesIO,让你学会在内存中进行数据的基本读写操作。 ## 1 前言-内存与硬盘 在正式介绍 StringIO 和 BytesIO 之前…
第94天:数据分析之 pandas 初步
by 轩辕御龙 # 数据分析之 pandas 初步 是一个常用的第三方 Python 库,提供快速灵活的数据处理功能,也是进行数据分析的有力工具。我们的口号是:“更快,更高,更强”(皮一下)。啊,当然,现在经常有很多库一上来就要“吊打”,咱们还是不必在意。 尤其擅长处理以下数据: 以下几种数据尤其适合用进行处理: - …
第93天:文件读写
by 吴刀钓鱼 文件操作中最基本的当然属于文件的读写操作。当我们利用爬虫抓取到一堆数据时,就需要进行文件写操作,将数据写入到文件当中;当我们需要对抓取到的文件内容进行筛选,获取有效信息时,需要对文件进行读操作。本文将介绍文件操作的一些基本内容,助您更高效的处理文件。 ## 1 打开和关闭文件 文件的打开模式多种多样,就…
第92天:Python Matplotlib 进阶操作
by 潮汐 本章节主要是 Matplotlib 和 NumPy 实际操作案例讲解,matplotlib 通常与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案,除此之外,它还可以和其他图形工具包搭配使用。前提是在现在的环境中已经安装了 Numpy 模块,Numpy 安装详情请参考 这一节将从简到繁用…
第91天:Python matplotlib introduction
by 潮汐 今天我们一起来探究 Python 中一个很有趣的模块--Matplotlib,Matplotlib 是一个非常优秀的 Python 2D 绘图库,只要给出符合格式的数据,通过 Matplotlib 就可以方便地制作数据图。 ### 一、初识 Matplotlib - Matplotlib 以多种硬拷贝格式和…
第90天:NumPy 位运算与算术函数
by 潮汐 今天的文章和大家聊聊 Python Numpy 位运算和算术函数,本文将分两部分做详细描述。 ## Numpy 位运算 NumPy包中,可用位操作函数进行位运算,以 开头的函数是位运算函数。 NumPy 位运算函数如下: | 函数 | 描述 | | --- | --- | | bitwise_and | 对…
第89天:NumPy 排序和筛选函数
by 闲欢 对于数据分析来说,排序和筛选数据是不可或缺的一部分内容。NumPy 也提供了多种排序和筛选函数,本文就来介绍一下 NumPy 常见的排序和筛选函数。 ## 排序函数 NumPy 中提供了排序相关的函数。排序函数已经帮助我们实现了不同的排序算法,我们只需要拿来直接使用就行。每个排序算法的执行速度,时间复杂度,…
第88天: OAuth2.0 客户端实战
by 太阳雪 上一次课程,我们了解了 OAuth 认证是怎么回事,以及了解了四种认证方式,今天我们将以 Github 为例,了解一下如何用 Flask 第三方应用 在之前的介绍 JWT 的时候,了解过 Authlib 库,Authlib 是集 JWT、OAuth1.0、OAuth2.0 于一身的终极 Python 认证…
第87天: OAuth2.0 简介
by 太阳雪 我们经常看到或者用到一些可以使用微博、微信、支付宝等账号登录的应用,还有一些微博助手、微信公众号助手、客户端之类的东西,这些是怎么做的呢,背后的原理是什么呢?为什么公众号配置起来那么繁琐呢?什么是 access token、refresh token?等等,今天我们来了解下开放式授权模式 OAuth 随着…
第86天:Python SQLAlchemy
by 程序员野客 ## 1 简介 SQLAlchemy 是一个使用 Python 实现的 ORM 框架,它的设计理念是:SQL 数据库的量级和性能比对象集合重要,对象集合的抽象比表和行重要;它采用了类似于 Java 里 Hibernate 的数据映射模型;它的目标是提供能兼容众多数据库(如:SQLite、MySQL、P…
第85天:NumPy 统计函数
by 闲欢 数学统计在我们的程序当中特别是数据分析当中是必不可少的一部分,本文就来介绍一下 NumPy 常见的统计函数。 ## 最大值与最小值 ### numpy.amin() > 用于计算数组中的元素沿指定轴的最小值。 可以通过 axis 参数传入坐标轴来指定统计的轴,当指定 axis 时,axis 的范围为 nda…
第84天:NumPy 数学函数
by 闲欢 本文向大家介绍一下 NumPy 常见的数学函数。 ## NumPy 三角函数 三角函数是基本初等函数之一,是以角度(数学上最常用弧度制,下同)为自变量,角度对应任意角终边与单位圆交点坐标或其比值为因变量的函数。三角函数一般用于计算三角形中未知长度的边和未知的角度,在导航、工程学以及物理学方面都有广泛的用途。…
第83天:NumPy 字符串操作
by 闲欢 本文向大家介绍一下 NumPy 的常见字符串函数。 ## NumPy 字符串函数 以下函数用于对 dtype 为 numpy.string_ 或 numpy.unicode_ 的数组执行向量化字符串操作。 它们基于 Python 内置库中的标准字符串函数。 这些函数在字符数组类(numpy.char)中定义…
第82天: JWT 简介
by 太阳雪 在之前的课程中,介绍过 Flask-Login 框架,它是基于 Session 和 Cookie 技术来实现用户授权和验证的,不过 Session 有很多的局限性,这一节介绍一种基于 token 的验证方式 —— JWT (JSON Web Token),除了对 JWT 的概念讲解之外,还有在 Flask…
第81天:NumPy Ndarray_Object&NumPy_Data_Type
by 潮汐 上一篇文章中我们详细介绍了 NumPy 的功能及用途,本章节着重介绍 NumPy 一个神奇的对象 Ndarray 以及 NumPy 数据类型,包括两者的用途,接下来就开启神奇之旅吧。 标准安装的 Python 中用列表 (list) 保存一组值,它可以用来当作数组使用,不过由于列表的元素可以是任何对象,因此…
第80天:Python-Operation_MySQL
by 潮汐 本章节Python 操作 MySQL 数据库需要是使用到 PyMySQL 驱动 - PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2 中则使用 mysqldb。 - PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-P…
第79天:数据分析之 Numpy 初步
by 轩辕御龙 # 数据分析之 Numpy 初步 NumPy 是 Python 中一个基本的科学计算库,包含以下特性: - 强大的 **N 维数组**对象; - 精巧的**广播**(broadcasting)功能; - C/C++ 和 Fortran 代码集成工具; - 实用的线性代数、傅里叶变换、随机数生成等功能。 …
第78天: Python 操作 MongoDB 数据库介绍
by 極光 MongoDB 是一款面向文档型的 数据库,是一个基于分布式文件存储的开源的非关系型数据库系统,其内容是以 形式存储,结构不固定,它的字段值可以包含其他文档、数组和文档数组等。其采用的 (二进制 JSON )的数据结构,可以提高存储和扫描效率,但空间开销会有些大。今天就为大家简单介绍下在 Python 中使…
第77天:Python 操作 SQLite
by 程序员野客 ## 1 简介 SQLite 是一种轻型嵌入式关系型数据库,它包含在一个相对小的 C 库中。SQLite 占用资源低,处理速度快,它支持 Windows、Linux、Unix 等多种主流操作系统,支持 Python、Java、C# 等多种语言,目前的版本已经发展到了 SQLite3。 SQLite 是…
第76天:Scrapy 模拟登陆
by 闲欢 想爬取网站数据?先登录网站!对于大多数大型网站来说,想要爬取他们的数据,第一道门槛就是登录网站。下面请跟随我的步伐来学习如何模拟登陆网站。 ## 为什么进行模拟登陆? 互联网上的网站分两种:需要登录和不需要登录。(这是一句废话!) 那么,对于不需要登录的网站,我们直接获取数据即可,简单省事。而对于需要登录才…
第75天: Python 操作 Redis 数据库介绍
by 極光 Redis 作为常用的 NoSql 数据库,主要用于缓存数据,提高数据读取效率,那在 Python 中应该如果连接和操作 Redis 呢?今天就为大家简单介绍下,在 Python 中操作 Redis 常用命令。 ## 安装 redis 首先还是需要先安装 redis 模块,使用如下命令: ## 创建 red…
第74天:Python newspaper 框架
by 程序员野客 ## 1 简介 newspaper 框架是一个主要用来提取新闻内容及分析的 Python 爬虫框架,更确切的说,newspaper 是一个 Python 库,但这个库由第三方开发。 newspaper 主要具有如下几个特点: * 比较简洁 * 速度较快 * 支持多线程 * 支持多语言 GitHub 链…
第73天: itchat 微信机器人简介
by 極光 今天来为大家介绍一个有意思的开源微信个人号 API,它是基于 Python 调用微信网页版实现,只需要编写少量的代码,就可以完成一个能够处理所有信息的微信机器人。那它到底能实现了什么功能,接下来为大家一一介绍。 ## 安装 想要使用它,首先得安装 itchat 模块: ## 登陆 想要通过 itchat 操…
第72天: PySpider框架的使用
by 某某白米饭 ## Pysider Pysider 是一个国人用 Python 编写的、带有强大的 WebUI 的网络爬虫系统,它支持多种数据库、任务监控、项目管理、结果查看、URL去重等强大的功能。 ### 安装 ### 运行 命令行运行 运行成功后,在浏览器地址中输入 进入 Pyspider 控制台 ### 从…
第71天: Python Scrapy 项目实战
by 戴景波 ## 爬虫编写流程 首先明确 Python 爬虫代码编写的流程:先直接打开网页,找到你想要的数据,就是走一遍流程。比如这个项目我要爬取历史某一天所有比赛的赔率数据、每场比赛的比赛结果等。 那么我就先打开这个网址:https://live.leisu.com/wanchang?date=20190606 然…
第70天: Python Scrapy 爬虫框架及搭建
by 戴景波 ## Scrapy 框架实现爬虫的基本原理 Scrapy 就是封装好的框架,你可以专心编写爬虫的核心逻辑,无需自己编写与爬虫逻辑无关的代码,套用这个框架就可以实现以上功能——爬取到想要的数据。 Scrapy是一个Python实现的轻量级爬虫框架,它借助Twisted实现异步抓取。 Scrapy 是一个为了…
第69天:Selenium详解
by 闲欢 Selenium 环境配置好之后,我们就可以使用 Selenium 来操作浏览器,做一些我们想做的事情了。在我们爬取网页过程中,经常发现我们想要获得的数据并不能简单的通过解析 HTML 代码获取,这些数据是通过 AJAX 异步加载方式或经过 JS 渲染后才呈现在页面上显示出来。这种情况下我们就可以使用 Se…
第68天:Selenium 环境配置
by 闲欢 如果你做过 Web 测试的工作,那么你应该明白 Web 测试中最重要的一部分工作就是自动化测试。自动化测试,顾名思义就是让浏览器自动运行,而无需手动操作。这和我们爬虫工作原理有些相似,我们爬虫也需要让浏览器运行网址来获取我们需要的内容。所以我们今天来介绍一款自动化测试工具—— Selenium ,并将它运用…
第67天:PyQuery 详解
by 闲欢 PyQuery 库是一个非常强大又灵活的网页解析库,如果你有前端开发经验,那么你应该接触过 jQuery ,那么 PyQuery 就是你非常绝佳的选择,PyQuery 是 Python 仿照 jQuery 的严格实现,语法与 jQuery 几乎完全相同。 ## 安装 跟安装其他库一样: 安装了之后,在程序里…
第66天:爬虫利器 Beautiful Soup 之搜索文档
by 豆豆 ## Beautiful Soup 简介 Beautiful Soup 是一个可以从 HTML 或 XML 文件中提取数据的 Python 库,它提供了一些简单的操作方式来帮助你处理文档导航,查找,修改文档等繁琐的工作。因为使用简单,所以 Beautiful Soup 会帮你节省不少的工作时间。 上一篇文章…
第65天:爬虫利器 Beautiful Soup 之遍历文档
by 豆豆 ## Beautiful Soup 简介 Beautiful Soup 是一个可以从 HTML 或 XML 文件中提取数据的 Python 库,它提供了一些简单的操作方式来帮助你处理文档导航,查找,修改文档等繁琐的工作。因为使用简单,所以 Beautiful Soup 会帮你节省不少的工作时间。 ## Be…
第64天: XPath 和 lxml
by 某某白米饭 # XPath 和 lxml XPath 全称为 Xml Path Language,即 Xml 路径语言,是一种在 Xml 文档中查找信息的语言。它提供了非常简洁的路径选择表达式,几乎所有的节点定位都可以用它来选择。 XPath 可以用于 Xml 和 Html,在爬虫中经常使用 XPath 获取 H…
第63天:正则表达式
by 某某白米饭 正则表达式是一个特殊的字符串序列、一种模式,用来判断字符串是否符合这种模式,如:判断邮件地址是否有 符号,判断手机号是否正确等待。 ### 基本语法 在正则表达式中,可以使用 匹配数字, 匹配数字和子母, 可以匹配除了换行符之外的任意字符, 匹配空白字符 可以匹配 、 可以匹配 、 可以匹配 、、 上…
第62天:HTTP 入门
by 轩辕御龙 # HTTP 入门 HTTP,全称“**超文本传输协议**(HyperText Transfer Protocol)”,是构建我们今天所熟知的万维网的基础,也是我们在访问互联网时最常见的一种协议类型。 我们在打开一个网页的时候通常都会注意到网址的前面有一个统一的标识“http://”(或“https:/…
第61天:Requests的高级用法
by 闲欢 上一篇我们介绍了 Requests 库的基本用法,学会之后大家就可以应付一般的请求了。这一篇我们接着介绍 Requests 的高级用法,以便应付一些棘手的问题。 ## 会话维持 在 requests 中,直接使用 get() 或 post() 方法确实可以做到模拟网页的请求,但是这实际上是两个不同的会话,相…
第60天:Requests的基本用法
by 闲欢 之前我们用了 urllib 库,这个作为入门的工具还是不错的,对了解一些爬虫的基本理念,掌握爬虫爬取的流程有所帮助。入门之后,我们就需要学习一些更加高级的内容和工具来方便我们的爬取。那么这一节来简单介绍一下 requests 库的基本用法。 ## 介绍 首先让我们来看 Requests 官方的介绍: 翻译过…
第59天: Web 开发 Django 模型
by 极光 今天来为大家介绍 Django 框架的模型部分,模型是真实数据的简单明确的描述,它包含了储存的数据所必要的字段和行为,Django 遵循 DRY Principle 。它的目标是你只需要定义数据模型,然后其它的杂七杂八代码你都不用关心,它们会自动从模型生成。 ## Django 模型 Django 中模型是…
第58天: Web 开发 Django 入门
by 极光 今天来为大家介绍 Python 另一个 Web 开发框架 Django,它是一个基于 Python 定制的开源 Web 应用框架,最早源于一个在线新闻 Web 网站,后于2005年开源。Django 的功能大而全,它提供的一站式解决的思路,能让开发者不用在开发之前就在选择应用的基础设施上花费大量时间。它有很…
第57天: Flask 用户登录 Flask-Login
by 太阳雪 用户登录功能是 Web 系统一个基本功能,是为用户提供更好服务的基础,在 Flask 框架中怎么做用户登录功能呢?今天我们学习一下 Flask 的用户登录组件 Python 之所以如此强大和流行,除了本身易于学习和功能丰富之外,最重要的是因为各种类库和组件,可以说没有 Python 做不了的事情,只有不知…
第56天:urllib 包基本使用
urllib 是一个 python 内置包,不需要额外安装即可使用,包里面包含了以下几个用来处理 url 的模块: - urllib.request,用来打开和读取 url,意思就是可以用它来模拟发送请求,就像在浏览器里输入网址然后敲击回车一样,获取网页响应内容。 - urllib.error,用来处理 urllib.…
第55天:爬虫的介绍
by 闲欢 作为程序员,相信大家对“爬虫”这个词并不陌生,身边常常会有人提这个词,在不了解它的人眼中,会觉得这个技术很高端很神秘。不用着急,我们的爬虫系列就是带你去揭开它的神秘面纱,探寻它真实的面目。 ## 爬虫是什么 网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。…
第47天: Web 开发 RESTful
by 某某白米饭 ## Event(事件) Event 是一个事务处理的机制,用于通知多个异步任务某个事件已经发生了。比如在交通红绿灯中多辆在行驶中的汽车可以表示成程序中的多个异步任务,红绿灯的亮起可以表示成一个通知,红灯通知这个汽车的行驶任务必须停止了,绿灯通知这个汽车的行驶任务可以继续驾驶了。 Event 管理着一…
第53天: Python 线程池
by 豆豆 大家都知道当任务过多,任务量过大时如果想提高效率的一个最简单的方法就是用多线程去处理,比如爬取上万个网页中的特定数据,以及将爬取数据和清洗数据的工作交给不同的线程去处理,也就是生产者消费者模式,都是典型的多线程使用场景。 那是不是意味着线程数量越多,程序的执行效率就越快呢。 显然不是。线程也是一个对象,是需…
第52天:python multiprocessing模块
by 千阳 本节主要介绍 multiprocessing 多进程模块,由于 threading 多线程模块无法充分利用电脑的多核优势,而在实际开发中会对系统性能有较高的要求,就需要使用多进程来充分利用多核 cpu 的资源,下面详细介绍 Python 中的 multiprocessing。 multiprocessing…
第51天: Python Queue 入门
by 豆豆 # Python Queue 入门 ## Queue 简介 Queue 叫队列,是数据结构中的一种,基本上所有成熟的编程语言都内置了对 Queue 的支持。 Python 中的 Queue 模块实现了多生产者和多消费者模型,当需要在多线程编程中非常实用。而且该模块中的 Queue 类实现了锁原语,不需要再考…
第50天: Python Queue 进阶用法
by 豆豆 上一篇文章简单介绍了 Queue 的入门操作,今天我们学习下 Queue 的进阶用法。 ## 生产者消费者模型 在并发编程中,比如爬虫,有的线程负责爬取数据,有的线程负责对爬取到的数据做处理(清洗、分类和入库)。假如他们是直接交互的,那么当二者的速度不匹配时势必出现等待现象,这也就产生了资源的浪费。 抽象是…
第49天:Python 多线程之 threading 模块
by 程序员野客 在之前的文章中,我们已经介绍了 Python 通过 _thread 和 threading 模块提供了对多线程的支持,threading 模块兼具了 _thread 模块的现有功能,又扩展了一些新的功能,具有十分丰富的线程操作功能,本节我们就来详细学习一下 threading 模块。 ## 1 创建线…
第48天:初识 Python 多线程
by 程序员野客 我们知道,多线程与单线程相比,可以提高 CPU 利用率,加快程序的响应速度。 单线程是按顺序执行的,比如用单线程执行如下操作: 总共用时 28 秒,如果开启两条线程来执行上面的操作(假设处理器为多核 CPU),如下所示: 只需 15 秒就可完成。 ## 1 线程与进程 ### 1.1 简介 说到线程就…
第46天: Flask数据持久化
by 太阳雪 Web 应用离不开数据存储,今天就来学习下 Flask 中如何与数据库交互,最后我们将做一个提交的实例 Flask 中最方便用的数据库框架是 flask_sqlalchamy,是对 SQLAlchamy 在 Flask 中的扩展, SQLAlchemy 是一个 Python 数据库工具(ORM,即对象关系…
第47天: Web 开发 RESTful
by 太阳雪 现在单页 Web 项目很流行,使用各种 Js 框架,通过 Ajax 和服务器的 Api 进行交互,实现类似原生 app 效果,很酷,对 Flask 来说小菜一碟,是时候了解下 Flask-RESTful 了 开始前先了解下 RESTful,阮一峰老师有这样的解释: >网络应用程序,分为前端和后端两个部分。…
第43天:python filecmp&difflib
by 千阳 本节主要介绍两个 Python 中常用于比较数据的模块,一个是 filecmp 模块,另一个是 difflib 模块。其中,前者主要用于比较文件及目录,后者主要用于比较序列的类和函数,下面具体介绍两者的区别。 ## filecmp 模块 filecmp 模块作为 Python 提供的标准库之一,无需安装,模…
第44天: Web 开发 Bootstrap
by 太阳雪 前面学习了 Flask 框架的基本用法,以及模板引擎 Jinja2,按理说可以开始自己的 Web 之旅了,不过在启程之前,还有个重要的武器需要了解一下,就是著名的 Bootstrap 框架和 Flask 的结合,这将大大提高开发 Web 应用的效率。 ## 简介 Bootstrap 是 Twitter 公…
第42天: paramiko模块
by 某某白米饭 ## paramiko 模块 paramiko 是一个用 Python 语言编写的、遵循 SSH2 协议、支持以加密和认证方式进行连接远程服务器的模块。改模块可以对远程服务器进行一些命令或文件操作。 ### 安装 使用 pip3 安装 paramiko 模块 ### 连接远程服务器 paramiko …
第41天: operator模块
by 某某白米饭 ## operator 模块 operator 模块提供了一套与 Python 的内置运算符对应的高效率函数。 ### 函数的种类 函数包含的种类有:对象的比较运算、逻辑运算、数学运算和序列运算 ### 比较运算 运算 | 函数 | 语法 -- | -- | -- 小于 | lt(a, b) | a …
第40天: Python statistics 模块
by 豆豆 ## 简介 随着互联网的普及,整个互联网每天都会产生海量的数据,如何有效地处理这些数据成为了互联网人的必备技能,而 Python 内置的 statistics 模块提供了基本的数据统计操作。 ## 常用功能 ### mean(data) mean(data) 用于求给定序列或者迭代器的算术平均数。 ### …
第39天: Python itertools 模块
by 豆豆 ## 简介 在 Python 中,迭代器是一种非常好用的数据结构,其最大的优势就是延迟生成,按需使用,从而大大提高程序的运行效率。而 itertools 作为 Python 的内置模块,就为我们提供了一套非常有用的用于操作可迭代对象的函数。 ## 常用功能 ### count 功能详解 count(star…
第38天:Python decimal 模块
by 程序员野客 在我们开发工作中浮点类型的使用还是比较普遍的,对于一些涉及资金金额的计算更是不能有丝毫误差,Python 的 decimal 模块为浮点型精确计算提供了支持。 ## 1 简介 decimal 模块设计以十进制数、算术上下文和信号这三个概念为中心。十进制数是不可变的,它有一个符号,系数数字和一个指数,为…
第36天:Python calendar 模块
> by 程序员野客 calendar 是与日历相关的模块,该模块定义了很多类型,主要包括:Calendar、TextCalendar、HTMLCalendar,其中 Calendar 是 TextCalendar 和 HTMLCalendar 的基类,这些类有着十分丰富的日历处理方法。 ## 1 calendar 模…
第37天:Python math 模块
by 程序员野客 我们知道 Python 有很多运算符可以进行数学运算,如果是简单的问题还好说,但是要处理一些相对复杂的问题也要我们自己一行一行手动的来编写吗?答案当然不是,Python 提供了 math 模块对一些数学运算提供了支持。 ## 1 简介 math 模块提供了对 C 标准定义的数学函数的访问,但该模块并不…
第35天:pathlib 模块
> by 吴刀钓鱼 pathlib 模块提供了表示文件系统路径的类,可适用于不同的操作系统。使用 pathlib 模块,相比于 os 模块可以写出更简洁,易读的代码。pathlib 模块中的 Path 类继承自 PurePath,对 PurePath 中的部分方法进行了重载,相比于 os.path 有更高的抽象级别。本…
第34天:python json&pickle
> by 千阳 在日常开发中,对数据进行序列化和反序列化是常见的数据操作,Python提供了两个模块方便开发者实现数据的序列化操作,即 json 模块和 pickle 模块。这两个模块主要区别如下: - json 是一个文本序列化格式,而 pickle 是一个二进制序列化格式; - json 是我们可以直观阅读的,而 …
第33天:Python 枚举
> by 小小摸虾 是一组绑定到唯一常数值的符号名称,并且具备可迭代性和可比较性的特性。我们可以使用 创建具有良好定义的标识符,而不是直接使用魔法字符串或整数,也便于开发工程师的代码维护。 ## 创建枚举 我们可以使用 语法创建一个枚举类型,方便我们进行读写,另外,根据函数 的描述定义,我们可以创建一个 的子类,如下:…
第32天:Python logging 模块详解
> by 潮汐 > This module defines functions and classes which implement a flexible event logging system for applications and libraries. Python logging 模块定义了为应用程序和库实…
第31天:python random
> by 千阳 在本节中继续介绍 Python 提供的常用模块 random 模块,它的主要功能是用来生成伪随机数的。 ## random 模块 Python 提供的 random 模块实现了各种分布式的伪随机数生成器。该模块主要包含以下几种常用的函数。 ### random()函数 函数可以随机生成一个[0,1)的浮…
第30天: Python collections 模块
> by 豆豆 ## 1.简介 collections 是 python 的内置模块,提供了很多方便且高性能的关于集合的操作,掌握这些知识有助于提高代码的性能和可读性。 ## 2.常用功能 ### 2.1 namedtuple 功能详解 namedtuple() 返回一个新的元组子类,且规定了元组的元素的个数,同时除了…
第29天:Python queue 模块详解
> by 吴刀钓鱼 queue 模块即队列,特别适合处理信息在多个线程间安全交换的多线程程序中。下面我们对 queue 模块进行一个详细的使用介绍。 ## 1 queue 模块定义的类和异常 queue 模块定义了以下四种不同类型的队列,它们之间的区别在于数据入队列之后出队列的顺序不同。 ### 1.1 queue.Q…
第26天:Python 标准库之 os 模块详解
> by 轩辕御龙 # Python os 模块详解 ## 1. 简介 就是“operating system”的缩写,顾名思义,模块提供的就是各种 Python 程序与操作系统进行交互的接口。通过使用模块,一方面可以方便地与操作系统进行交互,另一方面页可以极大增强代码的可移植性。如果该模块中相关功能出错,会抛出异常或…
第27天:Python shutil 模块
> by 程序员野客 shutil 可以看作 sh + util,即 shell 工具之意,该模块提供了一些针对文件和文件夹的高级操作,如:拷贝、删除、移动等,shutil 模块是对 os 模块的补充。 ## 1 文件和文件夹操作 **1)copyfileobj(fsrc, fdst, length=16*1024)*…
第28天:Python 标准库之 sys 模块详解
> by 轩辕御龙 # Python sys 模块详解 ## 1. 简介 “sys”即“system”,“系统”之意。该模块提供了一些接口,用于访问 Python 解释器自身使用和维护的变量,同时模块中还提供了一部分函数,可以与解释器进行比较深度的交互。 ## 2. 常用功能 ### 2.1 sys.argv “arg…
第25天:Python datetime&time
> by 千阳 在前面的章节中已经介绍了一些 Python 常用的模块,本节再介绍两个模块 datetime 模块和 time 模块,这两个模块主要用于转换日期格式的功能。 ## datetime模块 datetime 模块是 Python 内置的功能模块,它可以实现对日期的算数运算,以指定的方式格式化日期。datet…
第24天:Python 标准库概览2
> by 潮汐 - Python 的标准库非常广泛,提供了各种各样的工具。该库包含内置模块(用C编写),可以访问系统功能,例如 Python 程序员无法访问的文件 I / O,以及用 Python 编写的模块,这些模块为许多问题提供标准化解决方案。其中一些模块明确地旨在通过将平台特定的内容抽象为平台中立的 API 来鼓…
第23天:Python 标准库概览1
> by 潮汐 - Python 的标准库非常广泛,提供了各种各样的工具。该库包含内置模块(用C编写),可以访问系统功能,例如 Python 程序员无法访问的文件 I / O,以及用 Python 编写的模块,这些模块为许多问题提供标准化解决方案。其中一些模块明确地旨在通过将平台特定的内容抽象为平台中立的 API 来鼓…
第22天:Python NameSpace&Scope
> by 潮汐 命名空间定义了在某个作用域内变量名和绑定值之间的对应关系,命名空间是键值对的集合,变量名与值是一一对应关系。作用域定义了命名空间中的变量能够在多大范围内起作用。 命名空间在 Python 解释器中是以字典的形式存在的,是以一种可以看得见摸得着的实体存在的。作用域是 Python 解释器定义的一种规则,该…
第20天:Python 之装饰器
> by 轩辕御龙 # Python 之装饰器 ## 1. 概念介绍 **装饰器**(decorator),又称“装饰函数”,即一种返回值也是函数的函数,可以称之为“函数的函数”。其目的是在不对现有函数进行修改的情况下,实现额外的功能。最基本的理念来自于一种被称为“装饰模式”的设计模式。 在 Python 中,装饰器属…
第19天:Python 之迭代器
> by 轩辕御龙 # Python 之迭代器 ## 1 概念引入 在之前的教程中,我们已经接触过一些典型的语句,比如: 通过简单地使用和两个关键字,我们可以很轻松地实现在 C 语言中繁琐的遍历操作。相比较而言,C 语言中要实现相同的功能,需要这样写(假设存在整型数组): 显而易见,在遍历元素的操作上,Python 的…
第18天:Python 高阶函数
> by 小小摸虾 函数式编程现在逐渐被广大开发群体接受,越来越多的开发者门开始使用这种优雅的开发模式,而我们使用函数式编程最主要的是需要清楚: 1. 什么是高阶函数(**Higher-order Functions**)? 2. Python 中高阶函数有哪些?要怎么用? ## 高阶函数概念 在函数式编程中,我们可以…
第17天:Python 函数之参数
> by 小小摸虾 定义一个函数非常简单,但是怎么定义一个函数,需要什么参数,怎么去调用却是我们需要去思考的问题。 如同大多数语言一样(如 Java),Python 也提供了多种参数的设定(如:默认值参数、关键字参数、形参等)。使用这些参数定义出来的代码,可以让我们适应不同的开放场景,也能简化我们的代码开发工作。 ##…
第16天:Python 错误和异常
> by 闲欢 作为 Python 初学者,在刚学习 Python 编程时,经常会看到一些报错信息,这些报错信息就是我们接下来要讲的错误和异常。 我们在执行程序语句的时候,经常会看到命令行输出报错信息,例如: 这种报错信息会阻止程序正常运行,也就是我们要介绍的错误和异常。 ## 错误 我们说的错误指的是Python的语…
第15天:python set
> by 潮汐 Python 也包含有 集合 类型。集合是由不重复元素组成的无序的集。它的基本用法包括成员检测和消除重复元素。集合对象也支持像 联合,交集,差集,对称差分等数学运算。 **集合结构如下:** ## 1、集合创建 可以使用大括号 { } 或者 set() 函数创建集合, **创建格式:** ==注意:创建…
第14天: Web 开发 Flask 介绍
> by 太阳雪 WEB 开发是现在程序必会的技能,因为大部分软件都以 Web 形式提供,及时制作后台开发,或者只做前台开发,也需要了解 Web 开发的概念和特点。 由于 Python 是解释性脚本语言,用来做 Web 开发非常适合,而且 Python 有上百中 Web 开发框架,以及成熟的模板技术,使得Web开发如虎…
第13天:Python 输入输出
> by 程序员野客 在前几篇文章中,我们其实已经接触了 Python 的输入输出功能,本篇文章中我们再来详细学习一下。 ## 1 格式化输出 Python 输出值的方式有两种:表达式语句和 print 函数(文件对象的输出使用 write 方法,标准文件输出可以参考 sys.stdout ,)。 如果我们想要将输出的…
第12天:Python 之引用
> by 轩辕御龙 # Python 之引用 ## 1. 引用简介与工具引入 Python 中对于变量的处理与 C 语言有着很大的不同,Python 中的变量具有一个特殊的属性:identity,即“身份标识”。这种特殊的属性也在很多地方被称为“引用”。 为了更加清晰地说明引用相关的问题,我们首先要介绍两个工具:一个P…
第11天:Python dictionary(字典)
> by 潮汐 Python 中的字典提供了一种灵活的访问和组织数据的方式 - 字典是由很多值组成的集合 - 字典的索引可以是不同的数据类型,同样也不止是整数,也有字符串 - 字典的索引被称为“键”,键及键所关联的值叫键值对(类似于 Java 中的 Map 集合) - 字典是另一种可变容器模型,且可存储任意类型对象。 …
第10天:Python 类与对象
> by 程序员野客 在刚接触编程时,我们就了解到编程界有两大思想:面向过程与面向对象,Python 就是一门面向对象的语言,如果你了解过面向对象的思想,自然就知道面向对象思想包含两个基本概念:类与对象 ,下面我们就一起详细学习下 Python 的类与对象吧! ## 1 基本概念 ### 1.1 面向对象 面向对象是一…
第9天:Python tupple(元组)
> by 沉默王二 Python 中的数据结构是通过某种方式组织在一起的数据元素的集合,这些数据元素可以是数字、字符、甚至可以是其他数据结构 在 Python 中,最基本的数据结构是序列(列表和元组),序列中的每个元素都有一个序号(元素的具体位置),这个序号叫索引,索引下标从 0 开始,以此类推...... - Pyt…
第8天:Python list
> by 潮汐 Python 中的数据结构是通过某种方式组织在一起的数据元素的集合,这些数据元素可以是数字、字符、甚至可以是其他数据结构 在 Python 中,最基本的数据结构是序列(列表和元组),序列中的每个元素都有一个序号(元素的具体位置),这个序号叫索引,索引下标从 0 开始,以此类推...... - 列表俗称是…
第7天:Python 数据结构--序列
> by 潮汐 Python 中的数据结构是通过某种方式组织在一起的数据元素的集合,这些数据元素可以是数字、字符、甚至可以是其他数据结构 在 Python 中,最基本的数据结构是序列(列表和元组),序列中的每个元素都有一个序号(元素的具体位置),这个序号叫索引,索引下标从 0 开始,以此类推...... 本文着重介绍 …
第6天:Python 模块和包
模块与包是任何大型程序的核心,就连 Python 安装程序本身也是一个包。 重点涉及有关模块和包的常用编程技术,例如如何组织包、把大型模块分割成多个文件、创建命名空间包。同时,也给出了让你自定义导入语句的秘籍。 先给大家解释一下模块、包、库之间的概念: - 模块(module)其实就是 py 文件,里面定义了一些函数、…
第5天:Python 函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段,所以我经常说函数是程序员规模化使用的基础。 函数能提高应用的模块性,和代码的重复利用率。在程序设计中,常将一些常用的功能模块编写成函数,放在函数库中供公共选用。善于利用函数,可以减少重复编写程序段的工作量。 ## 如何定义一个函数 定义一个函数有如下几个…
第4天:Python 流程控制
在编程的世界中,流程控制是程序员运行的基础,流程控制决定了程序按照什么样的方式去执行,本节给大家介绍 Python 流程控制相关语法。 ## if 语句 if 语句表示如何发生什么样的条件,执行什么样的逻辑。 语法: 示例: 可能会有零到多个 elif 部分,else 是可选的。关键字 ‘elif’ 是 ’else i…
第3天:Python 变量与数据类型
这篇文章我们学习 Python 变量与数据类型 ## 变量 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念,变量可以通过变量名访问。在 Python 中 变量命名规定,必须是大小写英文,数字和 下划线的组合,并且不能用数字开头。 变量命名规则: - 变量名只能是字母,数字和下划线的任意组合 - 变量名第…
第2天:Python 基础语法
Python 是一门脚本语言。 脚本语言是一种介乎于 HTML 和诸如 JAVA 、 Visual Basic 、 C++ 等编程语言之间的一种特殊的语言,尽管它更接近后者,但它却不具有编程语言复杂、严谨的语法和规则。 有一些脚本语言已经发生了变化,如 Python,perl 已经可以编译成中间代码然后执行,这样的脚本…
第1天:Python 环境搭建
其实 Python 已经是一个很老的编程语言了,到现在(2019年) Python 已经高龄 28 岁,比很多程序员的年龄都大。现在之所以这么流行和社区、人工智能的发展,有很大的关系。 千里之行始于足下,今天我们先来学习 Python 环境搭建。 ## Python 介绍 Python(英国发音:/ˈpaɪθən/ 美…
100 天 Python 学习计划
立个 Flag :我要通过 100 天的学习,系统掌握一门编程语言。 为什么要学习 Python 呢? 其实很早之前就用 Python 写过简单的爬虫,爬个网站数据或者图片什么的,确实挺好玩。但是一直没有去系统的学习过 Python,所以也就一直有点执念。 另外从我自己的感受来看,人类已经不能阻止 Python 的发展…
人生苦短,我用 Python
Python 的神奇发展史 ## 结缘 我了解 Python 最早来源于 Python 的一段格言,就下面一段话将我征服了,格言其实是对软件开发的哲学理念和设计思想,也是一个大佬对于软件的感悟,看了这段感悟我就在想,作者这么高的境界,那么搞出来的编程语言能差到哪里呢? >优美胜于丑陋,明晰胜于隐晦 简单胜于复杂,复杂胜…
python3爬取1024图片
这两年python特别火,火到博客园现在也是隔三差五的出现一些python的文章。各种开源软件、各种爬虫算法纷纷开路,作为互联网行业的IT狗自然看的我也是心痒痒,于是趁着这个雾霾横行的周末瞅了两眼,作为一名老司机觉得还是应该以练带学,1024在程序员界这么流行的网站,当然拿来先练一练。 python自称是以自然语言的视…