Python3入门优秀课件_第1页
Python3入门优秀课件_第2页
Python3入门优秀课件_第3页
Python3入门优秀课件_第4页
Python3入门优秀课件_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

Python3入门邓笛2023年4月22日目录21Python概述2变量和内建数据类型3语句4函数5标准库模块6程序调试关于Python一种编程语言特性取自Perl和Java,以及来自C,C++,Scheme,Haskell,Smalltalk,Ada,Simula,…等语言的影响开源免费;可以获取源代码可以下载到你的系统中由GuidovanRossum编写名称源自MontyPython'sFlyingCircus…第一版发布于当前版本:3.4、2.7版本间的改变采用进化策略向下不兼容问题很少但是确实有…最大的改变:由2.X到3.X3Python的特点脚本语言解释型语言没有编译/链接阶段写完即可运行比C,C++要慢优雅的设计;“紧凑”设计目标临时应用脚本可重用的模块大型系统面向对象非常优秀的设计当然你不一定要用到这点有用的错误提示信息自动内存处理不依赖于特定操作系统在Unix与Windows上都可运行即使对文件系统操作的代码也是不依赖于操作系统的大量的标准库大量的第三方组件与外部C代码整合4>>>print("Helloworld!")Helloworld!>>>2**101024>>>j=0>>>foriinrange(1,11,1):...j=j+i...>>>print(j)55>>>Python的安装5下载:版本:windows、linux、源码开发集成开发环境:IDLE(Python3.4GUI-32bit)命令行:Python3.4(commandline-32bit)手机:qpython范例Python语言构成6语法规则:注释#、缩进、“:”、单引号、双引号等数据类型:int、str、float等(python3里面这些都是类)语句:if、else、elif、while、def、import等函数:print()、range()、help()等对象:os、sys等忘记了语句,不会用?——help()函数不用了,要退出?——exit()函数目录71Python概述2变量和内建数据类型3语句4函数5标准库模块6程序调试变量和数据类型8>>>a='Helloworld!'#赋值语句>>>print(a)'Helloworld!'>>>type(a)#表达式:在交互模式下输出值<class'str'>>>>n=12>>>print(n)12>>>type(n)<class'int'>>>>n=12.0>>>type(n)<class'float'>变量在它们被赋值的时候创建无需声明变量名是大小写敏感的:'val'和'Val'不一样!变量的类型由Python决定变量可以在任何时候重新赋值为任何其他类型任何其他值>>>n='apa'>>>print(n)'apa'>>>type(n)<class'str'>数字number9整数:120-129870X1A2Class'int'十六进制是以0X开头,数字范围为0-9和A-F浮点数:12.031E1-1.54E-21Class'float'精度和范围与C语言的double型相同复数:1+3JType'complex'数字表达式10通常的数字表达式运算符:+,-,/,*,**,%,//运算优先级和括号正常工作>>>12+517>>>12+5*222>>>(12+5)*234>>>a=12+5>>>print(a)17>>>b=12.4+a#'a'convertedtofloatautomatically>>>b29.4>>>print(b)#usesfunction'str'29.4>>>4+5.59.5>>>1+3.0**210.0>>>1+2j+3-4j(4-2j)逻辑表达式(布尔表达式)boolean11'True'和'

False'为预定义值;实际上是整数1和0值0作为False,所有其他值是True常见的布尔表达式运算符:not,and,or>>>TrueorFalseTrue>>>not((TrueandFalse)orTrue)False>>>True*1212>>>0and10比较运算符产生布尔值比较运算符:<,<=,>,>=,==,!=>>>12<13True>>>12>13False>>>12<=12True>>>12!=13True字符串string12单引号和双引号都可用于字符串生成一样的字符串值字符串中的特殊符号:\nnewline,\ttab,others三重引号用于大块的文本内容>>>a='Helloworld!'>>>b="Helloworld!">>>a==bTrue>>>a="Oneline.\nAnotherline.">>>print(a)Oneline.Anotherline.>>>b="""Oneline,anotherline.""">>>print(b)Oneline,anotherline.>>>a="Per'slecture">>>print(a)Per'slecture字符串转换13数据类型转换需要用到函数:'str','int','float'函数'eval'将一个字符串解释为Python表达式>>>a="58">>>type(a)<class'str'>>>>b=int(a)>>>b58>>>type(b)<class'int'>>>>c=int('blah')#如果不合法的表达式出现会怎样?Traceback(mostrecentcalllast):File"<pyshell#34>",line1,in-toplevel-c=int('blah')ValueError:invalidliteralforint():blah>>>f=float('1.2e-3')>>>f#uses'repr'0.0012>>>print((f)#uses'str'0.0012>>>eval('23-12')11字符串运算符14>>>a="Part1">>>b="andpart2">>>a+''+b#合并,添加字符串'Part1andpart2'>>>s=a*2#重复并合并字符串>>>print(s)Part1Part1>>>s[0]#指标:单个字符,偏移量为0'P'>>>s[0:4]#片段:部分字符串,从0到4的正左方'Part'>>>s[5:]#边界留出:一直到字符串的一端'1Part1'>>>>>>s[6:-1]#负数代表指标计数从右边开始,结束点在-1的正左方'Part'>>>len(s)#函数'len'获得字符串的长度12>>>'p'ins#成员属性测试False>>>'P'insTrue>>>'Part'ins#子串测试True改变字符串:不行!15Python中的字符串不可修改!如果你真的要改变一个字符串:用旧的字符串片段生成一个新的>>>s[0]='B'Traceback(mostrecentcalllast):File"<pyshell#68>",line1,in-toplevel-s[0]='B'TypeError:objectdoesn'tsupportitemassignment>>>s='B'+s[1:]>>>s'Bart1Part1'重新生成字符串可能要用到大量的计算机资源如果你要生成许多新串,尝试字符串格式化表(List)处理能让字符串处理更为有效字符串方法16字符串有一组内建(内嵌,built-in)方法没有方法可以改变原串!有几个方法可以生成新串>>>s='astring,withstuff'>>>s.count('st')#有多少子串?2>>>s.find('stu')#如果可以,给出子串的位置15>>>three='3'>>>three.isdigit()#是纯数字串吗?True>>>supper=s.upper()#转为大写>>>supper'ASTRING,WITHSTUFF'>>>s.rjust(30)#通过加空格来右对齐'astring,withstuff'>>>“newlines\n\n\n”.strip()#一个实际的串也可以调用方法!'newlines'>>>s.replace('stuff','characters')#替换子串(全部出现过的子串)'astring,withcharacters'>>>s.replace('s','X',1)#只替换一次'aXtring,withstuff'字符串格式化17当有多个项需要格式化的时候要用元组(Tuples)作为操作符元组的长度必须匹配格式化项数不能用表类型List!>>>c='Python'>>>n=11>>>"Thisisa%scoursewith%istudents."%(c,n)'ThisisaPythoncoursewith11students.'>>>w="Number%iwon!"%12#字符串格式化操作符%>>>w'Number12won!'字符串格式化操作符'%'通常是生成新串的最佳方式类似C语言的格式化:稍微要点技巧,但功能强大多个字符串格式化代码%s:string(usesfunction'str')%r:string(usesfunction'repr')%f,%e,%g:float字符串格式化18格式含义'd'带符号的十进制整数.'i'带符号的十进制整数.'o'带符号的八进制值.'u'过时的类型,等于'd'.'x'带符号的十六进制(小写).'X'带符号的十六进制(大写).'e'浮点数指数格式(小写).'E'浮点数指数格式(大写).'f'浮点数十进制格式.'F'浮点数十进制格式.'g'浮点数格式.如果指数小于-4就使用小写指数格式,否则使用十进制格式.'G'浮点数格式.如果指数小于-4就使用大写指数格式,否则使用十进制格式.'c'单个字符(接受整数获这个单个正常字符).'r'字符串(使用函数repr()转为任何python对象).'s'字符串(使用函数str()转为任何python对象).'%'转为%自己.表,列表List19有序的对象序列;排列异质的;可以包含任意类型的对象的混合>>>r=[1,2.0,3,5]#表实例,不同的值>>>r[1,2.0,3,5]>>>type(r)<class'list'>>>>r[1]#通过指标来访问;偏移量为02.0>>>r[-1]#负的指标代表从尾部开始计数5>>>r[1:3]#表的片段;给出新的表[2.0,3]>>>w=r+[10,19]#合并表;给出另外的一个表>>>w[1,2.0,3,5,10,19]>>>r#原表不变;w和r不同[1,2.0,3,5]>>>t=[0.0]*10#用重复生成一个初始向量>>>t[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]表List操作20表是可变的,可以改变局部表是动态的,大小可变>>>r=[1,2.0,3,5]>>>r[3]='word'#通过指标访问改变一个元素(项)>>>r[1,2.0,3,'word']>>>r[0]=[9,8]#表可以嵌套>>>r[[9,8],2.0,3,'word']>>>r[0:3]=[1,2,5,6]#改变表的一个片段,可以改变表的长度>>>r[1,2,5,6,'word']>>>r[1:3]=[]#通过设置表的片段为空集来移除元素>>>r[1,6,'word']>>>len(r)#表的长度;项的个数3>>>6inr#成员属性测试True>>>r.index(6)#搜索并给出位置,如果没有的话……1表的方法,第1部分21表有一组内建的方法有些方法会从内部改变表>>>r=[1,2.0,3,5]>>>r.append('thing')#在表尾增加一个项>>>r[1,2.0,3,5,'thing']>>>r.append(['another','list'])#表被看作一个单一项>>>r[1,2.0,3,5,'thing',['another','list']]>>>r=[1,2.0,3,5]>>>r.extend(['item','another'])#表的项逐次添加>>>r[1,2.0,3,5,'item','another']>>>k=r.pop()#移除最后一项>>>k'another'>>>r[1,2.0,3,5,'item']方法'append'和'pop'可用于实现栈表的方法,第2部分22使用内建的'sort'方法:高效排序是内部进行的,不产生新表!>>>r=[2,5,-1,0,20]>>>r.sort()>>>r[-1,0,2,5,20]>>>w=['apa','1','2','1234']>>>w.sort()#字符串:使用ASCII顺序>>>w['1','1234','2','apa']>>>w.reverse()#反转字符串!>>>w['apa','2','1234','1']>>>v=w[:]#首先生成新表>>>v.reverse()#反转这份拷贝>>>v#使用sort['1','1234','2','apa']>>>w['apa','2','1234','1']转字符串为表23'split'对于简单的分解分析很有用否则要用正则表达式模块're';>>>s='biovitrum'#生成字符串>>>w=list(s)#转为字符的表>>>w['b','i','o','v','i','t','r','u','m']>>>w.reverse()>>>w['m','u','r','t','i','v','o','i','b']>>>r=''.join(w)#使用空串的join方法>>>r'murtivoib'>>>d='-'.join(w)#使用字符-的join方法>>>d'm-u-r-t-i-v-o-i-b'>>>s='afewwords'>>>w=s.split()#基于白空格切分(空格,新行)>>>w['a','few','words']>>>'|'.join(w)#对其他串用方法'join''a|few|words'对象、名字和引用24所有的值都是对象一个变量是一个引用对象的名字一个对象可能有多个名字引用它这个特性在内部修改对象的时候很重要!你可能不得不做出适当的拷贝来得到你要的效果对不可变对象(数字,字符串),这永远不是问题a>>>a=[1,3,2]>>>b=a>>>c=b[0:2]>>>d=b[:][1,3,2]bcd[1,3][1,3,2]>>>b.sort()#'a'被改变!>>>a[1,2,3]字典Dictionary25关键字/值对的无序序列每个关键值映射到一个值也称为映射“mapping”,哈希表“hashtable”或查找表"lookuptable">>>h={'key':12,'nyckel':'word'}>>>h['key']#由关键字访问12>>>h.has_key('nyckel')True>>>h['Per']='Kraulis'#增加一个关键字/值>>>h{'nyckel':'word','Per':'Kraulis','key':12}#输出顺序是随机的>>>h['Per']='Johansson'#替换值>>>h{'nyckel':'word','Per':'Johansson','key':12}关键字通常是一个整数或一个字符串必须是不可变对象可以是任何可hash的对象任何关键字在一个字典中只能出现一次!值可以是任何对象可以出现多次差点忘了:'del'26使用命令'del'销毁数据命令!不是函数!实际上移除变量(名字),不是对象>>>a='thing'#定义一个变量>>>a'thing'>>>dela#把这个变量忘掉>>>aTraceback(mostrecentcalllast):File"<pyshell#182>",line1,in-toplevel-aNameError:name'a'isnotdefined>>>h={'key':12,'nyckel':'word'}>>>delh['key']#移除关键字和它的值>>>h{'nyckel':'word'}>>>r=[1,3,2]>>>delr[1]#另一个删除表项的方式>>>r[1,2]字典方法,第1部分27>>>h={'key':12,'nyckel':'word'}>>>'Per'inh#测试是否一个关键字在字典中False>>>h['Per']Traceback(mostrecentcalllast):File"<pyshell#192>",line1,in-toplevel-h['Per']KeyError:'Per'>>>len(h)#字典中的关键字的数量2>>>h.keys()#所有的关键字在无序的表中['nyckel','key']>>>h.values()#所有的值在无序的表中['word',12]>>>h.get('Per','unknown')#返回值,或者返回缺省值'unknown'>>>h.get('key','unknown')12字典方法,第2部分28>>>h['Per']='Johansson'>>>h{'nyckel':'word','Per':'Johansson'}>>>h.update(g)#根据g添加或者更新所有的关键字/值>>>h{'nyckel':'word','key':12,'Per':'Johansson'}>>>g=h.copy()#字典的一个单独拷贝>>>delh['key']>>>h{'nyckel':'word'}>>>g{'nyckel':'word','key':12}元组Tuple29和表list一样,除了不可变一旦生成,就不可改变某些函数会返回元组>>>t=(1,3,2)>>>t[1]#由指标访问,偏移量03>>>(a,b,c)=t#元组赋值>>>a1>>>b3>>>a,b,c#一个实际上的元组表达式!(1,3,2)>>>a,b=b,a#交换值的技巧>>>a,b(3,1)>>>r=list(t)#转换元组为表>>>r[1,3,2]>>>tuple(r)#转为表为元组(1,3,2)目录301Python概述2变量和内建数据类型3语句4函数5标准库模块6程序调试在IDLE中编写脚本31现在我们要编写合适的脚本并保存到文件中在IDLE中:'File''NewWindow'直接点击'Saveas…'打开目录'Desktop'创建一个文件夹'Pythoncourse'进入这个文件夹输入文件名't1.py'保存在这个叫't1.py'的窗口中输入下述代码:保存这个文件:Ctrl-S,或者进入菜单'File','Save'运行这个脚本:按F5,或者进入菜单'Run','RunModule'"filet1.py"#这是文档字符串print("Helloworld!“)'if'语句;块结构32Python的一个让人又爱又恨的特性就是块结构块结构由缩进确定编辑一个新的文件't2.py'在窗口't1.py'中点击'File','NewWindow',之后'SaveAs…应用'if'命令:注意IDLE编辑器会自动帮助添加缩进运行脚本(F5)"filet2.py"person='Luke'ifperson=='Per':status='Pythonist'elifperson=='Luke':status='Jediknight'else:status='unknown'print(person,status)字典Dictionary比if…elif…更好33特别的,对于那些硬编码的选择(elif's)…更紧凑,更高效这个模式非常有用"filet3.py"status_map={'Luke':'JediKnight',

'Per':'Pythonist'}person='Luke'print(person,status_map.get(person,'unknown'))内嵌类型与它们的布尔解释34True-1True124True![False]False[]listTrue{'key':'val'}False{}dictTrue!"False"False""strFalse0.0floatFalse0int所有内嵌类型可以直接在'if'命令中使用数字0对应False其他数都对应True空对象(str,list,dict)对应False其它有值的对象对应True使用函数'bool'来获取显示的值'for'语句35对一个区块语句的重复执行对一个序列进行迭代遍历(list,tuple,string,iterator)"filet4.py"s=0foriin[0,1,2,3,4,5,6,7,8]:#遍历列表中的值,赋给is=s+iifs>10:break#结束'for'循环print("i=%i,s=%i"%(i,s))"filet5.py"r=[]forcin'thisisastringwithblanks':#一个字符一个字符的遍历字符串ifc=='':continue#跳过后面的代码块,继续循环r.append(c)print(''.join(r))'while'语句36对一个区块语句的重复不断循环执行,直到判断变成false或者出现'break'"filet7.py"r=[]n=0last=20whilen<=last:#任何具有布尔值的表达式r.append(str(n))n+=3print(','.join(r))循环中可选的'else'区块37如果没有遇到'break'则执行'else'区块经常用来取代success/failure标记对'for'与'while'循环都适用"filet8.py"r=[1,3,10,98,-2,48]foriinr:ifi<0:print('inputcontainsnegativevalue!')

break#跳出整个循环,包括'else'else:pass#什么都不做else:#如果循环是正常结束的则执行print('inputisOK')'pass'语句什么都不做可以看做是一个对于不想写代码区块的占位符在一些情况中是有用的异常处理:'try'与'except'38程序运行中的错误经常会导致执行失败错误信息能报告出错类型使用'try','except'来捕获并处理异常"filet9.py"numbers=[]not_numbers=[]forsin['12','-4.1','1.0e2','e3']:try:n=float(s)

numbers.append(s)exceptValueError:

not_numbers.append(s)print('numbers:',numbers)print('notnumbers:',not_numbers)numbers:['12','-4.1','1.0e2']notnumbers:['e3']如何分段很长的行39有时,一行代码需要被切为多行显示缩进规则意味着我们没有自由的形式可用"illegalsyntaxexample"ifa_complicated_expressionand

another_complicated_expression:print('thisisillegalsyntax;itwillnotwork‘)选择1:在一行的最后使用连续字符'\'"validsyntaxexample1"ifa_complicated_expressionand\

another_complicated_expression:print('thisisvalidsyntax‘)"validsyntaxexample2"if(a_complicated_expressionand

another_complicated_expression):print('thisisvalidsyntax‘)选择2:用圆括号括起表达式在圆括号里面的行可以中断,换行[]与{}也是可以的目录401Python概述2变量和内建数据类型3语句4函数5标准库模块6程序调试函数参数:固定参数、可变参数41参数数量固定与顺序相关"filet11.py"def

fixed_args(a,c,b):#注意!:参数的顺序

"Formatargumentsintoastringandreturn."#文档字符串

return"a=%s,b=%s,c=%s"%(a,b,c)#'%s'替换成字符串print(fixed_args('stuff',1.2,[2,1]))可以有任意数量个参数当所需参数数量未知时十分有用参数会保存在一个元组tuple中按照习惯,命名为'args''*'是用来区分的标记"filet12.py"def

unspec_args(a,*args):#一般约定写成'args'return"a=%s,others=%s"%(a,args)print(unspec_args('bla','qwe',23,False))a=bla,others=('qwe',23,False)函数参数:默认值42参数可以有默认值当调用时没有给定参数,会采用默认值如果既没有默认值,调用时也没有给出参数,那么崩溃显式调用参数,改变参数顺序"filet13.py"def

default_args(a,b='bar',c=13):return"a=%s,b=%s,c=%s"%(a,b,c)print(default_args('apa'))#全部使用默认值print(default_args('s',b='py'))#重载一个默认值print(default_args(c=-26,a='apa'))#重载参数顺序a=apa,b=bar,c=13a=s,b=py,c=13a=apa,b=bar,c=-26函数参数:关键字43关键字/值参数参数会被保存进字典dictionary习惯命名成'kwargs''**'是用来区分的标记首先尝试匹配已有的参数名称"filet14.py"def

keyword_args(a,b='bla',**kwargs):return"a=%s,b=%s,kwargs=%s"%(a,b,str(kwargs))print(keyword_args('stuff',c='call'))print(keyword_args('stuff',c='call',b='apa'))print(keyword_args(c='call',d=12,a='gr'))a=stuff,b=bla,kwargs={'c':'call'}a=stuff,b=apa,kwargs={'c':'call'}a=gr,b=bla,kwargs={'c':'call','d':12}函数参数:显式变量类型检查44使用'assert'命令检查布尔表达式是否为真,否则就是异常可以在代码中任一点使用用于健壮性测试可选择性添加错误提示信息"filet15.py"def

fixed_args(a,c,b):asserttype(a)==type(1),"'a'mustbeaninteger"return"a=%s,b=%s,c=%s"%(a,b,c)printfixed_args('a',1.2,[2,1])Traceback(mostrecentcalllast):File"C:\Pythontests\t15.py",line8,in-toplevel-printfixed_args('a',1.2,[2,1])File"C:\Pythontests\t15.py",line5,infixed_argsasserttype(a)==type(1),"'a'mustbeaninteger"AssertionError:'a'mustbeaninteger函数参数:局部变量45参数为局部变量不可变变量的值通过复制赋值可变变量的值依然可被改变:但是要小心

在'def'区块内定义的变量都是局部变量先无视return"filet16.py"deftest_local(a,r):print('localoriginal',a,r)a=12r[1]=999print('localchanged',a,r)a=-5r=[0,1,2]print('globaloriginal',a,r)test_local(a,r)print('globalchanged',a,r)globaloriginal-5[0,1,2]localoriginal-5[0,1,2]localchanged12[0,999,2]globalchanged-5[0,999,2]没有'return'的函数:None值46一个函数不一定要有'return'命令如果没有,则与其他编程语言中的'procedure'功能一样实际上函数默认总是会返回一个值:'None'一个没有值的'return'完全是可以的:returns'None''None'是一个特殊的值,意味着'什么都没有'在很多环境下很有用尤其是在面向对象的编程的问题中"filet17.py"def

concat_strings(a,b):

str_type=type('')#保存类型的值!iftype(a)==str_typeandtype(b)==str_type:returna+''+bprint('strings:',concat_strings('first','second'))print('integers:',concat_strings(1,2))strings:firstsecondintegers:None

'math'模块:函数与常数47模块使用一瞥数学函数在一个单独的模块中"filet18.py"frommathimport*#加载模块'math'中的所有函数print(e,pi)print(cos(radians(180.0)))print(log(10.0))print(exp(-1.0))2.7182818284590453.141592653589793-1.02.3025850929940460.36787944117144233函数是对象,函数名是引用48函数只是另一种对象罢了函数名没什么特别的:可以被改变"filet19.py"frommathimport*def

print_calc(f):print("log(%s)=%s,exp(%s)=%s"%(f,log(f),f,exp(f)))print_calc(1.0)log,exp=exp,log#不良代码!交换对象的名称与引用print_calc(1.0)log(1.0)=0.0,exp(1.0)=2.718281828459045log(1.0)=2.718281828459045,exp(1.0)=0.0一个函数可以作为任意参数传递给另一个函数一个函数可以被赋值给一个变量内嵌函数‘map’、'filter'49一个操作表list的内嵌函数'map'需要一个函数与一个list作为参数这个函数限定为只有一个参数输入一个返回输出这个函数要依次作用到这个list上的每一个元素结果转换作为一个表list返回>>>frommathimport*>>>r=[0,1,2,3,4,5,6]>>>list(map(cos,r))[1.0,0.54030230586813977,-0.41614683654714241,-0.98999249660044542,-0.65364362086361194,0.28366218546322625,0.96017028665036597]>>>r=[0,1,2,3,4,5,6]>>>deflarge(x):returnx>3>>>print(list(filter(large,r))[4,5,6]这还是一个操作表list的内嵌函数'filter'需要一个函数与一个list它用这个函数来决定哪个项应该被放入过滤结果队列中遍历list中的每一个值,输入到这个函数中如果这个函数返回True,那么值就放到过滤结果队列中去如果这个函数返回False,那么这个值就会被跳过文件操作:读50一个文件操作对象由内嵌函数'open'创建文件对象有一系列函数'read'函数可以从文件中获取数据队列'read':读取整个文件(或者说N字节),返回一个单独的字符串'readline':读取一行(然后跳到新的一行)'readlines':读取所有的行,返回一个字符串的表list>>>f=open('test.txt')#默认:只读模式>>>line=f.readline()#读一行>>>line'Thisisthefirstline.\n'>>>lines=f.readlines()#读所有剩余行>>>lines['Thisisthesecond.\n','Andthird.\n']有些模块定义的对象类似文件,这些对象具有的方法也让它们表现得像文件一样文件操作:写51'write'函数只是简单的输出给定的字符串字符串不一定是ASCII码,二进制串也是可以的>>>w=open('output.txt','w')#写模式(默认写的是文本)>>>w.write('stuff')#并不自动添加新行>>>w.write('\n')>>>w.write('more\nandevenmore\n')>>>w.close()stuffmoreandevenmore文件操作:用'for'循环读取52迭代使用'for'循环一行行读取文件推荐用法"filet20.py"infile=open('test.txt')#只读模式outfile=open('test_upper.txt','w')#写模式;创建文件forlineininfile:

outfile.write(line.upper())infile.close()#并不严格要求;系统会自动执行outfile.close()注意:每行结尾会尾随一个换行符'\n'使用字符串方法'strip'或者'rstrip'来去除它文件操作,老式的读取策略53老版本的Python不支持这种特性'forlineinfile'相应的,过去要使用下面这种操作:forlineininfile.readlines():#把整个文件按行读进一个行的列表中do_something(line)forlineininfile.xreadlines():#类似xrange:内存使用更高效do_something(line)line=infile.readline()whileline:#只有当读到文件结束时line才是空的do_something(line)line=infile.readline()最后一个方案可行是因为'readline'返回的line自动包含一个”\n”换行符只有当读到文件结束时,readline才会返回一个空行,该行的布尔值'False'目录541Python概述2变量和内建数据类型3语句4函数5标准库模块6程序调试模块're',part155正则表达式:高级字符串模式定义一个模式:定义模式的语法与Perl或者grep的很相似把它应用到一个字符串上处理结果"filet37.py"importreseq="MAKEVFSKRTCACVFHKVHAQPNVGITR"zinc_finger=pile('C.C..H..H')#编译正则表达式print(zinc_finger.findall(seq))two_charged=pile('[DERK][DERK]')print(two_charged.findall(seq))['CACVFHKVH']['KE','KR']模块'sys'56sys.argv命令行执行时使用的参数列表;sys.argv[0]是这个脚本的名字sys.path用来寻找模块的目录路径的列表sys.platform一个用来表示当前操作系统的字符串>>>importsys>>>sys.platform'win32'>>>importsys>>>sys.stdout.write('thehardway')thehardway12sys.stdout,sys.stdin,sys.stderr预定义的文件处理对象,用于输入/输出'print'的东西会传给'sys.stdout'也可以设置成给其他文件sys.exit(n)强制退出Python执行'n'是一个整数错误代码,通常是0模块'os'57os.getcwd():返回当前目录>>>os.getcwd()'M:\\MyDocuments\\Pythoncourse\\tests'os.environ:返回包含当前环境变量的字典Dictionary>>>fork,vin

温馨提示

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

评论

0/150

提交评论