Presentation is loading. Please wait.

Presentation is loading. Please wait.

Python入门培训演示 系统测试部 叶华 文件级别:公开 2011-10-25.

Similar presentations


Presentation on theme: "Python入门培训演示 系统测试部 叶华 文件级别:公开 2011-10-25."— Presentation transcript:

1 Python入门培训演示 系统测试部 叶华 文件级别:公开

2 目录 Python的介绍 Python基本使用 Python实例 参考资料

3 Python的介绍----python与其它语言的区别
Python PK C: python是动态编译语言,c 是静态编辑语言 。 C中内容管理是由开发者管理,python中内存问题由python解释器负责。 python有很多库文件。C语言中对于混杂数组(python中得列表)和哈希表(python中得字典)还没有想要的标准库。 Python 不能用来写内核。 借助Python语言提供的API,使用C或者C++来对Python进行功能性扩展 Python PK Java : python是动态编译语言,Java是静态编辑语言。 Python支持面向对象&函数编程方式。java支持面向对象。 Python比Java要简单,非常适合与构造快速原型。 Python和Java 适合多名程序员以渐进方式协同开发大型项目。 Python PK SHELL : python语法简单,可移植性好。 Shell代码重用读低,写出来得脚本又臭又长。Python可以重用代码,提倡简洁的代码设计,高级的数据库结构和模块化组建。

4 Python的介绍----历史 Python是自由软件的丰硕成果之一 创始人 Guido van Rossum
时间地点 年圣诞节期间在阿姆斯特丹创造 名字来源 大蟒蛇飞行马戏团的爱好者 渊源 从ABC发展而来 主要受Modula-3的影响 结合了Unix shell和C的习惯 Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为 ABC 语言的一种继承。之所以选中 Python(大蟒蛇的意思)作为程序的名字,是因为他是一个Monty Python的飞行马戏团的爱好者。 ABC是由Guido参加设计的一种教学语言。就Guido本人看来,ABC 这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido 认为是非开放造成的。Guido 决心在 Python 中避免这一错误(的确如此,Python 与其它的语言如C、C++和Java结合的非常好)。同时,他还想实现在 ABC 中闪现过但未曾实现的东西。 就这样,Python在Guido手中诞生了。实际上,第一个实现是在Mac机上。可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。

5 Python的介绍----运用领域 桌面GUI软件开发(wxPython,PyQT…)
网络应用开发(内置模块,Twistd,Stackless…) 2/3D图形处理,游戏开发 (PIL,pyGame…) 文档处理,科学计算(moinmoin,numpy…) Web应用开发(Django,ZOPE,web.py,Quixote…) 移动设备应用开发(PyS60…) 数据库开发(支持SQL和NOSQL,ZODB…) 嵌入其它应用(嵌入C/C++,delphi,调用DLL…)

6 Python的介绍----开发环境 IDLE – 集成开发环境。安装包自带,交互模式 UliPad – 国人基于wxPython写的,推荐!
Eclipse+pydev – 收费的 Eric4 – 基于PyQT4,功能强大 Boa  -- 类似于delphi的IDE(wxPython) WingIDE -- 共享软件 VIM、Emacs – 主要在linux下使用 其它编辑器 :UE,notepad++,editplus…

7 Python的介绍----优点 简单————Python是一种代表简单主义思想的语言。 易学————关键字少 ,结构简单 ,语法清晰。
免费、开源————Python是FLOSS(自由/开放源码软件)之一。 高层语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节。 解释性————Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行程序。 可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就可以在下述任何平台上面运行。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至还有PocketPC和Symbian! 面向对象————Python即支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。 丰富的库————Python标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作 解释型语言: 源代码>解释器>输出 编码型语言:c/c++ 源代码>编译>目标代码>执行>输出

8 Python的介绍----语法特点 动态语言特性 — 可在运行时改变对象本身(属性和方法等)
多个语句在一行使用“;”分隔 注释符是#,注释多行使用doc string(''' ''') 变量无需类型定义 可进行函数式编程(FP) Python3.x的变迁 函数式编程(FP)中一个思想是,函数调用应该没有“副作用”,就是不能依赖于状态,也没法修改状态。这样做的一个好处是每个函数都很容易理解,可读性好。 Python3.0 1.性能 Py3.0运行pystone benchmark的速度比Py2.5慢30%。Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可以取得很好的优化结果。 2.编码 Py3.0源码文件默认使用utf-8编码,这就使得以下代码是合法的: >>>中国 = 'china' >>> print(中国) china 3.语法 1)去除了<>,全部改用!= 2)去除``,全部改用repr() 3)关键词加入as和with,还有True,False,None 4)整型除法返回浮点数,要得到整型结果,请使用// 5)加入nonlocal语句。使用noclocal x可以直接指派外围(非全局)变量 6)去除print语句,加入print()函数实现相同的功能。同样的还有exec语句,已经改为exec()函数 7)改变了顺序操作符的行为,例如x<y,当x和y类型不匹配时抛出TypeError而不是返回随即的bool值 8)输入函数改变了: Old: guess = int(raw_input('Enter an integer : ')) #读取键盘输入的方法 New: guess = int(input('Enter an integer : ')) 9)去除元组参数解包。不能def(a, (b, c)):pass这样定义函数了 10)新式的8进制字变量,相应地修改了oct()函数。2.x的方式如下: >>> 0666 438 >>> oct(438) '0666' 3.0这样: SyntaxError: invalid token (<pyshell#63>, line 1) >>> 0o666 '0o666' 11)增加了2进制字面量和bin()函数 … …

9 3.x版本由于库没有跟上改进,暂时不推荐使用
Python的介绍----版本 本讲义约定使用Python 2.x版本 3.x版本由于库没有跟上改进,暂时不推荐使用

10 Python的介绍----安装python
Linux用户 #下载python包,并安装 $tar –zxf python2.7.tar.gz $cd Python2.7 $./configure $make && make install #建立软连接 $mv /usr/bin/python /usr/bin/python.bak $ln -s /usr/local/bin/python2.6 /usr/bin/python #检查 $python –V Windows用户 下载Python 发布的 “官方” Python 安装程序 选择最新的 Python Windows 安装程序,下载 .exe 安装文件。 双击安装程序 Python-2.xxx.yyy.exe。 测试是否安装成功:开始->程序->python 2.5->启动 Python command line,然后输入:print "Hello World",如果输出"Hello World",那就表明安装成功了。 增加环境变量:右键“我的电脑”->“属性”->“高级”->“环境变量”,在path里输入你的python安装位置。

11 Python的介绍----python启动
Linux启动python Windows启动python Linux: ctrl+d 提出python编辑环境 Windows :Ctrl+z 退出python编辑环境

12 Python的介绍----ipython安装
ipython安装(ipython是一种python的shell编程环境) #ubuntu下 : $ sudo apt-get install ipython #centOS下: $yum install ipython #下载一个ipython版本到本机安装。此处以ipython 版本为例: $ tar –zxf ipython tar.gz $ cd ipython $ python setup.py ipython启动 C:\Users\Admin>ipython Python (r271:86832, Nov , 18:30:46) [MSC v bit (Intel)] Type "copyright", "credits" or "license" for more information. IPython An enhanced Interactive Python. ? > Introduction and overview of IPython's features. %quickref -> Quick reference. help > Python's own help system. object? -> Details about 'object', use 'object??' for extra details. In [1]: ipython 是一个 python 的交互式 shell,比默认的python shell 好用得多,支持变量自动补全,自动缩近,支持 bash shell 命令,内置了许多很有用的功能和函数。

13 Python的介绍----程序执行 命令行模式 脚本模式 Linux: 在linux命令行输入python命令 Window :
在dos提示符下输入python命令 脚本模式 将python语句存入脚本文件,在命令行中执行它 $python hello.py hello world !

14 Python的基本使用 变量,表达式,语句 字符串 数据结构(列表,字典,序列) 控制流 函数 模块 异常处理 文件读写

15 表达式 –运算符(+、-、*、**、/、%)
Python的基本使用----变量,表达式,语句 变量赋值 a = 变量为int型 b = “test” 变量为字符型 x=y=z= 多重赋值 x,y,z = 1,2,”string” 多元赋值 表达式 –运算符(+、-、*、**、/、%) 表达式是由值,变量和运算符组成 >>> 加法 >>>3 ** 乘方 >>>5 / 除法 >>>5 \% 模 >>>‘Hello’ + ‘World’----- 字符窜相加(注意:字符串执行进行加法运算) >>>3 + (5 * 4) 混合运 语句 >>>message=”hello world” >>>print message Hello world Python语句中的基本规则和特殊字符: 1.’#’之后的字符为Python注释。 2.’\n’是标准换行分隔符。 3.’\’ 继续上一行。 4.’;’ 将两个语句连接在一行中。 5.’:’ 将代码块的头和体分开。 6.语句用缩进的方式体现。 7. 不同缩进度分割不同的代码块。 8.Python 文件以模块的形式组织。 变量: Python变量的使用环境非常宽松,变量没有明显的类型声明,而且变量类型不是固定的。 变量类型查看:type 字符串必须以进好标识开始,例如“abcdb”,“123456“,‘123456‘(Python中单引号和双引号没有区别) 标识符: 标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划线(‘ _’)。 标识符名称的其他部分可以由字母(大写或小写)、下划线(‘ _ ’)或数字(0-9)组 成。 标识符名称是对大小写敏感的。 表达式: 由值,变量和运算符组成:单一的值或则变量也可以当做表达式: 例子:一般的,单一值做表达式,变量做表达式 运算符: 运算符+、—、/ 、()的意义与数学中的意义基本相符。一个星号代表乘法,两个星号代表乘幂。除法运算。如果除数和被除数都是整数,则结果是截掉小数部分的整数。解决的办法是将除数或被除数任意之一加小数点,或者加小数点和零。 “%”模操作符,计算两个整数的余数。 语句: 语句是python解释器可以执行的命令。 组合: 将操作和语句结合起来: 例如:Print

16 Python的基本使用----字符串 赋值 操作
str1=“abcdefg” str2 = ‘ ’ 操作 >>>print str1[0] #输出第一个元素 >>>print str1[1:5] #输出1-4索引的元素 >>>len(str1) #输入字符串长度 >>>for char in str1: #for遍历字符串 print char >>>while index < len(str1) : #while 遍历字符串 letter=string[index] print letter index = index + 1 >>> ab in( not in ) “abcd ” #成员操作符 判断 >>> print str1[-1] 提示 : 字符串类型是不可以改变的,如果你想要改变一个字符窜就必须通过闯进一个新串的方法。即你不能只改变一个字符串的一个字符或一个字串。 序列类型操作符 对象 [not] in 序列 成员关系操作符 Seq1 + seq 连接操作符(+) Seq1 * seq 重复操作符(*) Seq1[n:m] 切片操作 字符串,有索引指定字符串中的某个字符。 索引从0开始

17 Python的基本使用----列表(list)
赋值 A=[10,11,12,13] #元素为整数 B=[“red”,”blue”,”green”] #元素为字符串 C=[] #定义空列表 E=A+B #两个列表相加 操作 >>> number = [0,1,2,3] ;number2=[“a”,”b”] #定义列表 >>>number[1:3] #某一部分元素 >>>len(number) #统计列表长度 >>> x = number[0] #赋值第一个元素 >>> number[0] = #修改元素值 >>>number.append(4) #追加元素 >>>number.insert(3,5) #插入元素 insert(索引位置,插入元素值) >>>number.extend(number2) #合并number & number 列 >>>number.pop(0) #删除第一个值 >>>del number[1] #删除元素 列表:一组任意类型的值,按照一定顺序组合而成的。组成列表的值叫做组员。每个元素被标识一个索引,索引从0开始。 列表:一组任意类型的值,按照一定顺序组合而成的。组成列表的值叫做组员。每个元素被标识一个索引,索引从0开始。

18 range(1,5) #返回一个整数列表 Python的基本使用----列表(list) range函数 操作
for i in range(1,5): print i range 函数,返回一个整数列表,列表中函数的第一个参数开始,到最后一个参数结束。

19 Python的基本使用----序列 赋值 操作 特色 与list类似,最大的不同序列是一种只读且不可变更的数据结构
f = (2,3,4,5) #整数序列 g = (,) # 空序列 h = (2, [3,4], (10,11,12)) # 多维列表 操作 x = f[1] # 将f[1]的元素值赋值x = 3 y = f[1:3] # 获得索引为1,2的元素 z = h[1][1] # 二维数组看待 z = 4 特色 与list类似,最大的不同序列是一种只读且不可变更的数据结构 不可取代序列中的任意一个元素,因为它是只读不可变更

20 Python的基本使用----字典(dict)
赋值 a = { } # 定义空字典 b = { ’x’: 3, ’y’: 4 } c = { ’uid’: 105, ’login’: ’beazley’, ’name’ : ’David Beazley’ } 操作 >>>u = c[’uid’] # 根据索引读取元素值 >>>c[’shell’] = “/bin/sh” # 重定义 >>>Copy = c.copy() #拷贝 >>>len(c) #字典元素量 >>>c.clean() #清空字典 字典:可以以字符串作为索引 A={‘索引’:值, …}

21 布尔表达式--- 逻辑操作符and or not
Python的基本使用----条件语句 if…else… if…elif… 语句 if y > 0 : print “ y > 0 ” elif y == 0 : print “ y == 0 ” else : print “ y < 0 ” 布尔表达式--- 逻辑操作符and or not 布尔表达式的值为真和假。真为1,假为0 a = 2 ; b = 4 ; c = 6 if b >= a and b <= c : print “b is between a and c ” if not (b < a or b > c ): print “b is still between a and c ” 布尔表达式--- 逻辑操作符and or not 布尔表达式的值为真和假。真为1,假为0 Python中有三种逻辑操作:and or not (语义:与、或、非) 逻辑操作符的操作数应该为布尔表达式,但是python对此处理比较灵活,即使操作数是数字,解释器也把他当成“表达式”。非0的数字的布尔值为1 ,0的布尔值为0。 在python中空字符串为假,非空字符串为真。非零的数位真。

22 Python的基本使用----循环语句 While 语句 For 语句(遍历序列的元素) import time i = 5
While(i) : print “hello world ! %s”%i time.sleep(1) i = i-1 For 语句(遍历序列的元素) for i in [3, 4, 10, 25]: print i # 字符串输出 for c in "Hello World": print c

23 Python的基本使用----控制流终止
continue continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后 继续 进行下一轮循环 break break语句是用来 终止 循环语句的 for i in range(1,5): print i if i == 4 : print “ over the test !” else : print “ test for continue command 1 !” Continue print “test for continue command 2 !” Continue & break 在条件语句中的功能与c语言中功能一样。

24 Python的基本使用----函数 def语句 返回多个值 def <name>(arg1,arg2…)
<statements> >>>def add(p1 ,p2): print p1,”+”, p2 “=”, p1+p2 >>>Add(1,2) 1 + 2 = 3 返回多个值 return 返回函数值,如果没有return语句,返回返回值为None。 def divide(a,b): q = a/b r = a - q*b return q,r x,y = divide(42,5) # x = 8, y = 2 def 函数名的定义:必须以字母开头,可以包括下划线“_”。但是关键字不能定义成函数名。 函数内语句数量任意,每个语句至少有个一空格的缩进,以表示此语句属于这个函数。 缩进结束的地方,函数结束。 目的:将一些复杂的操作隐藏起来,简化程序的结构,使其容易阅读。 Print 打印多个字符时,用“,” 隔开。

25 Python的基本使用----模块 程序可分成好几个模块: Import语句
一个py文件就是一个模块;目录下面增加__init__.py也是 # numbers.py def divide(a, b): q = a/b r = a - q*b return q, r def gcd(x, y): g = y while x > 0: g = x x = y % x y = g return g Import语句 import numbers x, y = numbers.divide(42,5) n = numbers.gcd( , 5683)

26 Python的基本使用----异常处理 try语句 raise语句 沒有处理的异常 >>> factorial(-1)
f = open("foo") except IOError : print "Couldn’t open ’foo’ . Sorry.“ raise语句 def factorial(n): if n < 0: raise ValueError , "Expected non-negative number" if (n <= 1): return 1 else: return n*factorial(n-1) 沒有处理的异常 >>> factorial(-1) Traceback (innermost last): File "<stdin>", line 1, in ? File "<stdin>", line 3, in factorial ValueError: Expected non-negative number >>> 异常信息分为两部分,冒号前面的是一种类型,之后是对此的简单说明。

27 open()函数 文件的读取/写入 格式化的输入 文件读写 使用%来格式化字符串 f = open(“foo”,“w”) # 写方式打开文件
g = open(“bar”,“r”) # 只读方式打开文件 f.close() #关闭文件 文件的读取/写入 f.write("Hello World") buff = g.read() # 读取文件所有数据 line = g.readline() # 读一行数据 lines = g.readlines() # 以列表的方法返回文件所有数据 格式化的输入 使用%来格式化字符串 for i in range(0,10): f.write("2 times %d = %d\n" % (i, 2*i))

28 Python实例 例子1---python语言开发脚本程序 例子2---python支持多平台

29 其他 类和对象,面向对象编程 Python的标准库与第三方库

30 Python参考资料 Python中文社区 http://python.cn/
Django官方网站

31 总结 Python是一门脚本编程语言 Python有很多第三方库 Ipython 编辑工具

32 Thank You


Download ppt "Python入门培训演示 系统测试部 叶华 文件级别:公开 2011-10-25."

Similar presentations


Ads by Google