Python 简介
Python 历史
Python
的创始人为荷兰人吉多·范罗苏姆(Guido van Rossum
)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为 ABC 语言的一种继承。之所以选中 Python
作为程序的名字,是因为他是 BBC 电视剧——蒙提·派森的飞行马戏团(Monty Python's Flying Circus
)的爱好者。
1991年,第一个 Python 编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。
Python 2.0
于 2000 年 10 月 16 日发布,增加了实现完整的垃圾回收,并且支持 Unicode
。
Python 3.0
于 2008 年 12 月 3 日发布,此版不完全兼容之前的 Python
源代码。不过,很多新特性后来也被移植到旧的 Python 2.6/2.7
版本。
第一行Python代码
安装好 Python
之后,在命令行下输入:
python
就可以进入 Python
解释器的页面。
按照惯例,第一行代码应该是输出 "hello world!"
:
In [1]:
- print "hello world!"
- hello world!
相对与 Java,C
等语言,Python
仅仅使用一行语句就完成的了这个任务。
可以将这句话的内容保存到一个文本文件中,并使用后缀名 .py
结尾,例如 hello_world.py
,在命令行下运行这个程序:
python hello_world.py
也会输出 "hello world!"
的结果。
Python 之禅
在 Python 解释器下输入
import this
会出来这样一首小诗:
In [2]:
- import this
- The Zen of Python, by Tim Peters
- Beautiful is better than ugly.
- Explicit is better than implicit.
- Simple is better than complex.
- Complex is better than complicated.
- Flat is better than nested.
- Sparse is better than dense.
- Readability counts.
- Special cases aren't special enough to break the rules.
- Although practicality beats purity.
- Errors should never pass silently.
- Unless explicitly silenced.
- In the face of ambiguity, refuse the temptation to guess.
- There should be one-- and preferably only one --obvious way to do it.
- Although that way may not be obvious at first unless you're Dutch.
- Now is better than never.
- Although never is often better than *right* now.
- If the implementation is hard to explain, it's a bad idea.
- If the implementation is easy to explain, it may be a good idea.
- Namespaces are one honking great idea -- let's do more of those!
这首诗反映了Python的设计哲学——Python是一种追求优雅,明确,简单的编程语言,但事实上,产生这首诗的代码并没有写的那么简单易懂:
In [3]:
- s = """Gur Mra bs Clguba, ol Gvz Crgref
- Ornhgvshy vf orggre guna htyl.
- Rkcyvpvg vf orggre guna vzcyvpvg.
- Fvzcyr vf orggre guna pbzcyrk.
- Pbzcyrk vf orggre guna pbzcyvpngrq.
- Syng vf orggre guna arfgrq.
- Fcnefr vf orggre guna qrafr.
- Ernqnovyvgl pbhagf.
- Fcrpvny pnfrf nera'g fcrpvny rabhtu gb oernx gur ehyrf.
- Nygubhtu cenpgvpnyvgl orngf chevgl.
- Reebef fubhyq arire cnff fvyragyl.
- Hayrff rkcyvpvgyl fvyraprq.
- Va gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff.
- Gurer fubhyq or bar-- naq cersrenoyl bayl bar --boivbhf jnl gb qb vg.
- Nygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh'er Qhgpu.
- Abj vf orggre guna arire.
- Nygubhtu arire vf bsgra orggre guna *evtug* abj.
- Vs gur vzcyrzragngvba vf uneq gb rkcynva, vg'f n onq vqrn.
- Vs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn.
- Anzrfcnprf ner bar ubaxvat terng vqrn -- yrg'f qb zber bs gubfr!"""
- d = {}
- for c in (65, 97):
- for i in range(26):
- d[chr(i+c)] = chr((i+13) % 26 + c)
- print "".join([d.get(c, c) for c in s])
- The Zen of Python, by Tim Peters
- Beautiful is better than ugly.
- Explicit is better than implicit.
- Simple is better than complex.
- Complex is better than complicated.
- Flat is better than nested.
- Sparse is better than dense.
- Readability counts.
- Special cases aren't special enough to break the rules.
- Although practicality beats purity.
- Errors should never pass silently.
- Unless explicitly silenced.
- In the face of ambiguity, refuse the temptation to guess.
- There should be one-- and preferably only one --obvious way to do it.
- Although that way may not be obvious at first unless you're Dutch.
- Now is better than never.
- Although never is often better than *right* now.
- If the implementation is hard to explain, it's a bad idea.
- If the implementation is easy to explain, it may be a good idea.
- Namespaces are one honking great idea -- let's do more of those!
Life is short. Use Python.