Python内部培训(共41张)_第1页
Python内部培训(共41张)_第2页
Python内部培训(共41张)_第3页
Python内部培训(共41张)_第4页
Python内部培训(共41张)_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Python 内部培训PythonPython简介快速、高效的开发语言胶水语言生态链完善广泛用于科学计算、数据挖掘等领域本讲义约定使用Python 2.x版本3.x版本由于库没有跟上,暂时不推荐使用语法特色动态语言特性 可在运行时改变对象本身(属性和方法等)基于C/C+和JAVA,但有很大区别缩进方式,建议使用空格,不要用TAB多个语句在一行使用;分隔注释符是#,多行使用docstring()变量无需类型定义可进行函数式编程FPPython3.x的变迁编程规范PEP8 编码规范 Google Python 编码规范Google Python PEP8编码规范开发环境PyCharm(支持PEP8

2、 语法规范、跨平台、远程调试、上传)IPythonVIM 主要在linux下使用其它编辑器UE,notepad+,editplus工欲善其,事必先利其器开发环境PyCharm 调试Ctrl+Alt+S -属性配置Ctrl+Shift+Alt+L -格式化文件 PPE8Ctrl+B- 查看对象Ctrl+L -查找Ctrl+N -切换类Ctrl+Shift+N -切换文件Shift+F9/F10-Debug/Run单击行 -设置断点工欲善其,事必先利其器PDB调试Python m pdb xxx.pyb -设置断点 (行,函数名)s - step overn - nextc -continuer

3、-runL -显示代码Exit()工欲善其,事必先利其器字符编码Python2.x默认的是OS的本地编码Python3.x是unicode内部编码.py文件第一行:#coding=utf-8,不指定编码时,文件中包含非ASCII字符会报错s1 = 中文1s2 = u中文2print unicode(s1,utf-8).encode(gbk)print s2.encode(gbk)print type(unicode(s1,utf-8),type(s2),type(s2.encode(gbk)Hello world 表达式2 + 33 + (7 * 4)3 * 5Hello + World变量赋

4、值a = 4 3b = a * 4.5c = (a+b)/2.5a = “Hello World”x,y = 4+2,”python”pass 语句 不做任何事时使用if a lst = 1, 2, abc, 4, 5,.join(lst)1,2,abc,4,5列表list赋值a = 2, 3, 4 # A list of integerb = 2, 7, 3.5, “Hello” c = d = 2, a, b # 嵌套列表e = a + b # Join two lists操作x = a1 # Get 2nd element (0 is first)y = b1:3 # Return a

5、sub-listz = d102 # Nested listsb0 = 42 # Change an elementprint sum(a)# = 9x = a.pop(0)# pop第一个数据tuple赋值f = (2,3,4,5) # A tuple of integersg = (,) # An empty tupleh = (2, 3,4, (10,11,12)# A tuple containing mixed objects操作x = f1 # Element access. x = 3y = f1:3 # Slices. y = (3,4)z = h11 # Nesting. z

6、 = 4特色与list类似,最大的不同tuple是一种只读且不可变更的数据结构不可取代tuple中的任意一个元素,因为它是只读不可变更的,也不能进行像list一样的加法操作字典dict赋值a = # An empty dictionaryb = x: 3, y: 4 #有点类似json格式c = uid: 105, login: beazley, name : David Beazley 操作u = cuid # Get an elementcshell = /bin/sh # Set an elementdict2 = dict2.update(dict1) #使用dict1中的数据去更新d

7、ict2if c.has_key(directory): # Check for presence of an memberd = cdirectoryelse:d = Noned = c.get(“directory”,None) # 带默认值的方式集合set set( “hello”, “world”, “of”, “words”, “of”, “world” )set(world, hello, words, of)如何删除重复数据Ls1 = 1,3,5,3,7,4,5Ls2 = list(set(Ls1)可以使用&、|求两个set的交集、并集、补集、全集s1 = set(1,2

8、,3)s2 = set(2,4)s1 & s2#2 s1 | s2#1,2,3,4s1 - s2#1,3s1 s2#1,3,4Hello worldifelifelse语句: 没有switch,有更高级的变通方式(dict字典方式)if a = +:b = +elif a = -:b = -else:b = None布尔表达式 and, or, notif b = a and b = c:print bool is Trueif not (b c):print not expr, value is True循环While.else语句while a 0:g = xx = y % xy

9、= greturn gimport语句import numbersx,y = numbers.divide(42,5)n = numbers.gcd(7291823, 5683)_import_()动态载入模块一个模块只载入一次实例会继承新加载的模块异常处理try语句try:f = open(“foo“,”r”)except IOError:print Couldnt open foo. Sorry.“Finally BaseException,e: logging.exception(e)raise语句def factorial(n):if n 0:raise ValueError,Expe

10、cted non-negative numberif (n factorial(-1)Traceback (innermost last):File , line 1, in ?File , line 3, in factorialValueError: Expected non-negative number文件操作open()函数f = open(foo,w) # Open a file for writingg = open(bar,r) # Open a file for reading文件的读取/写入f.write(Hello World)buff = g.read() # Read

11、 all dataline = g.readline() # Read a single linelines = g.readlines() # Read data as a list of lines异常处理 try: f=open(“foo”,”w”) exception: XXX文件操作With语句 With open(foo) as file: data=file.read()大文件yield指针?引用?Python里面没有指针所有都是对象对象之间都是引用(引用计数方式)常用的对象都有cache默认是浅拷贝,深拷贝代码importcopyls1 = 1,”test”,(3.4,7),“

12、key”:1, “comment”:”your comment”ls2 = copy.deepcopy(ls1)正则表达式导入模块:import rep = pile(rab*, re.IGNORECASE)p = pile(a-z+)map/reduce云计算的核心算法lMap是将一个大任务拆分为很多个小任务lReduce则将每个小任务的计算结果进行收集和汇总lFilter 过滤Python并行多线程Python并行多线程(map)Python并行多进程l同步模式(apply_async)l异步模式(apply)Python并行多进程(map)Map 为异步模式单元测试unittest模块中的TestCase 类代表测试用例性能优化Python的开发效率很高Python的执行效率很低,比C+和JAVA都慢循环/函数调用等很消耗资源数据结构的性能很高,目前可以认为是优化到极致优化方式:用timeit分析之后优化对应代码NUMPY与IO优化使用C模块来替换业务热点部分地方可以使用map来替代

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论