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

下载本文档

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

文档简介

Python入门教程超详尽1小时学会Python25637Python入门教程超详尽1小时学会Python25637Python入门教程超详尽1小时学会Python25637Python入门教程超详尽1小时学会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;ream()));while((line=reader.readLine())!=null){//Handlingline,maylogsit.}reader.close();p.destroy();}这段代码运转得很好,问题是为了运转这段代码,你还需要做一些额外的工作.这些额外的工作包含:1.编写一个类文件2.编写一个main方法3.将之编译成字节代码4.因为字节代码不可以够直接运转,你需要再写个小小的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,这是一个优势.2.2国际化支持我们换一种方式来问候世界.新建一个编写器并写以下代码:print"欢送到达奥运中国!"raw_input("Pressenterkeytoclosethiswindow");在你保留代码的时候,Python会提示你能否改变文件的字符集,结果以下:#-*-coding:cp936-*-print"欢送到达奥运中国!"raw_input("Pressenterkeytoclosethiswindow");将该字符集改为我们更熟习的形式:#-*-coding:GBK-*-print"欢送到达奥运中国!"#使用中文的例子raw_input("Pressenterkeytoclosethiswindow");程序相同运转优秀.2.3方便易用的计算器用微软附加的计算器来计数实在太麻烦了.打开Python解说器,直接进行计算:c=2343print(a+b+c)/c2.4字符串,ASCII和UNICODE能够以下打印出预约义输出格式的字符串:print"""Usage:thingy[OPTIONS]-hDisplaythisusagemessage-HhostnameHostnametoconnectto"""字符串是怎么接见的?请看这个例子:word="abcdefg"a=word[2]print"ais:"+ab=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)请注意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);2.5使用List近似Java里的List,这是一种方便易用的数据种类:word=['a','b','c','d','e','f','g']a=word[2]print"ais:"+ab=word[1:3]print"bis:"printb#index1and2elementsofword.c=word[:2]print"cis:"printc#index0and1elementsofword.d=word[0:]print"dis:"printd#Allelementsofword.e=word[:2]+word[2:]print"eis:"printe#Allelementsofword.f=word[-1]print"fis:"printf#Thelastelementsofword.g=word[-4:-2]print"gis:"printg#index3and4elementsofword.h=word[-2:]print"his:"printh#Thelasttwoelements.i=word[:-2]print"iis:"printi#Everythingexceptthelasttwocharactersl=len(word)print"Lengthofwordis:"+str(l)print"Addsnewelement"word.append('h')printword2.6条件和循环语句#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)2.7如何定义函数#Defineandinvokefunction.defsum(a,b):returna+bfunc=sumr=func(5,6)printr#Definesfunctionwithdefaultargumentdefadd(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:")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.plus(2,3)2.11包系统每一个.py文件称为一个module,module之间能够相互导入.请参看以下例子:defadd_func(a,b):returna+bfromaimportadd_func#Alsocanbe:importaprint"Importadd_funcfrommodulea"print"Resultof1plus2is:"c"module能够定义在包里面.Python定义包的方式略微有点乖僻,假定我们有一个parent文件夹,该文件夹有一个child子文件夹.child中有一个modulea.py.如何让Python知道这个文件层次构造?很简单,每个目录都放一个名为_init_.py的文件.该文件内容可认为空.这个层次构造以下所示:parent--child那么Python如何找到我们定义的module?在标准包sys中,path属性记录了Python的包路径.你能够将之打印出来:importsys平常我们能够将module的包路径放到环境变量PYTHONPAT中H,该环境变量会自动添加到sys.path属性.另

温馨提示

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

评论

0/150

提交评论