1、起源“ 1989年 12月,我在寻找一门 “ 课余 ”编程项目来打发圣诞节前后的时间。我的办公室会关门,但我有一台家用电脑,而且没有太多其它东西。我决定为当时我正构思的一个新的脚本语言写一个解释器,它是 ABC 语言的后代,对 UNIX / C 程序员会有吸引力。作为一个略微有些无关想法的人,和一个 蒙提派森( Monty Python)的飞行马戏团的狂热爱好者,我选择了 Python 作为项目的标题。 ”作者 :Guido Van Rossum (GvR)Computer Programming for Everybody1999年, Guido向 DARPA 阐述 Python语言的特性:
2、简单、直观、强大开源,以便任何人都可以为它做贡献代码像纯英语那样容易理解适用于短期开发的日常任务这些想法中的一些已经成为现实。 Python 已经成为一门流行的编程语言,尤其是在互联网环境下。特性 交互式命令行 (Interactive console) 不只是脚本 强大易用的标准库 胶水语言 (glue language) 收放自如 (scalability) 不要括号交互式命令行 (Interactive console)Python可以单步直译运行。运行 Python解释器或 IDLE进入交互式命令行的环境,你可以在提示符号 旁输入代码,按 Enter键 print(“Hello, Py
3、thon!“) Hello, Python!不只是脚本原因是 “ 脚本语言 ” 泛指仅作简单编程任务的语言,如 Lua、 JavaScript等,它们只能处理简单的任务而 Python是面向对象编程( OOP)的,支持异常处理和类型检查Python的支持者较喜欢称它为一种 高阶动态编程语言强大易用的标准库 核心库不超过 10Mb Html、 Xml解析: BeautifulSoup, Expat 字符串处理:字典、数组切片、正则表达式 re 单元测试: PyUnit 代码版本控制: PySVN 网络访问: urllib2 图形模块: Tkinter、 PyTCL、 WxPython 串行化、多
4、线程等 扩展标准库十分容易胶水语言 (glue language)Python经常用作将不同语言编写的程序 “ 粘 ” 在一起的胶水语言。Google内部的很多项目使用 C+编写性能要求极高的部分,然后用 Python调用相应的模块。C/C+: Boost.Python使得 Python 和 C+ 的类库能互相调用( .pyc)Java: Jython 是用 Java实现的 Python,可同时使用二者的类库.NET:IronPython是 Python在 .NET平台上的版本。收放自如 (scalability)Python内建的数据结构( variable, list 和 dict)以及对
5、多线程分布式操作的支持,使得程序可以用相同的代码处理不同规模的数据,以及并发的用户需求。不要括号Python使用缩进而不是括号来进行代码段标识,减少了视觉上的混乱,并且使程序变短,从而提高了程序的可读性。用途 脚本程序 大型程序的原型开发 科学计算 网络应用 计算机图形编程应用举例 Google - 谷歌在很多项目中用 python作为网络应用的后端,如 Google Groups、 Gmail、 Google Maps等, Google App Engine支持 python作为开发语言 NASA - 美国宇航局,从 1994年起把 python作为主要开发语言 豆瓣网 - 图书、唱片、电影
6、等文化产品的资料数据库网站 Torchlight -Python编写的大型 3D游戏,原 Blizzard公司人员制作发行,开源。 Blender - 以 C与 Python开发的开源 3D绘图软件 在科学研究中也得到广泛的应用。这么强大!赶紧开始吧!开发环境 PyCharm(支持 PEP8 语法规范、跨平台、远程调试、上传 ) Ipython VIM (主要 在 linux下 使用 ) 其它编辑器UE, notepad+, editplus工欲善 其,事 必先利其器字符编码 Python默认代码文件为 ASCII编码不指定编码时,文件中包含非 ASCII字符会报错 第一行加 #coding=
7、utf-8,告诉编译器使用 utf-8编码#coding=utf-8print u“你好! “程序运行方式 使用 IDLE或 python命令行工具进行交互式编程 调用解释器执行 py脚本文件写个 bat双击行和缩进Python使用缩进来表示代码块,而不是 使用大括号 来表示代码块,缩进在 python里有重要的语法意义。建议使用四个空格来缩进代码,不建议使用制表符。注释 单行注释使用 # 号:# 第一个注释print “Hello, Python!“; # 第二个注释多行注释三个双引号或三个单引号:“ 这是多行注释,使用双引号。 这是多行注释,使用双引号。 这是多行注释,使用双引号。 “He
8、llo world 表达式3 + (7 * 4)+i #but no i+3 * 5Hello + Worldnot a and not ca b or c d 变量赋值a = 4 = a and b c):print not expr, value is True循环While语句while a int字符串查找 S.rfind(sub ,start ,end) - int字符串反向查找 S.replace(old, new, count)- string字符串替换 S.strip(chars) - string剔除两端空白 使用 help函数查询类型帮助列表 list 赋值a = 2, 3
9、, 4 # A list of integerb = 2, 7, 3.5, “Hello” c = d = 2, a, b # 嵌套列表e = x*x for x in range(10) 访问元素x = a1 # Get 2nd element (0 is first)a1 = 5z = d102 # Nested lists列表运算符p 切片操作a = 2, 3, 4, 5, 6a:2 #2, 3a2: #4, 5, 6a2:4 #4, 5a: # 2, 3, 4, 5, 6p 删除元素 deldel a1p 列表长度 lenlen(a)p 列表相加a + bp 复制a * 2p 包含判断
10、if 3 in a : pass列表方法1 list.append(obj)在列表末尾添加新的 对 象2 list.count(obj)统计 某个元素在列表中出 现 的次数3 list.extend(seq)在列表末尾一次性追加另一个序列中的多个 值 (用新列表 扩 展原来的列表)4 list.index(obj)从列表中找出某个 值 第一个匹配 项 的索引位置5 list.insert(index, obj)将 对 象插入列表6 list.pop(obj=list-1)移除列表中的一个元素(默 认 最后一个元素),并且返回 该 元素的 值7 list.remove(obj)移除列表中某个 值 的第一个匹配 项8 list.reverse()反向列表中元素9 list.sort(func)对 原列表 进 行排序元组 tuple 元组的元素不能修改 元组使用小括号,列表使用方括号Python的元组与列表类似,不同之处:tup1 = (physics, chemistry, 1997, 2000)tup2 = (1, 2, 3, 4, 5 )tup3 = “a“, “b“, “c“, “d“;