Python3教程Python3教程一:入门Python已经是3.1版本了,与时俱进更新教程.(由于Django不支持python3,所以为了你的发展潜力,建议你学习python2.x)本文适合有Java编程经验的程序员快速熟悉Python本文程序在windowsxp+python3.1a1测试通过.本文提到的idle指pythonshell,即安装python后你在菜单看到的IDLE(pythongui)在idle里ctrl+n可以打开一个新窗口,输入源码后ctrl+s可以保存,f5运行程序.凡打开新窗口即指ctrl+n的操作.1你好#打开新窗口,输入:#!/usr/bin/python#-*-coding:utf8-*-s1=input(Inputyourname:)print(你好,%s%s1)'''知识点:*input(某字符串)函数:显示某字符串,并等待用户输入.*print()函数:如何打印.*如何应用中文*如何用多行注释'''2字符串和数字但有趣的是,在javascript里我们会理想当然的将字符串和数字连接,因为是动态语言嘛.但在Python里有点诡异,如下:#!/usr/bin/pythona=2b=testc=a+b运行这行程序会出错,提示你字符串和数字不能连接,于是只好用内置函数进行转换#!/usr/bin/python#运行这行程序会出错,提示你字符串和数字不能连接,于是只好用内置函数进行转换a=2b=testc=str(a)+bd=1111e=a+int(d)#Howtoprintmultiplyvaluesprint(cis%s,eis%i%(c,e))'''知识点:*用int和str函数将字符串和数字进行转换*打印以#开头,而不是习惯的//*打印多个参数的方式'''3列表#!/usr/bin/python#-*-coding:utf8-*-#列表类似Javascript的数组,方便易用#定义元组word=['a','b','c','d','e','f','g']#如何通过索引访问元组里的元素a=word[2]print(ais:+a)b=word[1:3]print(bis:)print(b)#index1and2elementsofword.c=word[:2]print(cis:)print(c)#index0and1elementsofword.d=word[0:]print(dis:)print(d)#Allelementsofword.#元组可以合并e=word[:2]+word[2:]print(eis:)print(e)#Allelementsofword.f=word[-1]print(fis:)print(f)#Thelastelementsofword.g=word[-4:-2]print(gis:)print(g)#index3and4elementsofword.h=word[-2:]print(his:)print(h)#Thelasttwoelements.i=word[:-2]print(iis:)print(i)#Everythingexceptthelasttwocharactersl=len(word)print(Lengthofwordis:+str(l))print(Addsnewelement)word.append('h')print(word)#删除元素delword[0]print(word)delword[1:3]print(word)'''知识点:*列表长度是动态的,可任意添加删除元素.*用索引可以很方便访问元素,甚至返回一个子列表*更多方法请参考Python的文档'''4字典#!/usr/bin/pythonx={'a':'aaa','b':'bbb','c':12}print(x['a'])print(x['b'])print(x['c'])forkeyinx:print(Keyis%sandvalueis%s%(key,x[key]))'''知识点:*将他当Java的Map来用即可.'''5字符串比起C/C++,Python处理字符串的方式实在太让人感动了.把字符串当列表来用吧.#!/usr/bin/pythonword=abcdefga=word[2]print(ais:+a)b=word[1:3]print(bis:+b)#index1and2elementsofword.c=word[:2]print(cis:+c)#index0and1elementsofword.d=word[0:]print(dis:+d)#Allelementsofword.e=word[:2]+word[2:]print(eis:+e)#Allelementsofword.f=word[-1]print(fis:+f)#Thelastelementsofword.g=word[-4:-2]print(gis:+g)#index3and4elementsofword.h=word[-2:]print(his:+h)#Thelasttwoelements.i=word[:-2]print(iis:+i)#Everythingexceptthelasttwocharactersl=len(word)print(Lengthofwordis:+str(l))中文和英文的字符串长度是否一样?#!/usr/bin/python#-*-coding:utf8-*-s=input(输入你的中文名,按回车继续);print(你的名字是:+s)l=len(s)print(你中文名字的长度是:+str(l))知识点:类似Java,在python3里所有字符串都是unicode,所以长度一致.6条件和循环语句#!/usr/bin/python#条件和循环语句x=int(input(Pleaseenteraninteger:))ifx0:x=0print(Negativechangedtozero)elifx==0:print(Zero)else:print(More)#LoopsLista=['cat','window','defenestrate']forxina:print(x,len(x))#知识点:#*条件和循环语句#*如何得到控制台输入7函数#!/usr/bin/python#-*-coding:utf8-*-defsum(a,b):returna+bfunc=sumr=func(5,6)print(r)#提供默认值defadd(a,b=2):returna+br=add(1)print(r)r=add(1,5)print(r)一个好用的函数#!/usr/bin/python#-*-coding:utf8-*-#Therange()functiona=range(1,10)foriina:print(i)a=range(-2,-11,-3)#The3rdparameterstandsforstepforiina:print(i)知识点:Python不用{}来控制程序结构,他强迫你用缩进来写程序,使代码清晰.定义函数方便简单方便好用的range函数8异常处理#!/usr/bin/pythons=input(Inputyourage:)ifs==:raiseException(Inputmustnobeempty.)try:i=int(s)exceptExceptionaserr:print(err)finally:#Cleanupactionprint(Goodbye!)9文件处理对比Java,python的文本处理再次让人感动#!/usr/bin/pythonspath=D:/download/baa.txtf=open(spath,w)#Opensfileforwriting.Createsthisfiledoesn'texist.f.write(Firstline1.\n)f.writelines(Firstline2.)f.close()f=open(spath,r)#Opensfileforreadingforlineinf:print(每一行的数据是:%s%line)f.close()知识点:open的参数:r表示读,w写数据,在写之前先清空文件内容,a打开并附加内容.打开文件之后记得关闭10类和继承classBase:def__init__(self):self.data=[]defadd(self,x):self.data.append(x)defaddtwice(self,x):self.add(x)self.add(x)#ChildextendsBaseclassChild(Base):defplus(self,a,b):returna+boChild=Child()oChild.add(str1)print(oChild.data)print(oChild.plus(2,3))'''知识点:*self:类似Java的this参数'''11包机制每一个.py文件称为一个module,module之间可以互相导入.请参看以下例子:#a.pydefadd_func(a,b):returna+b#b.pyfromaimportadd_func#Alsocanbe:importaprint(Importadd_funcfrommodulea)print(Resultof1plus2is:)print(add_func(1,2))#Ifusingimporta,thenhereshouldbea.add_funcmodule可以定义在包里面.Python定义包的方式稍微有点古怪,假设我们有一个parent文件夹,该文件夹有一个child子文件夹.child中有一个modulea.py.如何让Python知道这个文件层次结构?很简单,每个目录都放一个名为_init_.py的文件.该文件内容可以为空.这个层次结构如下所示:parent--__init_.py--child--__init_.py--a.pyb.py那么Python如何找到我们定义的module?在标准包sys中,path属性记录了Python的包路径.你可以将之打印出来:importsysprint(sys.path)通常我们可以将module的包路径放到环境变量PYTHONPATH中,该环境变量会自动添加到sys.path属性.另一种方便的方法是编程中直接指定我们的module路径到sys.path中:importsysimportossys.path.append(os.getcwd()+'\\parent\\child')print(sys.path)fromaimportadd_funcprint(sys.path)print(Importadd_funcfrommodulea)print(Resultof1plus2is:)print(add_func(1,2))知识点:如何定义模块和包如何将模块路径添加到系统路径,以便python找到它们如何得到当前路径12内建帮助手册对比C++,Java的突出进步是内建Javadoc机制,程序员可以通过阅读Javadoc了解函数用法.Python也内建了一些方便函数以便程序员参考.dir函数:查看某个类/对象的方法.如果有某个方法想不起来,请敲dir.在idle里,试试dir(list)help函数:详细的类/对象介绍.在idle里,试试help(list)Python3教程二:文件,目录和路径1遍历文件夹和文件importosimportos.path#os,os.path里包含大多数文件访问的函数,所以要先引入它们.#请按照你的实际情况修改这个路径rootdir=d:/downloadforparent,dirnames,filenamesinos.walk(rootdir):#case1:ford