您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > python速成-刘鑫
......Python语言速成刘鑫liuxin2@kingsoft.com两小时内学会PythonNovember10,2010......预备内容......目标人群I有其它语言经验的技术人员I对Python很少或没有了解I想要短时间学会实用的Python编程知识I想要了解深入学习Python的切入点......目标人群I有其它语言经验的技术人员I对Python很少或没有了解I想要短时间学会实用的Python编程知识I想要了解深入学习Python的切入点......目标人群I有其它语言经验的技术人员I对Python很少或没有了解I想要短时间学会实用的Python编程知识I想要了解深入学习Python的切入点......目标人群I有其它语言经验的技术人员I对Python很少或没有了解I想要短时间学会实用的Python编程知识I想要了解深入学习Python的切入点......我们的目标I了解常用的Python开发环境IPython的基本语法,达到可用程度I了解一些常用的小技巧I了解Python“特有”的一些开发方法I学会管理Python环境I面向2.6/2.7版......我们的目标I了解常用的Python开发环境IPython的基本语法,达到可用程度I了解一些常用的小技巧I了解Python“特有”的一些开发方法I学会管理Python环境I面向2.6/2.7版......我们的目标I了解常用的Python开发环境IPython的基本语法,达到可用程度I了解一些常用的小技巧I了解Python“特有”的一些开发方法I学会管理Python环境I面向2.6/2.7版......我们的目标I了解常用的Python开发环境IPython的基本语法,达到可用程度I了解一些常用的小技巧I了解Python“特有”的一些开发方法I学会管理Python环境I面向2.6/2.7版......我们的目标I了解常用的Python开发环境IPython的基本语法,达到可用程度I了解一些常用的小技巧I了解Python“特有”的一些开发方法I学会管理Python环境I面向2.6/2.7版......我们的目标I了解常用的Python开发环境IPython的基本语法,达到可用程度I了解一些常用的小技巧I了解Python“特有”的一些开发方法I学会管理Python环境I面向2.6/2.7版......Python环境......PythonShellPythonShell对于Python使用者来说是重要的工作环境,所以除了内置的命令行,还有一些强化的Shell环境。Python开发工具中也有一些提供了内置的PythonShell。......PurePythonShellPython内置提供两套命令行环境:基于控制台的交互环境和基于TK图形系统的IDLE。Figure:Python......PurePythonShellIPython是Python官方文档中推荐的第三方扩展Shell,易学易用,外观友好,功能丰富,与系统环境融合良好,是非常好用的交互式环境。Figure:IPython......PurePythonShellBPython外观优美,提供了很多实用的Python命令行功能,如自动完成,代码提示,代码保存,命令行回溯等,是一个非常有特点的PythonShell。Figure:BPython......常见开发工具IIDLEIEmacs/VIMIPyDevI第三方编辑器......常见开发工具IIDLEIEmacs/VIMIPyDevI第三方编辑器......常见开发工具IIDLEIEmacs/VIMIPyDevI第三方编辑器......常见开发工具IIDLEIEmacs/VIMIPyDevI第三方编辑器......工具选择的几个参考因素I支持Python語法加亮I智能缩进ITAB/空格转换I多内码支持......工具选择的几个参考因素I支持Python語法加亮I智能缩进ITAB/空格转换I多内码支持......工具选择的几个参考因素I支持Python語法加亮I智能缩进ITAB/空格转换I多内码支持......工具选择的几个参考因素I支持Python語法加亮I智能缩进ITAB/空格转换I多内码支持......基本语法......变量、命名与数据类型......HelloWorld1printHelloWorld#我是注释2HelloWorld3printu你好!#这里是一个字符串unicode你好......变量、命名与对象Python中使用变量无需声明,每一个命名赋值后即在其命名域中生效,成为一个变量,每个命名都绑定到一个对象。1printx#会出错2...3x=I'mavar#赋值即定义4printx5I'mavar......桌面计算器Python有无限长数值类型,支持各数数值计算。1205.0#普通数学运算2100.0372#幂运算44951+2j#内置复数类型6(1+2j)7importmath#导入模块8dir(math)#查看math9...10help(math.sin)#自省11...12#欧拉公式,限于浮点精度,得到一个极小复数13math.e(math.pi1j)+1141.2246063538223773e 16j......“面向数据结构”的Python对于Python来说,内置的数据结构不仅仅是语法糖,更是Python架构的基本组成部分。1l=['1',2,'abc',None]#这是一个List2d=f'a':1,'b':2g#这是一个dict3t=('x','y','z')#这是一个tuple4s=set([1,2,3])#这是一个set5s=f1,2,3g#这是一个set,2.7新语法......逻辑与逻辑运算符Python有基本的逻辑类型,多种数据类型参与逻辑判断时,规则类似于C语言。1True2True3False4False5[]and1#and/or运算符6[]7[]or1#Python的隐式逻辑判断规则类似c......None类似于关系型数据库的NULL1None23Noneand145Noneor1617False==None8False......基本流程控制......逻辑判断1a='x'if12else'y'#if/else表达式2#Python强制缩进,每一个冒号符的下一行缩进一级3if0xf0b11011101:4...print'abc'5...else:6...print1237...8123......逻辑判断多重逻辑分支1if0x=2:2...print'0x=2'3...elif2x=4:4...print'2x=4'5...elif4x=8:6...print'4x=8'7...else:8...print'x8'9...10x8......For循环Python的For循环基于对线性容器的迭代。1l=range(5,10,2)2foriinl:3...printi455769......迭代仿线性对象只要接口符合,即使不是线性容器也可以:1f=open(sample0.py)2forlineinf:3...printline4.........While循环C式的for循环与while同构,Python也提供了这种形式:1x=102whilex%13!=0:3...printx4...x+=15...610711812......错误与异常......异常处理至Python2.5,Python已经有了相当完整的异常处理机制1f=None2try:3f=open(sample0.py)4forlineinf:5printline6exceptExceptionase:7printe8finally:9f.close()......With语句作为一种退化的形式,with可以更简洁的保护外部资源,使之不会因异常而泄漏。1withopen(sample0.py)asf:2...forlineinf:3...printline4.........代码抽象......函数`return`从函数中退出,并携带返回值,1deffoo(x):#基本定义2...#2.6+的字符串格式化3...return'youinputf0g'.format(x)4printfoo('liuxin2')5youinputliuxin2......函数参数技巧下例涉及参数默认值、可变参数和关键字参数1defploynomial(x=0,args,keys):2ploy=fg3ifx==0:4return05#同时迭代出序列索引和元素6fortimes,factorinenumerate(args):7ploy[times]=factor......函数参数技巧续上页1#在字典上迭代2fortimes,factor3inkeys.iteritems():4#这里运用了切片技巧5ploy[int(times[1:])]=factor6returnsum(valuexkey7forkey,value8inploy.iteritems())......函数参数技巧使用上例的函数,计算7+2x2+5x3+20x9+21x12在x=5时的值:1printploynomial(5,7,2,5,2x9=20,x12=21)351660157674l=[7,2,5]5#这个字典的构造过程也使用了关键字参数6d=dict(x9=20,x12=21)7printploynomial(5,l,d)......面向对象Python的面向对象机制类似Smalltalk。采用全动态语法。......类定义1importdatetime23classMyClass(object):#单根类4definit(self):#显式自引用变量5self.createat=n6datetime.datetime.now()7defstr(self):#重载父类的方法8returnmycreateatf0gn9.format(self.createat)......更多自由,更少限制Python可以在运行时动态的修改对象结构。1importnew2obj=MyClass()3obj.hello=Hello#动态添加成员对象4say=lambdaself:self.createat5obj.say=new.instancemethod(6lambdaself:self.createat,7obj,MyClass)8#动态添加成员方法,得到obj.。createat9printobj.say()......更多自由,更少限制Python中没有真正意义的私有成员(可以定义形如__obj的成员以阻止外部访问)。Python编程风格不强制类型匹配和转换,通常鼓励直接访问成员。——即所谓ducktyping。......代码组织......模块与包Python中,每一个文件被视作一个模块(module),每个带有__init__.py文件的目录被视作一个包(package)。......模块与包的搜索除了当前目录,Python虚拟机按sys.path中的路径搜索包所在的位置,可以通过以下方式修改:I修改sys.pathI在sys.path指定的目录中加入.pth文件,其中写入路径文本I定制一个名为PATHONPATH的系统变量......生存期行为除非显式reload,否则每进程内,每个模块最多加载一次,在不同位置import不会重复加载......深入Python......生成器y
本文标题:python速成-刘鑫
链接地址:https://www.777doc.com/doc-5915659 .html