Python入门教程 超详细小时学会Python_第1页
Python入门教程 超详细小时学会Python_第2页
Python入门教程 超详细小时学会Python_第3页
Python入门教程 超详细小时学会Python_第4页
Python入门教程 超详细小时学会Python_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

优选文档优选文档Python入门教程超详细1小时学会Python本文适宜有经验的程序员尽快进入Python世界.特别地,如果你掌握Java和Javascript,不用1小时你就可以用Python快速流畅地写有用的Python程序.为什么使用Python假设我们有这么一项任务:简单测试局域网中的电脑是否连通•这些电脑的ip范围从192.168.0.101到192.168.0.200.思路:用shell编程.(Linux通常是bash而Windows是批处理脚本).例如,在Windows上用pingip的命令依次测试各个机器并得到操作台输出.由于ping通的时候操作台文本通常是"Replyfrom..."而不通的时候文本是"timeout...",所以,在结果中进行字符串查找,即可了解该机器是否连通.完成:Java代码如下:Stringcmd="cmd.exeping";Stringipprefix="192.168.10.";intbegin=101;intend=200;Processp=null;for(inti=begin;i<end;i++){p=Runtime.getRuntime().exec(cmd+i);Stringline=null;BufferedReaderreader=newBufferedReader(newInputStreamReader(p.getInputStream()));while((line=reader.readLine())!=null){//Handlingline,maylogsit.}reader.close();p.destroy();}这段代码运行得很好,问题是为了运行这段代码,你还需要做一些额外的工作.这些额外的工作包含:编写一个类文件编写一个main方法将之编译成字节代码由于字节代码不能直接运行,你需要再写个小小的bat或者bash脚本来运行.当然,用C/C++同样能完成这项工作•但C/C++不是跨平台言语•在这个足够简单的例子中也许看不出C/C++和Java完成的区别,但在一些更为复杂的场景,比方要将连通与否的信息记录到网络数据库.由于Linux和Windows的网络接口完成方法不同,你不得不写两个函数的版本•用Java就没有这样的顾虑.同样的工作用Python完成如下:importsubprocesscmd二"cmd.exe"begin=101end=200whilebegin<end:p=subprocess.Popen(cmd,shell=True,stdout二subprocess.PIPE,stdin二subprocess.PIPE,stderr=subprocess.PIPE)p.stdin.write("ping192.168.1."+str(begin)+"\n")p.stdin.close()p.wait()print"executionresult:%s"%p.stdout.read()比照Java,Python的完成更为简洁,你编写的时间更快•你不需要写main函数,并且这个程序保存之后可以直接运行.其它,和Java—样,Python也是跨平台的.有经验的C/Java程序员可能会争论说用C/Java写会比Python写得快.这个观点见仁见智.我的想法是当你同时掌握Java和Python之后,你会觉察用Python写这类程序的速度会比Java快上许多.例如操作本地文件时你仅需要一行代码而不需要Java的许多流包装类.各种言语有其天然的适宜的应用范围.用Python处理一些简短程序类似与操作系统的交互编程工作最省时省力.Python应用场合足够简单的任务,例如一些shell编程.如果你喜欢用Python设计大型商业网站或者设计复杂的游戏,悉听尊便.2快速入门2.1Helloworld安装完Python之后(我本机的版本是2.5.4),翻开IDLE(PythonGUI),该程序是Python言语解释器,你写的语句能够马上运行.我们写下一句著名的程序语句:print"Hello,world!"并按回车•你就能看到这句被K&R引入到程序世界的名言.在解释器中选择"File"—"NewWindow"或快捷键Ctrl+N,翻开一个新的编辑器.写下如下语句:print"Hello,world!"raw_input("Pressenterkeytoclosethiswindow");保存为a.py文件.按F5,你就可以看到程序的运行结果了.这是Python的第二种运行方法.找到你保存的a.py文件,双击.也可以看到程序结果.Python的程序能够直接运行,比照Java,这是一个优势.国际化支持我们换一种方法来问候世界.新建一个编辑器并写如下代码:print"欢送来到奥运中国!"raw_input("Pressenterkeytoclosethiswindow");在你保存代码的时候,Python会提示你是否改变文件的字符集,结果如下:-X-coding:cp936-X-print"欢送来到奥运中国!"raw_input("Pressenterkeytoclosethiswindow");将该字符集改为我们更熟悉的形式:-X-coding:GBK-X-print"欢送来到奥运中国!"使用中文的例子raw_input("Pressenterkeytoclosethiswindow");程序一样运行良好.方便易用的计算器用微软附带的计算器来计数实在太麻烦了•翻开Python解释器,直接进行计算:a=100.0b=201.1c=2343print(a+b+c)/c字符串,ASCII和UNICODE可以如下打印出预定义输出格式的字符串:・.〃〃〃print"""Usage:thingyOPTIONS]-hDisplaythisusagemessage-HhostnameHostnametoconnectto〃〃〃字符串是怎么访问的请看这个例子:word="abcdefg"a=word2]print"ais:"+ab=word1:3]print"bis:"+bindex1and2elementsofword.c=word:2]print"cis:"+cindex0and1elementsofword.d=word0:]print"dis:"+dAllelementsofword.e=word:2]+word2:]print"eis:"+eAllelementsofword.f=word-1]print"fis:"+fThelastelementsofword.g=word-4:-2]print"gis:"+gindex3and4elementsofword.h=word-2:]print"his:"+hThelasttwoelements.i=word:-2]print"iis:"+iEverythingexceptthelasttwocharactersl=len(word)print"Lengthofwordis:"+str(l)请注意ASCII和UNICODE字符串的区别:print"InputyourChinesename:"s=raw_input("Pressentertobecontinued");print"Yournameis:"+s;l=len(s)print"LengthofyourChinesenameinasccodesis:"+str(l);a=unicode(s,"GBK")l=len(a)print"I'msorryweshoulduseunicodechar!CharactersnumberofyourChinese\nameinunicodeis:"+str(l);使用List类似Java里的List,这是一种方便易用的数据类型:15,,1,,,,丿,,,,,门word='a','b','c','d','e','f','g']a=word2]print"ais:"+ab=word1:3]print"bis:"printbindex1and2elementsofword.c=word:2]・」〃・〃print"cis:"printcindex0and1elementsofword.d=word0:]print"dis:"printdAllelementsofword.e=word:2]+word2:]・」〃・〃print"eis:"printeAllelementsofword.f=word-1]丄〃q・〃print"fis:"printfThelastelementsofword.g=word-4:-2]」〃・〃print"gis:"printgindex3and4elementsofword.h=word-2:]print"his:"printhThelasttwoelements.i=word:-2]・丿〃・・〃print"iis:"printiEverythingexceptthelasttwocharactersl=len(word)print"Lengthofwordis:"+str(l)print"Addsnewelement"word.append('h')printword条件和循环语句Multi-waydecisionx=int(raw_input("Pleaseenteraninteger:"))ifx<0:x=0print"Negativechangedtozero"elifx==0:print"Zero"else:print"More"LoopsLista='cat','window','defenestrate']forxina:printx,len(x)如何定义函数Defineandinvokefunction.defsum(a,b):returna+bfunc=sumr=func(5,6)printrDefinesfunctionwithdefaultargumentdefadd(a,b=2):returna+br=add(1)printrr=add(1,5)printr并且,介绍一个方便好用的函数:Therange()functiona=range(5,10)printaa=range(-2,-7)printaa=range(-7,-2)printaa=range(-2,-11,-3)The3rdparameterstandsforstepprinta2.8文件I/Ospath="D:/download/baa.txt"f=open(spath,"w")Opensfileforwriting.Createsthisfiledoesn'texist.f.write("Firstline1.\n")f.writelines("Firstline2.")f.close()f=open(spath,"r")Opensfileforreadingforlineinf:printlinef.close()2.9异常处理s=raw_input("Inputyourage:")・c〃〃ifs=="":raiseException("Inputmustnobeempty.")try:i=int(s)exceptValueError:print"Couldnotconvertdatatoaninteger."except:print"Unknownexception!"else:Itisusefulforcodethatmustbeexecutedifthetryclausedoesnotraiseanexceptionprint"Youare%d"%i,"yearsold"finally:Cleanupactionprint"Goodbye!"2.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")printoChild.dataprintoChild.plus(2,3)2.11包机制每一个.py文件称为一个module,module之间可以相互导入.请参看以下例子:pydefadd_func(a,b):returna+bpyfromaimportadd_funcAlsocanbe:importaprint"Importadd_funcfrommodulea"print"Resultof1plus2is:"printadd_func(1,2)Ifusing"importa",thenhereshouldbe"a.add_func"module可以定义在包里面.Python定义包的方法略微有点古怪,假设我们有一个parent文件夹,该文件夹有一个child子文件夹.child中有一个modulea.py.如何让Pyt

温馨提示

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

评论

0/150

提交评论