201706-20 Python装饰器为什么难理解? 无论项目中还是面试都离不开装饰器话题,装饰器的强大在于它能够在不修改原有业务逻辑的情况下对代码进行扩展,权限校验、用户认证、日志记录、性能测试、事务处理、缓存等都是装饰器的绝佳应用场景,它能够最大程度地对代码进行复用。但为什么初学者对装饰器的理解如此困难,我认为本质上是对Python函数理解不到位,因为装饰器本质上还是函数函数定义理解装饰器前,需要明白函数的工作原理,我们先从一个最简单函... 继续阅读 >
201705-31 资深程序员:给Python软件开发测试的25个忠告! 当我加入Ansible团队之后,我决定写下多年来所学到的软件工程实践和原理方面的经验。我的激情是测试,因为我相信良好的测试既可以确保最低质量标准(可惜很多软件产品都缺乏这一点),也可以指导和塑造开发过程本身。以下许多建议与测试有关,其中一些原则甚至特定于Python,但绝大多数不是。(对于Python程序员,PEP8应该是编程风格和指南的第一站。)1、不要编写你认为以后可能需要但目前不需要的代码。这是对未来想象的... 继续阅读 >
201705-25 为什么说Python是伟大的入门语言 原文:WhyPythonisaGreatFirstLanguage作者:ElliottHauser翻译:黑色巧克力本文作者列举了一些Python特性,并认为Python是最适合入门的编程语言,一起来看一下。最近发表了三篇关于我的艺术史背景是如何影响我教学的文章。现在要分享一篇,为什么Python对于青少年和成年人是入门语言的最佳选择。伟大的入门编程语言有什么特征呢?或者换一种方式问,“当我们教他们编程时,应该给予他们什么?”对... 继续阅读 >
201705-17 Python高手都知道的内置函数,你不知道就low了 python内置了一些非常巧妙而且强大的内置函数,对初学者来说,一般不怎么用到,我也是用了一段时间python之后才发现,哇还有这么好的函数,这个函数都是经典的而且经过严格测试的,可以一下子省了你原来很多事情,代码不仅简洁易读了很多,而且不用自己去闭门造车.既方便了自己又减少了bug。1.sorted()1)对于一个列表排序sorted([100,98,102,1,40])>>>[1,40,98,100,102]2)通过key参数/函数比如一个... 继续阅读 >
201705-17 Python 操作 MySQL 的正确姿势 使用Python进行MySQL的库主要有三个,Python-MySQL(更熟悉的名字可能是MySQLdb),PyMySQL和SQLAlchemy。Python-MySQL资格最老,核心由C语言打造,接口精炼,性能最棒,缺点是环境依赖较多,安装复杂,近两年已停止更新,只支持Python2,不支持Python3。PyMySQL为替代Python-MySQL而生,纯python打造,接口与Python-MySQL兼容,安装方便,支持Python3。SQLAlchemy是一个ORM框架,它并不提供底层的数据库操作... 继续阅读 >
201704-13 Python 程序员需要知道的 30 个技巧 如果你让一个Python程序员说一下Python的优势,他会说简洁以及高可读是最有影响力的优势。为证明上述两点,在这个Python教程里,我们将聊聊许多基本的Python建议和技巧。我们从开始使用Python便收集这些有用的捷径(贴士与技巧)。分享一些我们知道,同时又能造福于人的知识,有什么事情比这更棒吗?所以今天我们带来另一些基本的Python贴士与技巧,所有的这些技巧都能帮助你压缩代码并且优化运行。此外,... 继续阅读 >
201704-01 Python 中 "is" 与 "==" 操作有什么区别? 在Python中,比较两个对象(变量)是否相等,可以用“is”和“==”操作,但它俩有什么区别?什么时候用“is”,什么时候用“==”?在面试时,发现不少候选人很难把这两者完全说清楚,因此在这篇文章中,「Python之禅」将对二者进行深入浅出的对比介绍。先举个例子小黄最近手头非常宽裕,花重金购买了一辆P90D特斯拉,我们暂且给这车取名叫"小P",这辆车和隔壁老王家的车(车名叫"小王")是一模一样的,... 继续阅读 >
201703-15 Python 高级编程:完全理解生成器 生成器是Python初级开发者最难理解的概念之一,虽被认为是Python编程中的高级技能,但在各种项目中可以随处见到生成器的身影,你得不得去理解它、使用它、甚至爱上它。提到生成器,总不可避免地要把迭代器拉出来对比着讲,生成器就是一个在行为上和迭代器非常类似的对象,如果把迭代器比作Android系统,那么生成器就是iOS,二者功能上差不多,但是生成器更优雅。什么是迭代器顾名思义,迭代器就是用于迭代操... 继续阅读 >
201703-11 一只优雅的小爬虫诞生记 爬虫,几家欢喜几人愁。爬者,拿到有利数据,分析行为,产生价值。被爬者,一是损失数据,二是遇到不怀好意的爬虫往往被全站复制或服务器受冲击而无法服务。今天说的是一只友好的爬虫是如何构建出来的,请勿用它伤害他人。爬虫一生所遇俗话说,如果我比别人看得远些,那是因为我站在巨人们的肩上。前人之鉴,后人之师。小爬虫在胎教的时候就该传授它的前辈参悟的人生经验,了解网络的可怕之处。看看我提供的胎教课程:... 继续阅读 >
201612-23 新手学习Python时常见的错误 最近学习Python,现在把一些常见的错误总结如下:1)忘记在if,elif,else,for,while,class,def声明末尾添加:(导致“SyntaxError:invalidsyntax”) 该错误将发生在类似如下代码中:ifspam==42print('Hello!')2)使用=而不是==(导致“SyntaxError:invalidsyntax”) =是赋值操作符而==是等于比较操作。该错误发生在如下代码中:ifspam=42:print('Hello!')3)... 继续阅读 >
201611-25 Python 开发的高级技巧 本文我列出几个Python高级技巧:1.contextmanager写Python代码的时候经常将一系列操作放在一个语句块中,Python2.5加入了with语法,实现上下文管理功能,这让代码的可读性更强并且错误更少。最常见的例子就是open,如果不使用with,使用open会是这样:如果使用with,可以简化为两行:在执行完缩进的代码块后会自动关闭文件。创建上下文管理器实际就是创建一个类,添加__enter__和__exit__方法。看看如何... 继续阅读 >
201611-24 听说你会 Python ? 最近觉得Python太“简单了”,于是在师父川爷面前放肆了一把:“我觉得Python是世界上最简单的语言!”。于是川爷嘴角闪过了一丝轻蔑的微笑(内心OS:Naive!,作为一个Python开发者,我必须要给你一点人生经验,不然你不知道天高地厚!)于是川爷给我了一份满分100分的题,然后这篇文章就是记录下做这套题所踩过的坑。1.列表生成器描述下面的代码会报错,为什么?classA(object):x=1gen=... 继续阅读 >
201611-23 Python 异步调用命令行工具 当你在自己的Python程序中采用了基于事件循环的异步编程方法之后,你就会发现自己不自觉地被其牢牢吸引住,并不是说这一方法多么棒,而是因为你不得不想办法保证程序中的任意环节都不能是阻塞的!例如当前的场景是希望从MongoDB中读取每一条未处理过的数据,下载并保存其中的图片信息,然后更新数据库的内容。Python常用的MongoDB异步驱动是Motor:结合asyncio使用方法如下:importmotor.motor_async... 继续阅读 >
201611-22 细数10个隐藏在Python中的彩蛋 1、使用re.DEBUG查看正则表达式的匹配过程正则表达式是Python的一大特色,但是调试起来会很痛苦,很容易得出一个bug。幸运的是,Python可以打印出正则表达式的解析树,通过re.debug来显示re.compile的完整过程。一旦你理解了语法,你就可以发现你的错误。在这里我们可以看到[/font]忘了去除[]2、enumerate函数用于遍历列表中的元素以及它们的下标3、对默认实参要多加小心相反,你应该使用一个标记值表示“无定义”,来替... 继续阅读 >
201610-13 30个深度学习库:按Python和C++等10种语言分类 本文转载自机器之心,标明李泽南,链接http://www.jiqizhixin.com/article/1621PythonTheano 是一种用于使用数列来定义和评估数学表达的Python库。它可以让Python中深度学习算法的编写更为简单。很多其他的库是以Theano为基础开发的:Keras 是类似Torch的一个精简的,高度模块化的神经网络库。Theano在底层帮助其优化CPU和GPU运行中的张量操作。Pylearn2 是一个引... 继续阅读 >
201609-14 Python利用ctypes提高执行速度 ctypes库可以让开发者借助C语言进行开发。这个引入C语言的接口可以帮助我们做很多事情,比如需要调用C代码的来提高性能的一些小型问题。通过它你可以接入Windows系统上的kernel32.dll和msvcrt.dll动态链接库,以及Linux系统上的libc.so.6库。当然你也可以使用自己的编译好的共享库我们先来看一个简单的例子我们使用Python求1000000以内素数,重复这个过程10次,并计算运行时间。importmathfromtimeitimporttimeit... 继续阅读 >