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

付费下载

下载本文档

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

文档简介

1、实用标准Python 入门教程超详细1 小时学会 Python为什么使用Python假设我们有这么一项任务: 简单测试局域网中的电脑是否连通. 这些电脑的ip 范围从 192.168.0.101 到 192.168.0.200.思路 : 用 shell编程 .(Linux通常是bash 而 Windows是批处理脚本). 例如 , 在 Windows 上用 ping ip的命令依次测试各个机器并得到控制台输出. 由于 ping通的时候控制台文本通常是 Reply from . 而不通的时候文本是time out . ,所以 , 在结果中进行字符串查找 , 即可知道该机器是否连通.实现 :Jav

2、a代码如下 :Stringcmd=cmd.exeping;Stringipprefix=192.168.10.;intbegin=101;intend=200;Processp=null ;for ( inti=begin;iend;i+)p=Runtime.getRuntime().exec(cmd+i);Stringline=null ;BufferedReaderreader=newBufferedReader(newInputStreamReader(p.getInputStream();while (line=reader.readLine()!=null )/Handlinglin

3、e,maylogsit.文案大全实用标准reader.close();p.destroy();这段代码运行得很好, 问题是为了运行这段代码, 你还需要做一些额外的工作. 这些额外的工作包括:编写一个类文件编写一个 main 方法将之编译成字节代码4.由于字节代码不能直接运行, 你需要再写个小小的bat 或者 bash 脚本来运行.当然 , 用 C/C+ 同样能完成这项工作. 但 C/C+ 不是跨平台语言. 在这个足够简单的例子中也许看不出C/C+ 和 Java 实现的区别, 但在一些更为复杂的场景, 比如要将连通与否的信息记录到网络数据库. 由于 Linux 和 Windows 的网络接口实现

4、方式不同, 你不得不写两个函数的版本 . 用 Java 就没有这样的顾虑.同样的工作用Python 实现如下 :importsubprocesscmd=cmd.exebegin=101end=200whilebeginend: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()文案大全实用标准printexecuti

5、onresult:%s%p.stdout.read()对比 Java,Python的实现更为简洁, 你编写的时间更快. 你不需要写main 函数 , 并且这个程序保存之后可以直接运行. 另外 , 和 Java 一样 ,Python也是跨平台的.有经验的C/Java 程序员可能会争论说用C/Java 写会比Python 写得快 . 这个观点见仁见智 . 我的想法是当你同时掌握Java 和 Python 之后 , 你会发现用Python 写这类程序的速度会比Java 快上许多 . 例如操作本地文件时你仅需要一行代码而不需要Java 的许多流包装类 . 各种语言有其天然的适合的应用范围 . 用 Py

6、thon 处理一些简短程序类似与操作系统的交互编程工作最省时省力 .Python 应用场合足够简单的任务, 例如一些shell编程 . 如果你喜欢用Python 设计大型商业网站或者设计复杂的游戏, 悉听尊便 .快速入门2.1 Hello world安装完 Python 之后 ( 我本机的版本是2.5.4),打开 IDLE(Python GUI) ,该程序是Python 语言解释器, 你写的语句能够立即运行. 我们写下一句著名的程序语句:printHello,world!并按回车 . 你就能看到这句被K&R 引入到程序世界的名言.文案大全实用标准在解释器中选择File-New Window或快

7、捷键Ctrl+N ,打开一个新的编辑器.写下如下语句:printHello,world!raw_input(Pressenterkeytoclosethiswindow);保存为a.py文件 . 按 F5, 你就可以看到程序的运行结果了. 这是 Python 的第二种运行方式 .找到你保存的a.py文件 , 双击 . 也可以看到程序结果.Python的程序能够直接运行,对比 Java, 这是一个优势.2.2国际化支持我们换一种方式来问候世界. 新建一个编辑器并写如下代码:print 欢迎来到奥运中国!raw_input(Pressenterkeytoclosethiswindow);在你保存代

8、码的时候,Python会提示你是否改变文件的字符集, 结果如下 :# -*- coding: cp936 -*-print 欢迎来到奥运中国!raw_input(Pressenterkeytoclosethiswindow);将该字符集改为我们更熟悉的形式:# -*- coding: GBK -*-print 欢迎来到奥运中国! #使用中文的例子文案大全实用标准raw_input(Pressenterkeytoclosethiswindow);程序一样运行良好.2.3方便易用的计算器用微软附带的计算器来计数实在太麻烦了. 打开 Python 解释器 , 直接进行计算:a=100.0b=201.

9、1c=2343print(a+b+c)/c2.4字符串,ASCII和 UNICODE可以如下打印出预定义输出格式的字符串:printUsage:thingyOPTIONS-hDisplaythisusage message-HhostnameHostnametoconnectto字符串是怎么访问的?请看这个例子:word=abcdefga=word2printais:+ab=word1:3文案大全实用标准printbis:+b#index1and2elementsofword.c=word:2printcis:+c#index0and1elementsofword.d=word0:printd

10、is:+d#Allelementsofword.e=word:2+word2:printeis:+e#Allelementsofword.f=word-1printfis:+f#Thelastelementsofword.g=word-4:-2printgis:+g#index3and4elementsofword.h=word-2:printhis:+h#Thelasttwoelements.i=word:-2printiis:+i#Everythingexceptthelasttwocharactersl=len(word)printLengthofwordis:+str(l)请注意ASC

11、II 和 UNICODE 字符串的区别:printInputyourChinesename:s=raw_input(Pressentertobecontinued);printYournameis:+s;l=len(s)printLengthofyourChinesename inasc codes is:+str(l);a=unicode(s,GBK)文案大全实用标准l=len(a)printImsorryweshoulduseunicodechar!CharactersnumberofyourChinesenameinunicodeis :+str(l);2.5使用 List类似 Java

12、 里的 List,这是一种方便易用的数据类型:word=a,b,c,d,e,f,ga=word2printais:+ab=word1:3printbis:printb#index1and2elementsofword.c=word:2printcis:printc#index0and1elementsofword.d=word0:printdis:printd#Allelementsofword.e=word:2+word2:printeis:printe# Allelementsofword.f=word-1printfis:文案大全实用标准printf# Thelastelementsof

13、word.g=word-4:-2printgis:printg#index3 and4elements of word.h=word-2:printhis:printh# Thelasttwoelements.i=word:-2printiis:printi# Everythingexceptthelasttwocharactersl=len(word)printLengthofwordis:+str(l)printAddsnewelementword.append(h)printword2.6条件和循环语句#Multi-waydecisionx=int (raw_input(Pleaseen

14、teraninteger:)ifx0:x=0printNegativechangedtozeroelifx=0:printZero文案大全实用标准else :printMoreLoops Lista=cat,window,defenestrateforxina: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=a

15、dd(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.txtf=open(spath,w)#Opensfileforwriting.Createsthisfiledoesntexist.f.write(Firstline1.n)f.writelines(

16、Firstline2.)f.close()f=open(spath,r)#Opensfileforreadingforlineinf:printlinef.close()2.9异常处理s=raw_input(Inputyourage:)ifs=:raiseException(Inputmustnobeempty.)文案大全实用标准try :i= int (s)exceptValueError:printCouldnotconvertdatatoaninteger.except:printUnknownexception!else : #Itisuseful forcodethatmustbee

17、xecutedifthetryclausedoesnotraiseanexceptionprintYouare%d% i,yearsoldfinally:#CleanupactionprintGoodbye!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=

18、Child()oChild.add(str1)printoChild.dataprintoChild.plus(2,3)2.11包机制每一个 .py 文件称为一个module,module之间可以互相导入. 请参看以下例子:a.pydefadd_func(a,b):returna+bb.pyfromaimportadd_func#Alsocanbe:importaprintImportadd_funcfrommodule aprintResultof 1plus2 is:printadd_func(1,2)#Ifusing importa ,then here shouldbe a.add_f

19、uncmodule 可以定义在包里面.Python定义包的方式稍微有点古怪, 假设我们有一个parent 文件夹 , 该文件夹有一个child子文件夹 .child中有一个module a.py .如何让Python 知道这个文件层次结构?很简单 , 每个目录都放一个名为_init_.py的文件 . 该文件内容可以为空 . 这个层次结构如下所示:parent-_init_.py文案大全实用标准-child_init_.py -a.pyb.py那么 Python 如何找到我们定义的module? 在标准包sys 中 ,path属性记录了Python的包路径 . 你可以将之打印出来:importsysprintsys.path通常我们可以将module 的包路径放到环境变量PYTHONPATH 中, 该环境变量会自动添加到 sys.path属性 . 另一种方便的方法是编程中直接指定我们的module 路径到sys.path中

温馨提示

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

评论

0/150

提交评论