Python 表达式 i += x 与 i = i + x 等价吗?
Python 表达式 i += x 与 i = i + x 等价吗?如果你的回答是yes,那么恭喜你正确了50%,为什么说只对了一半呢? 按照我们的一般理解它们俩是等价的,整数操作时两者没什么异同,但是对于列表操作,是不是也一样呢?先看下面两段代码: 代码1 >>> l1 = range(3) >>> l2 = l1 >>> l2 += [3] >>> l1 [0, 1, 2, 3] ...
more ...理解 Python 装饰器看这一篇就够了
讲 Python 装饰器前,我想先举个例子,虽有点污,但跟装饰器这个话题很贴切。 ...
more ...Python解惑:True与False
Python 中常用的数据类型bool(布尔)类型的实例对象(值)就两个,真和假,分别用True和False表示。在if 条件判断和while 语句中经常用到,不过在Python2.x 中,True 和False 却有着奇怪的用法,就是真假可以相互被替换,先看下面代码: >>> True True >>> False False >>> if True: ... print True ...
more ...字典对象的 Pythonic 用法
字典对象在Python中作为最常用的数据结构之一,和数字、字符串、列表、元组并列为5大基本数据结构,字典中的元素通过键来存取,而非像列表一样通过偏移存取。笔者总结了字典的一些常用Pyhonic用法,这是字典的Pythonic用法的上篇 0. 使用 in/not in 检查 key 是否存在于字典 判断某个 key ...
more ...好玩的Python彩蛋
Python作为一门严谨的编程语言,也充满了各种娱乐、恶搞、实用的彩蛋,程序员真的是一群创意无极限的家伙。笔者总结了Python中几个比较有趣的彩蛋。 1. Hello World 相传古时候有个退休的程序员,在家闲来无事,决定修习书法之道。第一日备好笔墨纸砚,便挥毫落纸写下一行大字:“hello, world”。hello world ...
more ...python3特性一:高级拆箱
more ...a, b = range(2) >>> a 0 >>> b 1 你可以把序列中多个多 Python2 中可以以这样的方式进行拆箱操作: >>> a, b = range(2) >>> a 0 >>> b 1 你可以把序列中多个多个元素赋值给多个变量名,不过在 Python2 中必须满足变量名的个数与序列中的元素的个数是相等的,否则会报错。 然而,在 Python3 中你可以这样: ...
分析urllib.unquote乱码的原因
Python中的urllib模块用来处理url相关的操作,unquote方法对应javascript中的urldecode方法,它对url进行解码,把类似"%xx"的字符替换成单个字符,例如:“%E6%B3%95%E5%9B%BD%E7%BA%A2%E9%85%92”解码后会转换成“法国红酒”,但是使用过程中,如果姿势不对,最终转换出来的字符会是乱码“æ³å½çº¢é ”。 ...
more ...CentOS升级Python2.7
CentOS 6.X 自带的Python版本是 2.6 , 但是很多主流框架和第三方依赖包已经开始逐步放弃维护2.6版本了,况且如果一个全新的业务系统还是用Python2.6跑的话,你都不好意思说是搞Python的,为了顺利升级到Python2.7,笔者根据网上资料整理了升级步骤和过程中遇到的问题。 环境准备 更新系统和开发工具集 yum -y update yum ...
more ...PYTHON编码的前世今生
这是我在知乎上回答的一个问题:Python 编码为什么那么蛋疼?,期间收到了不少赞,不过发现我的回答还存在一些误导,于是通过查找资料重新整理了一篇,希望能解答你对编码的困惑。 一旦走上了编程之路,如果你不把编码问题搞清楚,那么它将像幽灵一般纠缠你整个职业生涯,各种灵异事件会接踵而来,挥之不去。只有充分发挥程序员死磕到底的精神你才有可能彻底摆脱编码问题带来的烦恼,我第一次遇到编码问题是写 ...
more ...完全理解Python迭代对象、迭代器、生成器
本文源自RQ作者的一篇博文,原文是Iterables vs. Iterators vs. Generators,俺写的这篇文章是按照自己的理解做的参考翻译,算不上是原文的中译版本,推荐阅读原文,谢谢网友指正。 ...
more ...标签云算法Python实现
标签云(Tag Cloud)常见于各种博客站点中,标签有利于网站内容分类,还可以用于相关性内容推荐。近日笔者有空把个人的开源博客Django_blog添加了一个新功能--标签云。最终效果请访问:http://foofish.net/blog/tags 实现原理 标签云最终展现出来的效果其实是由两个HTML参数来控制的,分别是:font-size和color,如: <a ...
more ...算法题:链表反转
链表的反转是一个很常见、很基础的数据结构题,输入一个单向链表,输出逆序反转后的链表,如图:上面的链表转换成下面的链表。实现链表反转有两种方式,一种是循环迭代,另外一种方式是递归。 第一种方式:循坏迭代 循坏迭代算法需要三个临时变量:pre、head、next,临界条件是链表为None或者链表就只有一个节点。 # encoding: utf-8 class Node(object): def ...
more ...免费中文Python电子书(教程)
小白Python教程,Python3中文教程,电子版, 廖雪峰的小白python教程,有python2和python3两个版本: 简明Python教程,简明python教程,是《A Byte of Python》的中文版 零基础学Python,老齐(qiwsir)的Python基础教程Gitbook版 可爱的 Python ,大妈(Zoom.Quiet)创意并组建团队,完全由 CPyUG ...
more ...12步教你理解Python装饰器
或许你已经用过装饰器,它的使用方式非常简单但理解起来困难(其实真正理解的也很简单),想要理解装饰器,你需要懂点函数式编程的概念,python函数的定义以及函数调用的语法规则等,虽然我没法把装饰器变得简单,但是我希望可以通过下面的步骤让你由浅入深明白装饰器是什么。假定你拥有最基本的Python知识,本文阐述的东西可能对那些在工作中经常接触Python的人有很大的帮助。 ...
more ...Python中的垃圾回收机制
GC作为现代编程语言的自动内存管理机制,专注于两件事:1. 找到内存中无用的垃圾资源 2. 清除这些垃圾并把内存让出来给其他对象使用。GC彻底把程序员从资源管理的重担中解放出来,让他们有更多的时间放在业务逻辑上。但这并不意味着码农就可以不去了解GC,毕竟多了解GC知识还是有利于我们写出更健壮的代码。 引用计数 Python语言默认采用的垃圾收集机制是『引用计数法 Reference ...
more ...