Python简明入门教程
本文实例讲述了Python简明入门教程。分享给大家供大家参考。具体如下:
一、基本概念
1、数
在Python中有4种类型的数——整数、长整数、浮点数和复数。
(1)2是一个整数的例子。
(2)长整数不过是大一些的整数。
(2)3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3*10-4。
(4)(-5+4j)和(2.3-4.6j)是复数的例子。
2、字符串
(1)使用单引号(')
(2)使用双引号(")
(3)使用三引号('''或""")
利用三引号,你可以指示一个多行的字符串。你可以在三引号中自由的使用单引号和双引号。例如:
'''Thisisamulti-linestring.Thisisthefirstline. Thisisthesecondline. "What'syourname?,"Iasked. Hesaid"Bond,JamesBond." '''
(4)转义符
(5)自然字符串
自然字符串通过给字符串加上前缀r或R来指定。例如r"Newlinesareindicatedby\n"。
3、逻辑行与物理行
一个物理行中使用多于一个逻辑行,需要使用分号(;)来特别地标明这种用法。一个物理行只有一个逻辑行可不用分号
二、控制流
1、if
块中不用大括号,条件后用分号,对应elif和else
ifguess==number: print'Congratulations,youguessedit.'#Newblockstartshere elifguess<number: print'No,itisalittlehigherthanthat'#Anotherblock else: print'No,itisalittlelowerthanthat'
2、while
用分号,可搭配else
whilerunning: guess=int(raw_input('Enteraninteger:')) ifguess==number: print'Congratulations,youguessedit.' running=False#thiscausesthewhilelooptostop elifguess<number: print'No,itisalittlehigherthanthat' else: print'No,itisalittlelowerthanthat' else: print'Thewhileloopisover.' #Doanythingelseyouwanttodohere
3、for
用分号,搭配else
foriinrange(1,5): printi else: print'Theforloopisover'
4、break和continue
同C语言
三、函数
1、定义与调用
defsayHello(): print'HelloWorld!'#blockbelongingtothefunction sayHello()#callthefunction
2、函数形参
类C语言
defprintMax(a,b): ifa>b: printa,'ismaximum' else: printb,'ismaximum'
3、局部变量
加global可申明为全局变量
4、默认参数值
defsay(message,times=1): printmessage*times
5、关键参数
如果某个函数有许多参数,而只想指定其中的一部分,那么可以通过命名来为这些参数赋值——这被称作关键参数——使用名字(关键字)而不是位置来给函数指定实参。这样做有两个优势——一,由于不必担心参数的顺序,使用函数变得更加简单了。二、假设其他参数都有默认值,可以只给我们想要的那些参数赋值。
deffunc(a,b=5,c=10): print'ais',a,'andbis',b,'andcis',c func(3,7) func(25,c=24) func(c=50,a=100)
6、return
四、模块
1、使用模块
importsys print'Thecommandlineargumentsare:' foriinsys.argv: printi
如果想要直接输入argv变量到程序中(避免在每次使用它时打sys.),可以使用fromsysimportargv语句
2、dir()函数
可以使用内建的dir函数来列出模块定义的标识符。标识符有函数、类和变量。
五、数据结构
1、列表
shoplist=['apple','mango','carrot','banana'] print'Ihave',len(shoplist),'itemstopurchase.' print'Theseitemsare:',#Noticethecommaatendoftheline foriteminshoplist: printitem, print'\nIalsohavetobuyrice.' shoplist.append('rice') print'Myshoppinglistisnow',shoplist print'Iwillsortmylistnow' shoplist.sort() print'Sortedshoppinglistis',shoplist print'ThefirstitemIwillbuyis',shoplist[0] olditem=shoplist[0] delshoplist[0] print'Iboughtthe',olditem print'Myshoppinglistisnow',shoplist
2、元组
元组和列表十分类似,只不过元组和字符串一样是不可变的即你不能修改元组。
zoo=('wolf','elephant','penguin') print'Numberofanimalsinthezoois',len(zoo) new_zoo=('monkey','dolphin',zoo) print'Numberofanimalsinthenewzoois',len(new_zoo) print'Allanimalsinnewzooare',new_zoo print'Animalsbroughtfromoldzooare',new_zoo[2] print'Lastanimalbroughtfromoldzoois',new_zoo[2][2]
像一棵树
元组与打印
age=22 name='Swaroop' print'%sis%dyearsold'%(name,age) print'Whyis%splayingwiththatpython?'%name
3、字典
类似哈希
ab={'Swaroop':'swaroopch@byteofpython.info', 'Larry':'larry@wall.org', 'Matsumoto':'matz@ruby-lang.org', 'Spammer':'spammer@hotmail.com' } print"Swaroop'saddressis%s"%ab['Swaroop'] #Addingakey/valuepair ab['Guido']='guido@python.org' #Deletingakey/valuepair delab['Spammer'] print'\nThereare%dcontactsintheaddress-book\n'%len(ab) forname,addressinab.items(): print'Contact%sat%s'%(name,address) if'Guido'inab:#ORab.has_key('Guido') print"\nGuido'saddressis%s"%ab['Guido']
4、序列
列表、元组和字符串都是序列。序列的两个主要特点是索引操作符和切片操作符。
shoplist=['apple','mango','carrot','banana'] #Indexingor'Subscription'operation print'Item0is',shoplist[0] print'Item1is',shoplist[1] print'Item-1is',shoplist[-1] print'Item-2is',shoplist[-2] #Slicingonalist print'Item1to3is',shoplist[1:3] print'Item2toendis',shoplist[2:] print'Item1to-1is',shoplist[1:-1] print'Itemstarttoendis',shoplist[:] #Slicingonastring name='swaroop' print'characters1to3is',name[1:3] print'characters2toendis',name[2:] print'characters1to-1is',name[1:-1] print'charactersstarttoendis',name[:]
5、参考
当你创建一个对象并给它赋一个变量的时候,这个变量仅仅参考那个对象,而不是表示这个对象本身!也就是说,变量名指向你计算机中存储那个对象的内存。这被称作名称到对象的绑定。
print'SimpleAssignment' shoplist=['apple','mango','carrot','banana'] mylist=shoplist#mylistisjustanothernamepointingtothesameobject! delshoplist[0] print'shoplistis',shoplist print'mylistis',mylist #noticethatbothshoplistandmylistbothprintthesamelistwithout #the'apple'confirmingthattheypointtothesameobject print'Copybymakingafullslice' mylist=shoplist[:]#makeacopybydoingafullslice delmylist[0]#removefirstitem print'shoplistis',shoplist print'mylistis',mylist #noticethatnowthetwolistsaredifferent
6、字符串
name='Swaroop'#Thisisastringobject ifname.startswith('Swa'): print'Yes,thestringstartswith"Swa"' if'a'inname: print'Yes,itcontainsthestring"a"' ifname.find('war')!=-1: print'Yes,itcontainsthestring"war"' delimiter='_*_' mylist=['Brazil','Russia','India','China'] printdelimiter.join(mylist)//用delimiter来连接mylist的字符
六、面向对象的编程
1、self
Python中的self等价于C++中的self指针和Java、C#中的this参考
2、创建类
classPerson: pass#Anemptyblock p=Person() printp
3、对象的方法
classPerson: defsayHi(self): print'Hello,howareyou?' p=Person() p.sayHi()
4、初始化
classPerson: def__init__(self,name): self.name=name defsayHi(self): print'Hello,mynameis',self.name p=Person('Swaroop') p.sayHi()
5、类与对象的方法
类的变量由一个类的所有对象(实例)共享使用。只有一个类变量的拷贝,所以当某个对象对类的变量做了改动的时候,这个改动会反映到所有其他的实例上。
对象的变量由类的每个对象/实例拥有。因此每个对象有自己对这个域的一份拷贝,即它们不是共享的,在同一个类的不同实例中,虽然对象的变量有相同的名称,但是是互不相关的。
classPerson: '''Representsaperson.''' population=0 def__init__(self,name): '''Initializestheperson'sdata.''' self.name=name print'(Initializing%s)'%self.name #Whenthispersoniscreated,he/she #addstothepopulation Person.population+=1
population属于Person类,因此是一个类的变量。name变量属于对象(它使用self赋值)因此是对象的变量。
6、继承
classSchoolMember: '''Representsanyschoolmember.''' def__init__(self,name,age): self.name=name classTeacher(SchoolMember): '''Representsateacher.''' def__init__(self,name,age,salary): SchoolMember.__init__(self,name,age) self.salary=salary
七、输入输出
1、文件
f=file('poem.txt','w')#openfor'w'riting f.write(poem)#writetexttofile f.close()#closethefile f=file('poem.txt') #ifnomodeisspecified,'r'eadmodeisassumedbydefault whileTrue: line=f.readline() iflen(line)==0:#ZerolengthindicatesEOF break printline, #NoticecommatoavoidautomaticnewlineaddedbyPython f.close()#closethefile
2、存储器
持久性
importcPickleasp #importpickleasp shoplistfile='shoplist.data' #thenameofthefilewherewewillstoretheobject shoplist=['apple','mango','carrot'] #Writetothefile f=file(shoplistfile,'w') p.dump(shoplist,f)#dumptheobjecttoafile f.close() delshoplist#removetheshoplist #Readbackfromthestorage f=file(shoplistfile) storedlist=p.load(f) printstoredlist
3、控制台输入
输入字符串nID=raw_input("Inputyouridplz")
输入整数nAge=int(raw_input("inputyourageplz:\n"))
输入浮点型fWeight=float(raw_input("inputyourweight\n"))
输入16进制数据nHex=int(raw_input('inputhexvalue(like0x20):\n'),16)
输入8进制数据nOct=int(raw_input('inputoctvalue(like020):\n'),8)
八、异常
1、try..except
importsys try: s=raw_input('Entersomething-->') exceptEOFError: print'\nWhydidyoudoanEOFonme?' sys.exit()#exittheprogram except: print'\nSomeerror/exceptionoccurred.' #here,wearenotexitingtheprogram print'Done'
2、引发异常
使用raise语句引发异常。你还得指明错误/异常的名称和伴随异常触发的异常对象。你可以引发的错误或异常应该分别是一个Error或Exception类的直接或间接导出类。
classShortInputException(Exception): '''Auser-definedexceptionclass.''' def__init__(self,length,atleast): Exception.__init__(self) self.length=length self.atleast=atleast raiseShortInputException(len(s),3)
3、try..finnally
importtime try: f=file('poem.txt') whileTrue:#ourusualfile-readingidiom line=f.readline() iflen(line)==0: break time.sleep(2) printline, finally: f.close() print'Cleaningup...closedthefile'
九、Python标准库
1、sys库
sys模块包含系统对应的功能。sys.argv列表,它包含命令行参数。
2、os库
os.name字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'。
os.getcwd()函数得到当前工作目录,即当前Python脚本工作的目录路径。
os.getenv()和os.putenv()函数分别用来读取和设置环境变量。
os.listdir()返回指定目录下的所有文件和目录名。
os.remove()函数用来删除一个文件。
os.system()函数用来运行shell命令。
os.linesep字符串给出当前平台使用的行终止符。例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'。
os.path.split()函数返回一个路径的目录名和文件名。
>>>os.path.split('/home/swaroop/byte/code/poem.txt')
('/home/swaroop/byte/code','poem.txt')
os.path.isfile()和os.path.isdir()函数分别检验给出的路径是一个文件还是目录。类似地,os.path.existe()函数用来检验给出的路径是否真地存在。
希望本文所述对大家的Python程序设计有所帮助。