Python知识总结
文章平均质量分 91
该专栏并不是一个系统学习的专栏,而是会把工作中遇到常用的python知识进行总结。
SunnyRivers
在通信、游戏、互联网、新能源等不同行业从事过多年大数据开发相关工作,想通过博客和大家一起分享大数据技术带来的经验和乐趣。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
uv、uvx 与 pip 的区别
pip 是 Python 的标准包管理工具,用于从安装和管理软件包。它功能全面,支持通过 requirements.txt 文件管理项目依赖,是 Python 生态中最基础、最常用的工具。安装一个包:从 PyPI 安装最新版的 requests 库。安装指定版本:安装 flask 的 2.2.2 版本。从 requirements.txt 安装依赖:这是项目中非常常见的依赖安装方式。升级包:将 numpy 升级到最新可用版本。原创 2025-11-27 13:13:05 · 779 阅读 · 0 评论 -
一看就会的python线程池
实习生:为什么每次让写多线程任务,我总是暗自恐慌,然后去网上搜索相关的代码?我:你就没有真正搞清楚应该怎么写,也并没有真正的手动写过,所以你心里没底就会慌乱。实习生:那你能不能告诉我一种让我很快掌握,甚至能一次性记住一种写处理多线程代码模板。我:你可以直接线程池。原创 2025-11-20 14:52:54 · 332 阅读 · 0 评论 -
深入理解 Python 中的 with 语句:优雅地管理资源
with 语句是 Python 中实现确定性资源管理的核心工具。它的设计哲学是:“申请即拥有,离开即释放”。通过上下文管理器协议,我们可以轻松实现资源的安全获取与释放。文件读写数据库连接与事务管理线程锁(threading.Lock)临时目录/文件(tempfile)网络套接字自定义资源(如 GPU 显存、硬件设备)🧠 记住一句话:“凡是需要成对操作的资源(打开/关闭、加锁/解锁、连接/断开),都应该考虑使用 with。原创 2025-11-05 09:36:38 · 708 阅读 · 0 评论 -
Fastapi服务在高并发情况下大量超时问题排查
实习生写的服务在压测的时候出现大量超时失败,他第一想法就是要扩大容器节点,我说软件能解决的问题,千万别堆硬件,否则老板迟早被你霍霍完蛋。在一个异步方法中调用了一个同步方法,这就导致一个容器服务一次只能支持一个并发。我们直接用代码进行演示。诊断问题:首先确认哪个同步方法是瓶颈。优先选择异步库:如果是 I/O 操作(网络、数据库),首选方案二是使用对应的异步库(如 httpx, asyncpg)。这是性能最好、最符合异步哲学的方式。原创 2025-11-04 13:41:18 · 820 阅读 · 0 评论 -
工厂+注册表解决大量if else问题
... 还有更多写一个新的节点类修改 create_node 方法,加一个 elif 分支❌ 代码越来越长,容易出错❌ 修改核心类,风险高❌ 新人看不懂,维护成本高❌ 违反了“开闭原则”:对扩展开放,对修改关闭我想要的效果是:新增节点,只写代码,不改 Graph 类!实习生:你的想法很好,但是我不知道怎么实现。你可以把“装饰器”想象成一个 “给函数加功能的工具”。原创 2025-10-27 10:25:52 · 684 阅读 · 0 评论 -
Python推导式
实习生非常苦恼:python搞的这个列表推导式有什么用啊,好好的写个for循环多直观明了,非得搞得这么隐晦,让人看不懂。我:看不懂是原因是因为没有把推导式真正理解和应用起来,下面我们整理一下它的使用。推导式类型语法符号特点适用场景列表推导式[…]一次性生成完整列表数据不多,需要反复使用字典推导式{k:v…}生成键值对构建映射关系(如配置、缓存)集合推导式{…}自动去重提取唯一值(如标签、ID)生成器推导式(…)懒加载、省内存、只遍历一次处理大数据、流式计算。原创 2025-10-20 13:37:31 · 695 阅读 · 0 评论 -
通俗易懂理解python yield
旁边的实习生非常苦恼的问:我每次遇到yield都会困惑,看一次相关博客就感觉好像懂了,但是时间一长又完全记不清了,它不像方法中的return很常用,知道就是用来结束方法,并返回值的。我:那说明你每次看完博客,认为自己理解了,其实依然处于一知半解,这里需要你有思维上的一个转变。我们接下来,就用通俗易懂的案例帮你一次性彻底理解。原创 2025-10-17 17:28:41 · 602 阅读 · 0 评论 -
Python Pydantic库使用指南
在现代 Python 开发中,数据验证(data validation)和数据解析(parsing) 是构建健壮且可靠应用的重要组成部分。无论我们是在开发 API、处理配置文件,还是从各种来源获取数据,确保数据被正确地验证和解析都是至关重要的。这正是 Pydantic 发挥作用的地方。Pydantic 是一个利用 Python 类型注解(type annotations)来实现数据验证和配置管理的库,它提供了强大且易于使用的工具,帮助我们确保数据格式正确。原创 2025-09-23 12:48:47 · 1038 阅读 · 0 评论 -
Python 中的 typing.Annotated:全面指南
Python 是一种动态类型语言,这意味着变量的类型是在运行时才确定的。虽然这种灵活性带来了便利,但在大型项目中,它也可能导致代码难以理解和维护。为了改善这一点,Python 3.5 引入了 typing 模块,为 Python 增加了静态类型检查的能力。typing 模块中的一个强大功能是 typing.Annotated。它允许你在类型注解上附加额外的元数据(metadata),从而使代码更具自解释性,并提升工具(如类型检查器、IDE)的支持能力。原创 2025-09-22 13:34:02 · 1146 阅读 · 0 评论 -
通俗易懂掌握Python进程、线程和协程
对于初学者很容易对进程、线程和协程的概念以及如何写出相关代码上面感到有些困惑,本篇博客我将用最通俗易懂的方式和案例,带你理解进程、线程和协程这三个核心概念。我们从一个生活化的比喻开始,然后分别深入,并提供可以直接套用的“模板代码”。进程:多任务,资源不共享,稳定线程:多任务,资源共享,需要锁协程:单线程内多任务,协作式,高效方式优点缺点适用场景多进程利用多核CPU,稳定性高(一个崩了不影响别人)资源开销最大,创建和切换慢计算密集型(压缩、加密、科学计算)原创 2025-08-25 09:52:42 · 800 阅读 · 0 评论 -
pip离线安装各种依赖包
我们在python开发中经常需要用pip安装各种各样的依赖包,但是很多生产场景,由于处于安全考虑,都不能直接访问外网,这个时候就得使用pip离线安装相关的依赖包了,本篇博客就来详细总结一下离线安装各种包的操作。原创 2025-01-23 09:43:58 · 1365 阅读 · 0 评论 -
Python调用Java代码
JPype 是一个允许 Python 与 Java 之间互操作的模块。它使得 Python 能够启动 Java 虚拟机(JVM),从而可以直接调用 Java 类库,甚至执行任意的 Java 代码。这对于需要结合 Python 的灵活性和 Java 强大类库的应用来说是非常有用的。本文将介绍如何安装 JPype,并演示一些使用 JPype 来调用 Java 代码的基本例子。原创 2025-01-03 09:46:32 · 588 阅读 · 0 评论 -
Python sys模块详解
这是我项目的层级:print_b()我:这个与windows系统没关系,你放在任何系统你不告诉a.py模块在哪里找package2包,它都找不到。实习生:啥意思啊?你就直接告诉我怎么解决这个bug吧。我:用sys模块的path方法就能解决。实习生:好,我搜一下,试试实习生:没什么用,依然报上面的错。import sysprint_b()我:你犯了两个错误,第一你代码第一行就这几导入package2,这个时候解释器还没有把这个路径传入到系统路径中,依然无法识别;原创 2023-07-20 11:12:00 · 780 阅读 · 0 评论 -
探索Python虚拟环境:优化代码开发与管理的利器
Python虚拟环境是一个强大而灵活的工具,它可以帮助我们管理项目的依赖包、隔离不同项目的开发环境,并优化代码的开发过程。本文将介绍Python虚拟环境的概念、用法和好处,并引导您逐步使用它来提高代码开发的效率。Python虚拟环境是Python解释器的一个独立副本,它可以在同一台计算机上同时存在多个独立的Python开发环境。每个虚拟环境都有自己独立的Python解释器和安装的第三方包,这样可以实现项目之间的隔离。原创 2023-07-05 15:49:58 · 1411 阅读 · 0 评论 -
cx_Oracle和oracledb的爱恨情仇
实习生:我要用python访问oracle,我究竟该用哪个库啊,网上搜的有两个,一个是cx_Oracle另一个是oracledb,这两个有什么区别?我:话说那是2022年5月一个阴云密布的日子,甲骨文发布了python oracledb驱动程序。与早期的cx_Oracle驱动程序(创建于1999年)一样,该模块允许Python应用程序连接到Oracle数据库,执行SQL和PL/SQL语句,并执行SODA操作。这两个驱动程序都实现了Python数据库API规范2.0版,有很多扩展,只有一些必要的遗漏。原创 2023-05-18 10:23:27 · 2296 阅读 · 0 评论 -
Pandas如何检测None和Nan
前言使用pandas的时候经常需要检测空值,但每次感觉都判断不全或者感觉很困惑,因此这里做个简单的总结NoneNone是Python的特殊类型,NoneType对象,它只有一个值None.它不支持任何运算也没有任何内建方法。None和任何其他的数据类型比较永远返回False。None有自己的数据类型NoneType。你可以将None复制给任何变量,但是你不能创建其他NoneType对象。数据类型>>>type(None)<class 'NoneType'>Nan原创 2021-11-10 21:47:31 · 11495 阅读 · 0 评论 -
PyCharm中直接使用Anaconda已安装的库
前言实习生问:我咋看见你经常用Anaconda的jupyter notebook写python代码,为啥不用PyCharm呢?…对于我个人而言现在主要的工作是数据分析,挖掘,直接下载Anaconda安装后,就可以启动jupyter notebook,写代码也感觉比较方便但是之前用Django以及爬虫项目的时候,PyCharm优势就非常明显了较为详细的解释Jupyter notebook的特点:开源。支撑 30 种语言,包括一些数据科学领域很流行的语言,如 Python、R、scala、Ju原创 2020-05-27 15:49:23 · 1971 阅读 · 0 评论 -
PyCharm中导入数据分析库
虽然安装完Anaconda后,就可以直接使用数据分析库进行代码编写以及数据分析,但是有时候我还是习惯用PyCharm开发(毕竟有很多年的Android Studio 和IDEA的使用经验),如何在PyCharm中导入常用的数据分析库呢?(1)打开PyCharm,选择左下角的Terminal,更新pippython -m pip install -U pip(2)安装各种库命令python...原创 2018-12-16 21:00:51 · 6619 阅读 · 3 评论 -
第二章从收入的预测分析开始
前沿在数据分析与挖掘过程中,预测性或分类性问题往往是企业需要解决的主要问题,例如下一季度的营收可能会达到多少、什么样的用户可能会流失、一场营销活动中哪些用户的参与度会比较高等。本章将通过Python语言,以一个实战案例介绍分类性问题的解决步骤。通过本章的学习,你将会了解到基于Python的数据处理和建模方法:外部数据的读取;数据的预处理;数据的探索性分析;数据建模;模型预测与评估。...转载 2019-07-04 23:11:32 · 4103 阅读 · 3 评论 -
如何学习Python进行数据分析
前言之前一直做大数据方向的工作,用spark、flink、hive等等处理数据居多,语言方面一般使用scala、java很少用到python,但是不得不说如果想要从事算法方向的工作还是必须得把python用熟练了。下面整理一下学习的流程。Python基础这个很简单,但很重要,推荐看一下这本书的基础部分主要掌握知识点:常用的数据结构及对应方法三种控制流的使用字符串的常用处理方法正则...原创 2019-07-01 10:53:29 · 491 阅读 · 0 评论 -
第五章Python数据处理工具 ——Pandas
前言上一章向读者介绍了有关数值计算的numpy模块,通过numpy模块可以非常方便地调用各种常用的数学和统计函数。本章将介绍强大的数据处理模块Pandas,该模块可以帮助数据分析师轻松地解决数据的预处理问题,如数据类型的转换、缺失值的处理、描述性统计分析、数据的汇总等。通过本章内容的学习,读者将会掌握如下知识点,进而在数据处理过程中做到游刃有余,为后续的数据分析或机器学习做准备:两种重要的...转载 2019-07-18 09:44:14 · 2699 阅读 · 1 评论 -
第六章Python数据可视化
前言文不如字,字不如表,表不如图”,说的就是可视化的重要性。从事与数据相关的工作者经常会作一些总结或展望性的报告,如果报告中密密麻麻都是文字,相信听众或者老板一定会厌烦;如果报告中呈现的是大量的图形化结果,就会受到众人的喜爱,因为图形更加直观、醒目。本章内容的重点就是利用Python绘制常见的统计图形,例如条形图、饼图、直方图、折线图、散点图等,通过这些常用图形的展现,将复杂的数据简单化。这些...转载 2019-07-19 18:50:51 · 5426 阅读 · 13 评论 -
第七章线性回归预测模型
前言线性回归模型属于经典的统计学模型,该模型的应用场景是根据已知的变量(自变量)来预测某个连续的数值变量(因变量)。例如,餐厅根据每天的营业数据(包括菜谱价格、就餐人数、预定人数、特价菜折扣等)预测就餐规模或营业额;网站根据访问的历史数据(包括新用户的注册量、老用户的活跃度、网页内容的更新频率等)预测用户的支付转化率;医院根据患者的病历数据(如体检指标、药物服用情况、平时的饮食习惯等)预测某种疾......转载 2019-07-29 09:22:15 · 38807 阅读 · 16 评论 -
第一章数据分析与挖掘概述
前言马云曾说“中国正迎来从IT时代到DT时代的变革”,DT就是大数据时代。随着移动互联网的发展,人们越来越感受到技术所带来的便捷,同时企业也将搜集到越来越多与用户相关的数据,包括用户的基本信息、交易记录、个人喜好、行为特征等。这些数据就相当于隐藏在地球深处的宝贵资源,企业都想从数据红利中分得一杯羹,进而推进企业重视并善加利用数据分析与挖掘相关的技术。本章将以概述的形式介绍数据分析和挖掘相关的内...转载 2019-07-04 22:34:01 · 3627 阅读 · 2 评论 -
第四章Python数值计算工具 ——Numpy
前言尽管在第3章中介绍了有关存储数据的列表对象,但是其无法直接参与数值运算(虽然可以使用加法和乘法,但分别代表列表元素的增加和重复)。本章将介绍另一种非常有用的数据结构,那就是数组,通过数组可以实现各种常见的数学运算,而且基于数组的运算,也是非常高效的。 本章的重点是讲解有关Python数值运算的numpy模块,通过numpy模块的学习,你将掌握如下几方面的内容,进而为后面章节的统计运算和机器...转载 2019-07-09 10:40:05 · 1478 阅读 · 0 评论 -
第三章Python快速入门
前言本章重点介绍有关Python的基础知识,这是每一个Python用户所要走过的必经之路,因为任何一段Python代码中都会包含一些基础知识。对于读者来说,只有基础夯实牢了,在之后的代码编程中才会轻松自如。如果你是从零开始的Python用户,希望能够认真学完本章的Python入门基础知识,相信本章内容对你将有很大的帮助;如果你是Python的中级或高级用户,通过本章内容的阅读,也许多少会有一点查...转载 2019-07-08 16:54:34 · 1776 阅读 · 1 评论 -
Python爬虫之(四)urllib库的高级用法
伪装自己有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作设置请求头其中User-Agent代表用的哪个请求的浏览器from urllib.request import urlopenfrom urllib.request import Requesturl = 'http://www.server.com/login...原创 2018-12-30 16:17:20 · 333 阅读 · 0 评论 -
Python爬虫之(三)urllib库
第一个爬虫程序怎样扒网页呢?其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是一幅幅优美的画面,但是其实是由浏览器解释才呈现出来的,实质它是一段HTML代码,加 JS、CSS,如果把网页比作一个人,那么HTML便是他的骨架,JS便是他的肌肉,CSS便是它的衣服。所以最重要的部分是存在于HTML中的,下面我们就写个例子来扒一个网页下来from urllib.request imp...原创 2018-12-30 00:15:18 · 312 阅读 · 0 评论 -
Python爬虫之(二)工具的使用
常用的工具pythonpycharm浏览器chrome火狐fiddlerfiddler的使用操作界面界面含义请求 (Request) 部分详解名称含义Headers显示客户端发送到服务器的 HTTP 请求的,header 显示为一个分级视图,包含了 Web 客户端信息、Cookie、传输状态等Textview显示 POST 请求...原创 2018-12-29 21:11:17 · 275 阅读 · 0 评论 -
Python爬虫之(一):爬虫简介
什么是爬虫网络爬虫也叫网络蜘蛛,如果把互联网比喻成一个蜘蛛网,那么蜘蛛就是在网上爬来爬去的蜘蛛,爬虫程序通过请求url地址,根据响应的内容进行解析采集数据, 比如:如果响应内容是html,分析dom结构,进行dom解析、或者正则匹配,如果响应内容是xml/json数据,就可以转数据对象,然后对数据进行解析。作用通过有效的爬虫手段批量采集数据,可以降低人工成本,提高有效数据量,给予运营/销售的...原创 2018-12-29 20:03:56 · 368 阅读 · 0 评论 -
重要的Python数据分析库
NumPyNumPy(Numerical Python的简称)是Python科学计算的基础包。它提供了以下功能(不限于此):(1)快速有效的多维数组对象ndarray。(2)用于对数组执行元素级计算以及直接对数组执行数学运算的函数。(3)用于读写硬盘上基于数组的数据集的工具。(4)线性代数运算、傅里叶变换,以及随机数生成。(5)成熟的C API, 用于Python插件和原生C、C++、...原创 2018-12-16 20:37:18 · 698 阅读 · 0 评论 -
Python的优势和劣势
优势(1)实现同样的功能,python代码更少(2)拥有大量Web框架,如Django、Tornado、Flask等等(3)大量的数据分析库作支撑,如numpy、pandas、matplotlib、IPython和Jupyter、SciPy、scikit-learn、statsmodels等等(4)它能够轻松地集成C、C++以及Fortran代码(5)Python社区有形形色色充满激情的...原创 2018-12-16 18:28:18 · 3854 阅读 · 0 评论 -
Anaconda
Anaconda是什么参考百度Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。因为包含了大量的科学包,Anaconda 的下载文件比较大(约 531 MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)。为什么使用Anaconda由于人们使用...原创 2018-12-16 12:34:48 · 1546 阅读 · 0 评论 -
eclipse如何开发python
有一些eclipse的忠实粉丝,怎么都不情愿使用pycharm......那就继续使用eclipse吧(无语...)操作步骤:1.下载python需要的插件点击下载2.解压完后生成这样两个文件夹3.分别把两个文件夹里的文件拷贝到eclipse对应的目录中4.重启eclipse后,就可以开心的new project了可是....工程名都没办法输入5.这是因...原创 2018-04-16 21:25:22 · 1000 阅读 · 0 评论 -
Windows系统中搭建Python编译环境
Windows系统并非都默认安装了Python,因此你可能需要下载并安装它,再下载并安装一个文本编辑器(用之前的PyCham:点击打开链接)。1. 安装Python首先,检查你的系统是否安装了Python。为此,在“开始”菜单中输入 command 并按回车以打开一个命令窗口;你也可按住Shift键并右击桌面,再选择“在此处打开命令窗口”。在终端窗口中输入python并按回车;如果出现了Pytho...原创 2018-04-16 10:32:24 · 1165 阅读 · 0 评论 -
Python爬虫之(五)Cookie和URLError
Cookie为什么要使用Cookie呢?Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的。那么我们可以利用Urllib库保存我们登录的Cookie,然后再抓取其他页面就达到目的了煮个栗子:from urllib.request import Re...原创 2019-01-11 21:18:10 · 452 阅读 · 1 评论 -
Python爬虫之(六)requests库的用法
介绍对了解一些爬虫的基本理念,掌握爬虫爬取的流程有所帮助。入门之后,我们就需要学习一些更加高级的内容和工具来方便我们的爬取。那么这一节来简单介绍一下 requests 库的基本用法安装pip install requests基本请求req = requests.get("http://www.baidu.com")req = requests.post("http://www.bai...原创 2019-01-11 21:51:44 · 441 阅读 · 0 评论 -
Python爬虫之(七)数据提取-正则表达式
提取数据在前面我们已经搞定了怎样获取页面的内容,不过还差一步,这么多杂乱的代码夹杂文字我们怎样把它提取出来整理呢?下面就开始介绍一个十分强大的工具,正则表达式!正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是用来匹配字符串非常强大的工具,在其他编程语言中同样...原创 2019-01-13 10:41:53 · 2079 阅读 · 0 评论 -
修改Jupyter Notebook的默认路径
前言网上一搜一大堆的方法,什么两种、三种、四种,什么修改配置等等等等都不要再尝试了,很多都是浪费时间并且不一定管用仅此一种方式右键-属性(不要问我这个怎么操作)把起始位置中的%USERPROFILE%修改为自己的路径并且用该路径把目标栏后面的参数%USERPROFILE%替换掉!!!,且用引号引起来测试...原创 2019-05-31 10:41:47 · 1372 阅读 · 0 评论 -
CDH修改PySpark默认的Python版本
前言PySpark一直使用的是Linux默认的Python2.7.5版本,感觉超级不爽,于是想升个级,可怎么升啊?于是又开始了万年的Google操作步骤安装Python3.X参考配置全局变量sudo vim /etc/profileexport PATH=/usr/bin/python3:$PATHsource /etc/profile打开CDH Web配置spark-en...原创 2019-05-14 19:43:18 · 2104 阅读 · 0 评论
分享