文档详情

Python入门教程-超详细1小时学会Python.doc

发布:2018-05-11约7.67千字共11页下载文档
文本预览下载声明
Python入门教程 超详细1小时学会Python 本文适合有经验的程序员尽快进入Python世界.特别地,如果你掌握Java和Javascript,不用1小时你就可以用Python快速流畅地写有用的Python程序. 为什么使用Python ??? 假设我们有这么一项任务:简单测试局域网中的电脑是否连通.这些电脑的ip范围从192.168.0.101到192.168.0.200.??? ??? 思路:用shell编程.(Linux通常是bash而Windows是批处理脚本).例如,在Windows上用ping ip 的命令依次测试各个机器并得到控制台输出.由于ping通的时候控制台文本通常是Reply from ... 而不通的时候文本是time out ... ,所以,在结果中进行字符串查找,即可知道该机器是否连通. ??? 实现:Java代码如下: String?cmd=cmd.exe?ping?; String?ipprefix=192.168.10.; int?begin=101; int?end=200; Process?p=null; for(int?i=begin;iend;i++){ ?????p=?Runtime.getRuntime().exec(cmd+i); ?????String?line?=?null; ?????BufferedReader?reader?=?new?BufferedReader(new?InputStreamReader(p.getInputStream())); ?????while((line?=?reader.readLine())?!=?null) ?????{ ?????????//Handling?line?,?may?logs?it.? ?????} ????reader.close(); ????p.destroy(); } ??? 这段代码运行得很好,问题是为了运行这段代码,你还需要做一些额外的工作.这些额外的工作包括: 编写一个类文件 编写一个main方法 将之编译成字节代码 由于字节代码不能直接运行,你需要再写个小小的bat或者bash脚本来运行. ??? 当然,用C/C++同样能完成这项工作.但C/C++不是跨平台语言.在这个足够简单的例子中也许看不出C/C++和Java实现的区别,但在一些更为复杂的场景,比如要将连通与否的信息记录到网络数据库.由于Linux和Windows的网络接口实现方式不同,你不得不写两个函数的版本.用Java就没有这样的顾虑. ??? 同样的工作用Python实现如下: import?subprocess cmd=cmd.exe begin=101 end=200 while?beginend: ????p=subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE, ???????????????????stdin=subprocess.PIPE, ???????????????????stderr=subprocess.PIPE) ????p.stdin.write(ping?192.168.1.+str(begin)+\n) ????p.stdin.close() ????p.wait() ????print?execution?result:?%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.1 Hello world ??? 安装完Python之后(我本机的版本是2.5.4),打开IDLE(Python GUI) , 该程序是Python语言解释器,你写的语句能够立即运行.我们写下一句著名的程序语句: print?Hello,world! ??? 并按回车.你就能看到这句被KR引入到程序世界的名言. ??? 在解释器中选择File--New
显示全部
相似文档