Python概述Python用途:Python 对操作系统服务的内置接口,使其成为编写可移植的维护操作系统的管理工具和部件(有时也被称为Shell 工具)的理想工具。
Python 程序可以搜索文件和目录树,可以运行其他程序,用进程或线程进行并行处理等等。
Python 提供了标准Internet 模块,使Python 能够广泛地在多种网络任务中发挥作用,无论是在服务器端还是在客户端都是如此。
脚本可以通过套接字进行通信;从发给服务器端的CGI 脚本的表单中解析信息;通过URL 获取网页;从获取的网页中解析HTML 和XML 文件;通过XML-RPC 、SOAP 和Telnet 通信等。
Python 的库使这一切变得相当简单。
Python 可以通过C/C++ 系统进行扩展,并能够嵌套C/C++ 系统的特性,使其能够作为一种灵活的粘合语言,脚本化处理其他系统和组件的行为。
例如,将一个C库集成到Python 中,能够利用Python 进行测试并调用库中的其他组件;将Python 嵌入到产品中,在不需要重新编译整个产品或分发源代码的情况下,能够进行产品的单独定制。
等等参考:/art/200907/137347.htm1、基本语法:提示符:>>> 是键入python语句的提示符。
获取帮助:help(…帮助的内容‟) 按q退出帮助。
缩进:同一层次的语句要有相同的缩进,一般为四个空格。
注释:# 语句使用字符串:用单引号(‟)或双引号(”)扩住,如:‘hello world和”hello world!”保留空格和制表符,单引号和双引号使用方法相同。
三引号(‟‟‟)指示一个多行字符串,在三引号中,双引号与单引号被保留,如:‟‟‟hello world!“Who am I ?”I asked.‟‟‟转义符:如果一个字符串为what‟s your name? 可以有如下方法显示:使用双引号:”what‟s your name?”转义符:…what‟\s your name?‟其中反斜杠\号为转义符、行末单独一个反斜杠\表示字符串在下一行继续,而不是开始新的一行、可用转义符\\来指示反斜杠本身。
自然字符串:指示某些不需要如转义符那样的不需特别处理的字符串,需指定一个自然字符串,通过给字符串首加r 或者R来指定如:r”New lines are indicated by \n”。
\:在语句中将一行代码分解成几行,如if(a==1) and\(b==0):;号允许将多个语句写在一行如:a=1;b=2下划线标识:__xxx__系统定义名字__xxx类中的私有变量名输出:print …内容‟print 变量如print i输入:raw_input('内容') 设定输入内容数据类型:int(raw_input('内容')) 变量:如:i=5 n=8 i=i+1运算符:同一般语言。
表达式:例子:>>> length=5>>> breadth=2>>> area=length*breadth>>> print 'Area is',areaArea is 10>>> print 'Perimeter is',2*(length+breadth)Perimeter is 14连接字符串:>>> name='jim'>>> age='17'>>> print '%s is %s sui'%(name,age)jim is 17 sui2、控制流(控制语句):If 例子:>>> a=5>>> b=7>>> if a==b:print 'xxxxxxxxxx'elif a>b:print 'zzzzzzzzzzz'else: print 'vvvvvvvvvvv'输出:vvvvvvvvvvv注意:if后面必须有一个冒号条件表达式:例子:>>>x=3;y=4>>> smaller=x if x<y else y>>> smaller3While:在一个条件为真的情况下,重复执行语句如:while True:执行的语句#注意True ,T大写for…in: 在一序列的对象上递归即逐一使用队列中的每个项目如:>>> for i in range(1,5):print ielse:print 'OVER'输出:1234OVERrange函数生成序列[1,2,3,4,] 默认range的步长为1,如果为range提供第三个数则指定步长,如:range(1,5,2),则给出序列[1,3],for i in range(1,5)等价于for i in [1,2,3,4]。
continue、break同一般语言。
pass: 不做任何事,可用来标记以后将要完成的代码迭代器:迭代器就是有一个next()方法的对象,当一个循环机制需要下一项时,用迭代器的next()方法来获得它。
如:>>> mytuple=(123,'xyz',45.67)>>> i=iter(mytuple)>>> i.next()123>>> i.next()'xyz'3、函数定义函数: def 函数名(参数):函数体如:>>> def printMax(a,b):if a>b:print a,'is max number'else:print b,'is max number'>>> printMax(3,4)4 is max number>>> x=5;y=7>>> printMax(x,y)7 is max number文档字符串:适用于函数,模块,类。
文档字符串的惯例是一个多行字符串,首行以大写字母开始,句号结尾。
第二行是空行,第三行开始是详细的描述。
可以使用__doc__(注意是双下划线)调用函数的文档字符串属性,如:>>> def printMax(x,y):'''Print the max num of two numbers.The two values must be integer.'''x=int(x)y=int(y)if x>y:print x,'is max number'else:print y,'is max number'>>> printMax(3,5)5 is max number>>> print printMax.__doc__Print the max num of two numbers.The two values must be integer.装饰器:装饰器就是要让一个函数在执行的时候,去做一些事情,即装饰函数,比如,我要看看这些函数是不是有docstring,将这个功能拿出来,定义一个装饰器:def showmedoc(func):if func.__doc__:print 'has doc'else:print 'no doc'return func #必须返回@showmedoc #装饰器def f1():'''i have doc'''pass@showmedocdef f2():pass执行结果:>>>has docno doc>>>Lambda:Python允许用lambda关键字创建匿名函数,lambda表达式返回可调用的函数对象。
比如:def f(x):return x**2print f(3)a = lambda x: x**2print a(3)a = lambda x,y: x+yprint a(1,2)一个lambda语句就相当于一个函数定义,调用的时候也和函数一样。
filter(func,seq):调用一个布尔函数来遍历每个seq中的元素返回一个使func 返回值为true 的元素的列表。
map(func,seq):将函数func作用于给定的序列的每个元素,并用一个列表来提供返回值。
reduce(func,seq):将函数作用于seq 序列的元素,处理后减少序列为一个单一的返回值4、模块导入模块:import 模块名使用模块中的变量:模块名.变量名如:import syssys.argv每个模块都有它的__name__,如果它是‟__main__‟,说明这个模块被用户单独执行。
自定义模块:将自己定义的程序保存为自定义模块名.py 文件,通过import 自定义模块名dir(模块名):列出该模块定义的名称列表,包括函数,类,变量。
5、数据结构列表:shoplist=[…元素1‟,…元素2‟,…元素3‟]向列表中加入新元素:append.shoplist[…元素4‟]删除列表中元素:del shoplist[0]元组:元组和列表相似,元组的内容不可变,不可修改元组Yuanzu=(…元素1‟,…元素2‟,…元素3‟)如果声明一个只有一个元素的元组:yuanzu=(…元素1‟,)获取元组长度:len(元组名)字典:采用键值对形式d={键1:值1,键2:值2}修改键对应的值:d[…键1‟] =‟新的值‟删除元素:del d[…键1‟]序列的切片操作:定义一个列表list=['a','b','c','d'],list[-1]为d 、list[-2]为c 即从后开始取,list[1 :3] 为b,c 其中1的位置代表从切片开始的位置,3的位置代表切片停止的位置拷贝:(这就是Pythod优势所在,可以用这个来操作命令行很方面)Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy 模块。
1. copy.copy 浅拷贝只拷贝父对象,不会拷贝对象的内部的子对象。