自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(112)
  • 论坛 (1)

原创 致 Python 初学者

欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你

2019-11-13 18:16:52 279037 271

原创 wxPython:python首选的GUI库

跨平台的GUI工具库,较为有名的当属GTK+、Qt 和 wxWidgets 了。GTK+是C实现的,由于C语言本身不支持OOP,因而GTK+上手相当困难,写起来也较为复杂艰涩。Qt 和 wxWidgets 则是C++实现的,各自拥有庞大的用户群体。虽然我喜欢wxWidgets,但还是尽可能客观地搜集了关于Qt 和 wxWidgets 的对比评价。

2019-10-31 14:42:38 73060 82

原创 写给 python 程序员的 OpenGL 教程

OpenGL 是 Open Graphics Library 的简写,意为“开放式图形库”,是用于渲染 2D、3D 矢量图形的跨语言、跨平台的应用程序编程接口(API)。OpenGL 不是一个独立的平台,因此,它需要借助于一种编程语言才能被使用。C / C++ / python / java 都可以很好支持 OpengGL,我当然习惯性选择 python 语言。如果读者是 python 程序员,并且了解 numpy,接下来的阅读应该不会有任何障碍;否则,我建议先花半小时学习一下 python 语言。

2019-10-31 14:42:29 31124 15

原创 python 程序员进阶之路:从新手到高手的100个模块

在知乎和CSDN的圈子里,经常看到、听到一些 python 初学者说,学完基础语法后,不知道该学什么,学了也不知道怎么用,一脸的茫然。近日,CSDN的公众号推送了一篇博客,题目叫做《迷思:Python 学到什么程度可以面试工作?》,真实反映了 python 程序员在成长过程中的一些困惑。

2019-10-23 23:30:59 102268 139

原创 如果不懂 numpy,请别说自己是 python 程序员

大约七八年前,我曾经用 pyOpenGL 画过地球磁层顶的三维模型,这段代码至今仍然还运行在某科研机构里。在那之前,我一直觉得自己是一个合(you)格(xiu)的 python 程序员,似乎无所不能。但磁层顶模型的显示效果令我沮丧——尽管这个模型只有十几万个顶点,拖拽、缩放却非常卡顿。最终,我把顶点数量删减到两万左右,以兼顾模型质量和响应速度,才勉强交付了这个任务。从此我开始怀疑 python 的性能,甚至一度怀疑 python 是否还是我的首选工具。

2019-02-17 14:51:20 21361 22

原创 数学建模三剑客MSN

不管是不是巴萨的球迷,只要你喜欢足球,就一定听说过梅西(Messi)、苏亚雷斯(Suarez)和内马尔(Neymar)这个MSN组合。在众多的数学建模辅助工具中,也有一个犀利无比的MSN组合,他们就是python麾下大名鼎鼎的 Matplotlib + Scipy + Numpy三剑客。

2016-09-06 13:41:37 25449 10

原创 Python非单向递归函数如何返回全部结果?这个经典的背包问题给出了答案

递归( recursion)是一种神奇的编程技巧,可以大幅简化代码,使之看起来更加简洁。然而递归设计却非常抽象,不容易掌握。通常,我们都是自上而下的思考问题, 递归则是自下而上的解决问题——这就是递归看起来不够直观的原因。

2020-08-27 18:09:47 684 1

原创 七夕节,我用Python写了一个婚介模型

先声明一下:本文纯属七夕应景娱乐之作。如果有人因为遵循本模型提出的择偶理论而导致失恋或单身,除了同情,我不能补偿更多。在中国的传统节日里,七夕可能是起源最神秘、内涵最深刻的一个了。当然,这不是本文的重点,我们的核心问题是:在七夕这个特有纪念意义的日子,你真的想好了要向TA表白吗?TA真的是你唯一正确的选择吗?这个婚介模型,也许对你有一些启发。

2020-08-25 11:36:42 3880 7

原创 用了十几年才想明白:Python的精髓居然是方括号、花括号和圆括号!

和其他编程语言相比,什么才是Python独一无二的特色呢?很多程序员会说,缩进。的确,缩进是Python语言的标志性特点,但这只是外在的、形式上的。从语言特性层面讲,Python的特点是什么呢?我尝试着在知乎上搜索了一下,最具代表性的答案分别是语法简洁、简单易学、代码高效、功能强大等四项。仔细品味这四项,我还是觉得,这是Python语言表现出来的使用效果或用户感受,仍然不是语言特性层面的特色。

2020-08-15 18:13:46 14646 24

原创 不要对链式索引赋值!趟过了这个坑,才能真正迈入Pandas高手之列

实话实说,我一向不太喜欢Pandas,因为它的功能实在太过强大了,想要熟练地驾驭它,对于我这样的中老年人来说,学习成本偏高。不过,对于接受能力超强的年轻人而言,Pandas确实是数据处理方面不可或缺的利器,我的子侄辈中就有多人喜欢使用。正是因为他们在Pandas的使用过程中,不断地向我咨询问题,我在帮他们解决问题的过程中,也逐渐熟悉了Pandas。

2020-08-03 18:06:08 1530 1

原创 如何提高Python编程能力?不妨试试这个经典的24点问题

暑假期间,办公室里经常会出现因无人看护而不得不跟随爸爸妈妈来上班的小朋友。如果不忙的话,我会陪他们一起玩,他们也都很喜欢和我玩。我们都喜欢玩数字游戏。这不,有位小朋友给我出了一道难题:三个5和一个1,只用加减乘除四则运算,每个数字只能且必须使用一次,如何让结果等于24?

2020-07-31 11:26:38 8893 10

原创 从Python对象的内建属性和方法谈Python的自省(Introspection)和反射机制(Reflection)

对于dir()这个Python的内置函数,Python进阶群里的小伙伴们一定不陌生。我不止一次地介绍过这个函数。每当想要了解一个类或类实例包含了什么属性和方法时,我都会求助于这个函数。读到这里,一定会有很多小伙伴会说,我的PyCharm(也可能是VSCode或者其他什么)也会告诉我,当前的对象有什么属性和方法,还是自动显示的,不需要我动手。没错,IDE的确为我们提供了很多便利,但是,你有没有想过IDE是如何实现这些功能的呢?假如你的任务就是设计一款类似的IDE,你真的不要深入理解Python内在的机制吗?

2020-07-27 18:34:54 1688 1

原创 LaTex数学公式转图片,不依赖在线服务,真正Python实现

下午安装了一个pylatex模块,打算将LaTex语法描述的数学公式转为图片。磕磕绊绊读了半天文档,发现pylatex属于重型武器,写起来不够简洁。网上搜了一下,CSDN上现成的Python代码,只是不免费,要11个C币。摸摸兜里,还有些散碎银子,就顺手买了一个。下载之后,一读源码,居然只是封装了一个http请求,图片是在线生成的!这简直就是抢劫啊,太没有职业道德了!

2020-06-29 17:59:19 1867 3

原创 作为Python程序员,你真的会用max()和min()函数吗?

在Python的七十多个内置函数中,max()和min()是比较常用的两个,用来查找一组数据中的最大值和最小值。这两个函数看似简单,实则暗藏了很多意想不到的功能,尤其是key参数,更为这两个函数增加了类似map()函数的功能。如果应用在代码中,必定产生鬼斧神工、匪夷所思的感觉,令人叹为观止!

2020-06-23 15:22:57 1544 2

原创 一篇短文,尽除沉疴,彻底破解正则恐惧症!
原力计划

正则表达式的规则之艰深晦涩,足令初学者望而却步。其实,只要理解了基本概念,稍微归纳一下知识点,掌握并熟练应用正则表达式,也不是什么难事儿,大约三十分钟就可以做到。我们可以把正则表达式的学习分成两部分:第一,如何写正则表达式?第二,怎么用正则表达式?

2020-06-01 11:35:20 1783 1

原创 Pandas简明教程
原力计划

简洁如斯,夫复何求!但是,对用户过分的迁就和溺爱,其实是一把双刃剑。正如Pandas之父Wes McKinney所说,Pandas正在背离他最初所期望的简洁和易用,变得越来越臃肿和不可控制。我非常认同Wes McKinney的观点,甚至觉得当Pandas抛弃了panel这个概念的时候,就已经走火入魔了。panel是Pandas最初为处理更高维数据提出的方案,非常接近HDF或者netCDF的理念。Pandas后来使用了“层次化索引”处理更高维数据,导致结构趋于复杂,使得程序员无法专注于事务逻辑的处理。

2020-05-29 14:00:01 3338 2

原创 用机器学习的分类算法识别象棋棋子——兼论旋转不变性
原力计划

文本识别早已经不是问题了,不过却不能直接应用于象棋棋子的识别,因为棋盘上的棋子是随机摆放上去的,不能保证棋子上的文字总是保持一个固定的角度。识别棋子的关键是找到具有“旋转不变性”的特征——无论棋子旋转多少度,其特征总是稳定的。

2020-05-27 18:15:06 1317 5

原创 假期无聊,我用傅里叶变换做了一个频率计,吉他定调口哨定音,样样好使!
原力计划

当年《数学分析》考试通过后,那个高兴啊,心想,这一辈子总算再也不用和数学打交道了。没成想,新学期又开了一门叫做《工程数学》的专业课,专门讲傅里叶变换和拉普拉斯变换。全班同学为此郁闷了多半个学期。转眼间,三十多年过去了,拉氏变换早就还给了我的数学老师,唯独留下了傅里叶变换,偶尔还能有用武之地。这不,无聊的假期里,我用它做了一个音频的频率计,通过电脑上的声卡采集声音,用傅里叶变换完成时域-频域的转换,最后确定声音的主频率。用这个简陋的频率计来给吉他定调,比专业的定音器还好玩。

2020-04-05 15:36:22 3617 6

原创 有没有那么一道题,让你从此真正理解了Python编程?
原力计划

写下这个题目的时候,脑海里无法抑制地响起了周华健那略带沙哑的歌声:远处传来那首熟悉的歌,那些心声为何那样微弱。很久不见,你现在都还好吗?有没有那么一首歌,会让你轻轻跟着和,随着我们生命起伏,一起唱的主题歌;有没有那么一首歌,会让你突然想起我,让你欢喜也让你忧,这么一个我……

2020-03-31 11:45:23 10006 40

原创 我用370行代码写了一个wxPython的任务托盘程序:实用的屏幕录像机

最近有同学咨询如何用wx写任务托盘程序,也有同学咨询怎样创建wx的异形窗口。恰好,我也正需要一个可以将屏幕显示或者操作录制成gif文件的工具。于是乎,结合同学们的问题,我用wx写了一个屏幕录像机代码,既包含任务托盘的实现,也用到了异形窗口,还使用了DC绘制录像窗口边框。这段代码,可以很方便地打包成exe程序。程序启动后,栖身于任务托盘。你需要的时候,可以随时召唤它。录像窗口可以调整大小,生成gif的参数也可以调整,此外还提供了启动/停止的热键(Ctr + F2)操作,使用起来非常方便。

2020-03-25 11:50:37 2695 4

原创 Python + ElasticSearch:轻松玩转跨越千年的两百三十万条地震数据
原力计划

本文介绍了在网上地震数据的实现代码,并借助于 Python 和 ElasticSearch,分析了全球和中国的地震分布,对中国多个省区的历史地震数据做了对比分析。所有源码和示例数据已上传至GitHub,有兴趣的读者可以下载源码后,使用下载代码自行下载全部数据。

2020-03-19 15:33:51 3321 3

原创 Python代码中的三大常见“愚形”,你中招了吗?
原力计划

愚形,是围棋的专业术语,凡是效率低下且不美观的棋形,统称为愚形。比如空三角和团子,就是典型的愚形。低水平棋手经常会在无意中走出愚形,而那些高手平棋手,尽管在生死存亡的危机时刻也会用愚形求生或者逃命,但在正常局面下他们是不会走出愚形的。在Python代码中,初学者也会写出一些类似围棋愚形的写法,不仅臃肿繁琐,而且效率低下。本文总结了Python代码中的三大常见“愚形”,快来看看,你中招了吗?

2020-03-16 12:27:15 5411 12

原创 3D库WxGL的demo——用3D给思维插上想象的翅膀
原力计划

上周冒着零星小雨去附近的公园赏花,估计脑子里多少进了一些雨水,以至于连 z=xy 这样的曲面是什么样子,都想象不出来了。无奈之下,只好跑去问女儿。彼时,她正在ipad上整理课堂笔记。我凑近瞄了一眼,瞬间感觉头晕目眩,几乎晕倒。这个课堂笔记,将数学的险恶展示得一览无余!

2020-03-15 14:24:21 3125 2

原创 手把手教你用wx做一个二维码生成器,并打包成可执行程序
原力计划

我们通常所说的二维码,是指 Quick Response,简写为QR。QR 是近几年来移动设备上超流行的一种编码方式,它比传统的条形码(Bar Code)能存更多的信息,也能表示更多的数据类型。尽管在网上很容易找到各种各样的二维码生成器,但鲜有定制功能。接下来,我将手把手教大家用 wxPython 做一个可以指定前景、背景色以及中心插图的二维码生成器,并最终打包成一个exe程序。

2020-03-09 17:35:21 13215 17

原创 B型超声设备图像处理:用二维数据生成扇形图像
原力计划

昨晚,有同学私信咨询:如何将矩形数据转为扇扫图像?面对这个问题,我也是一脸懵逼,什么是扇扫?矩形数据又是啥?细问之下,才知道这是B型超声设备的数据处理问题。B超输出的数据保存在一个二维数组中,但显示在屏幕上的却需要转换为扇形。稍微思考一下,应该不难解决。比较直接的方法是,将二维数组的每一列旋转合适的角度,就可以拼成一副图像。我们用参数angle表示扇形夹角的一半,用参数k表示输出图像的高度与每一列数据数量的比值,很容易写出如下代码:

2020-03-05 15:57:59 2297 1

原创 自己动手,打造一款适合 Python 程序员的 Html5 音乐播放器

近期断断续续读了一些 Web Audio API 和 WebRTC API 的文档,发现了很多好玩的东西,有一种“忽入桃花源”的感觉。这一款 Html5 音乐播放器,就是基于 Web Audio 技术实现的,原型来自于 Web Audio API 的例子。为什么说适合 Python 程序员呢?因为使用者需要理解下面这一行命令:python -m http.server

2020-03-02 16:47:36 2560

原创 Python小技巧:将图像音视频等资源文件隐藏在代码中

下午有同学Python学习群里说,使用pyinstaller打包源码时,因为代码中使用了图像、音频、视频等资源文件,无法将程序打包成单一的可执行文件。有没有方法将这些资源文件按保存在代码中呢?我想了一下,应该是可以的。于是乎,花了一个小时,写出了下面的代码,算是抛砖引玉吧。

2020-02-15 19:01:16 7858 5

原创 用Python打造你的专属情人节贺卡,赶快发给TA浪漫一下吧

明天就是情人节了。这个情人节,注定是一个不能约会的情人节,但不能约会不代表不能浪漫。古人比我们出生早,那些浪漫的诗词早都被他们挖掘一空,比诗词我们肯定没有机会了。好在我们还有Python,不然都不知道该如何表达浪漫。接下来,浪导教你制作一个浪漫的情人节专属贺卡。

2020-02-13 18:14:22 11779 21

原创 Python + ElasticSearch:有了这个超级武器,你也可以报名参加诗词大会了!

正月十六,中国诗词大会第五季落下帷幕。从2016年2月12日第一季于开播,迄今恰好四周年。在这个舞台上,时年16岁的才女武亦姝、雨无阻的外卖小哥雷海为、端庄美丽的北京大学博士生陈更,不留遗憾的三季老将彭敏,都以精彩表现给我们留下了深刻印象。中国诗词大会潜移默化地影响了一大批中国人,激发了很多人对诗词的热爱。

2020-02-13 17:12:29 11586 14

原创 2020Pyton开发者日线上技术峰会主题:爬虫框架的技术实现与模块应用的经验分享

2月15日,CSDN 联合PyCon中国、wuhan2020、xinguan2020 等力量,举办以「抗击疫情,开发者在行动」为主题的2020 Python开发者日·线上技术峰会,围绕Python在疫情中的具体落地应用与项目,为广大Python开发者、爱好者揭秘代码的力量。

2020-02-13 09:29:36 9748

原创 开源我的3D库WxGL:40行代码将疫情地图变成三维地球模型

在自己动手写3D库之前,我一直使用VisPy应对三维需求。这是一个高性能的可交互的2D/3D可视化函数库,但在后端显示上,我始终不能得心应手地驾驭它。2019年的元旦假期,我萌生了自己写3D应用库的念头,并立即付诸行动。三周之后,WxGL诞生。WxGL是一个基于PyOpenGL的三维数据展示库,以wx为显示后端,以加速渲染为第一追求目标。借助于WxPython这个后端,WxGL可以很好的融合Matplotlib等其他数据展示技术。

2020-02-07 17:36:44 28255 64

原创 介绍一种有趣的数据抓取技术:可见即可抓

可见即可抓的实现,依赖于selenium模块。实际上,selenium并不是专门用于数据抓取的工具,而是一个用于测试网站的自动化测试工具,支持各种浏览器包括Chrome、Firefox、Safari等主流界面浏览器。用selenium抓取数据,并不是一个通用的方法,因为它仅支持GET方法(当然,也有一些扩展技术可以帮助selenium实现POST,比如安装seleniumrequests模块)。

2020-02-02 13:15:56 7742 1

原创 学习笔记:使用nginx的反向代理和缓存技术提升tornado的吞吐量

在B/S应用中,页面缓存技术是提升服务能力的重要手段。页面缓存又分为浏览器缓存和服务端缓存两类,本文仅讨论Nginx服务器的页面缓存。Nginx服务缓存的基本原理是对客户请求过的资源建立本地副本,在一段合理时期内任何用户再次请求该资源时,Nginx服务器无需要再次向后端服务器发出请求,而是直接应答缓存的副本。因此,缓存技术可以明显降低后端服务器的负载,减轻网络传输负担,极大地提升响应速度。

2020-01-30 09:41:19 4928 1

原创 Python实战:病毒困我于斗室,桌面带我去旅行

近代史上,每一个庚子年都不寻常:1840年鸦片战争,1900年八国联军侵华,1960年大饥荒。2020年的这个春节,一场突如其来的新型冠状病毒疫情横扫东亚,大有席卷全球之势。这场无妄之灾,使得很多人放弃了聚会和旅行的计划,大家不得不蜗居于斗室。但是,病毒再猖狂,也无法阻止程序员对于美好的生活的向往。今天,我来教大家用Python做一个壁纸切换工具,展示以前旅行的照片,让桌面带我们去周游世界!

2020-01-29 16:48:10 9933 11

原创 用Python写春联:抒写最真诚的祝福和最美好的祈愿

春联是中国传统文化中最具内涵的元素之一,它以对仗工整、简洁精巧的文字描绘美好形象,抒发美好愿望,是中国特有的文学形式,是华人们过年的重要习俗。每逢春节期间,无论城市还是农村,家家户户都要精选一副大红春联贴于门上,辞旧迎新,以增加节日的喜庆气氛。据考证,这一习俗起于宋代,盛于明代。有据可查的最早的春联是“三阳始布,四序初开”,始见于莫高窟藏经洞出土的文物中,撰联人为唐人刘丘子,作于开元十一年(723年)。

2020-01-21 11:24:41 20611 74

原创 2019年CSDN博客之星总评选投票综述(截至2月18日零时)

今天是大年初三。搁在往年,此时还是亲朋互访、年味正浓的时候,今年却因为武汉肺炎而取消了所有的出行和聚会。相信若干年以后,大家一定还会记得这个独特的春节,当然,也不会忘记这个长达40天的CSDN博客之星总评选投票活动。当亲友团、粉丝团从春节守岁的疲惫中满血复活之后,投票活动逐渐趋于活跃。最先复苏的是200号博主DrogoZhang的支持者们,在他们的支持下,DrogoZhang连续两天占据日增投票量排行榜首位,总得票数也升至第2位,并缩减了与第1位天元浪子的差距。

2020-01-16 08:57:37 9813 2

原创 用数据分析的手段,看2019年CSDN博客之星总评选

万众瞩目的CSDN博客之星总评选投票活动渐入佳境,竞争趋于白热化。入选前200名的博主们火力全开,使出了浑身解数,通过各种渠道拉票。一时间,CSDN刷爆了各大自媒体。无论是吃瓜群众,还是摇旗呐喊、擂鼓助威的亲友团,无不赞叹:CSDN这一波广告创意,真高!

2020-01-15 15:41:35 10925 9

原创 我的 MySQL 客户端:支持 pymysql / mysqlclient 双模块、自动重连、独创事务回滚装饰器

torndb曾经是我非常喜欢使用的一个MySQL客户端,虽然不足300行代码,却支持pymysql/mysqlclient双模块,且能在连接失效时自动重连。torndb的函数封装也很有特色,相同的功能提供了不同的名字。遗憾的是,进入Py3之后,torndb没有相应的升级,只好放弃了。近日,重读了torndb的源码,结合我对数据库应用的理解,整理出了一个新的MySQL客户端,暂且命名为youthd...

2020-01-09 16:21:32 8367 1

原创 为2020年的第一场雪锦上添花:用 matplotlib 绘制雪花和雪景

一场大雪,覆盖了华北、华东。天地连成一片,城市银装素裹,处处诗情画意、人人兴高采烈。朋友圈被雪景图和调侃路滑摔跤的段子刷屏,气氛比过年还要热烈几分。我也来凑个热闹,用python为2020年的第一场雪锦上添花。

2020-01-08 13:45:44 29349 64

原创 Python 访问 MySQL 的正确姿势

Py2 时代,访问 MySQL 数据库的模块除了 PyMySQL 和 MySQL-python 之外,还有以速度见长的 Umysql,以及非常小众的 Oursql 模块。进入了 Py3 时代之后,PyMySQL 与时俱进,顺利升级到 Py3 版本, MySQL-python 则被它的一个 Py3 分支——mysqlclient 取代,而 Umysql 和 Oursql 则停留在了属于它们的那个时代...

2020-01-06 14:46:17 5685 1

空空如也

天元浪子的留言板

发表于 2020-01-02 最后回复 2020-06-10

空空如也
提示
确定要删除当前文章?
取消 删除