分类目录 ‘Python’

之前向大家介绍过《一个排序算法比较的网站》,那个网站用动画演示了各种排序算法,并分析了各种排序算法。这里,要向大家推荐一个 Python脚本,其可以把排序的过程给显示出来。

下图是“冒泡排序”的一个示例,其中:

  1. 折线表示了各个元素的位置变化。
  2. 折线的深浅表示了元素的大小。越深则越大。

(全文…)

为非程序员准备的简洁Python语言教材。

Python 的中文意思是巨蟒,大蟒蛇。

本文作者作为一名从事PHP开发11年的资深开发者,却放弃了PHP而改用Python。借助本文,作者与其说是解释了他做出这种选择的原因,不如 说是他对 PHPPython两种语言的性能进行了比较。以下是作者的原文翻译:

我之所以放弃PHP,原因首先是语言。PHP实际上不是一种语言,而是一种巨大的插件结构,以一种高层的形式来展示低层的库。而大部分开发者使 用的 语言实际上是对C功能 (curl, mysql, gd, etc.)的包装,通常情况下它们的库展示得很简单。因而这导致了PHP的API不一致。

PHP语言的第二个问题是语言的管理问题。PHP语言实际上是由委员会来设计的,而且没有人来制定任何共识性的标准。PEAR有自己的标准,PHP有自己 的标准,这导致SPL classes更具Java风格,而PEAR却截然不同。

从事PHP开发11年来,我认识了很多PHP领域的专家级开发者,它们对PHP也有很多看法。除了上文提到的委员会问题以及标准混乱问题之外,由于PHP 的使用范围非常广,向后的不兼容对代码造成了很大的破坏。

还要提到的一点是PHP缺乏很多现代语言的特性。现在再来说说Python

Python语言的创建方法几乎与PHP的完全相反。首先,Python是由Benevolent Dictator和Guido van Rossum领导的,语言的开发由单一的人员主导,因此它的开发、管理以及长期运营会保持很好的连续性。Guido和Python的核心开发者通过PEP 创建标准,而且通过公共接口展示标准是如何创建的。而且,Guido如果想到的语言特性不够好,也不会出现在语言层中(如没有++运算符,而且比较符中没 有分配)。

延续性的特点也延伸到了整个Python社区,所以你很难发现不同项目中的Python截然不同。

我最喜欢的Python的一个特点就是它的清晰。当打开Python中的一个文件的时候,我会清楚地知道里面大概有什么样子的代码,联想到很多次我被 PHP的这一点搞得焦头烂额,我觉得这个特性非常有用。

总之,Python的系统级特性非常不错。

Python另外一个很棒的特性是直白性。需要namespace(命名空间)?文件的名字就是命名空间;需要模块?只需要用一个__init__.py 文件代替;需要重命名功能?只需要new_func = old_func。

Python程序员的进化

作者: seasun

下面这篇是关于Python程序员的。以阶乘为例,很有意思。

新手程序员

def factorial(x):
    if x == 0:
        return 1
    else:
        return x * factorial(x - 1)
print factorial(6)

第一年的刚学完Pascal的新手

def factorial(x):
    result = 1
    i = 2
    while i <= x:
        result = result * i
        i = i + 1
    return result
print factorial(6)

(全文…)

python中的编码

作者: seasun

在一些python讨论版里,经常会见到一些“月经帖”,类似于“我用python读取一个文件乱码”,然后就会抱怨python的编码很麻烦,其 实不是python编码难搞定,而是没有真正理解python的编码。

如在windows环境下的以下示例代码:

#!/usr/bin/env python
import sys
import os
def do():
    f = open('./ansi.txt')
    for a in [x.strip() for x in f]:
        print a
if __name__=='__main__':
    do()

此时的ansi.txt编码为ansi,我们在cmd窗口执行,看到如下结果:


(全文…)

在4月23日至25日召开的QCon Beijing 2010大会上,来自豆瓣网的洪强宁为与会开发者分享了Python语言用于Web 2.0网站开发的经验。豆瓣网从开发初期,便选用Python作为主要的网站构建语言,同时Python也是目前豆瓣网使用最广泛,基础最深厚的语言。作为豆瓣网首席架构师,洪强宁和他带领的技术团队在网站开发过程中,在Python语言使用方面积累了大量经验,同时在网站架构、性能、可伸缩性方面进行了深入研究。
(全文…)

随着Twitter的红火以及新浪微博的流行,微博客已经渐渐取代了博客和SNS,成为最流行的互联网应用之一。前 不久康盛创想又对外开放了康盛微博CTT Beta版,使的很多站长都想搭建一个微博平台,而康盛微博程序提供下载还需要一段时间,所以 在这里我整理了10个免费微博开源程序。
(全文…)

Collin Winter是Python社区一位颇具影响力的开发者,他曾是CPython项目的核心开发者之一、也曾是Unladen Swallow(见文末注释)的核心开发者,参与了很多Python项目的开发。近来传闻Google将在其新项目中限制Python的使用,为此有开发 者(以K表示)在Google 论坛中公开询问了Collin Winter,Collin Winter就很多尖锐的问题做了解答。这篇帖子同时也吸引了很多高质量的跟帖。
(全文…)

以Twitter为代表的微博客是今年非常火的社交网络,在国内的发展也在上半年一度非常迅猛,虽然现在大多数微博客都因为种种原因无法访问, 但这并没有降低人们对微博客的热情,实际上,自己动手搭建一个类似Twitter的微博客平台并不困难,这里我就介绍一些常见的开源微博客程序,有了这些 开源代码,只要稍懂一些电脑知识,就可以在短时间内搭建一个类似饭否或Twitter的微博客平台。
(全文…)

Python 3 初探,第 1 部分:Python 3 的新特性

Python 3 初探,第 2 部分:Python 3 高级主题

占位方便日后的学习!