admin 管理员组文章数量: 887035
2023年12月23日发(作者:java全栈开发适合女生学吗)
.
Python 入门教程
超详细 1 小时学会 Python
本文适合有经验的程序员尽快进入
Python 世界 .特别地 ,如果你掌握
Python 程序 .
Java 和 Javascript, 不用
1 小时你就可以用 Python 快速流畅地写有用的
为什么使用 Python
假设我们有这么一项任务
:简单测试局域网中的电脑是否连通
.这些电脑的 ip 范围从 192.
168.0.101
到 192.168.0.200.
思路 : 用 shell 编程 .(Linux 通常是 bash 而 Windows 是批处理脚本
用 ping ip 的命令依次测试各个机器并得到控制台输出
). 例如 , 在 Windows 上
.由于 ping 通的时候控制台文本通常
是"Reply from ... " 而不通的时候文本是 "time out ... " , 所以 ,在结果中进行字符串查找 ,
即可知道该机器是否连通
.
实现 :Java 代码如下 :
String cmd=" ping ";
String ipprefix="192.168.10.";
int begin=101;
int end=200;
Process p= null ;
for ( int i=begin;i p= time().exec(cmd+i); String line = null ; BufferedReader reader = new BufferedReader( new InputStreamReader(utStream())); null ) while ((line = ne()) != { //Handling line , may logs it. } (); y(); } 这段代码运行得很好 , 问题是为了运行这段代码 , 你还需要做一些额外的工作 . 这些额外的工作包括 : 1. 2. 3. '. 编写一个类文件 编写一个 main 方法 将之编译成字节代码 . 4. 由于字节代码不能直接运行 ,你需要再写个小小的 bat 或者 bash 脚本来运行 . .在这个足够简单的例子 ,比如要将连通与否的信 当然 , 用 C/C++ 同样能完成这项工作 .但 C/C++ 不是跨平台语言 中也许看不出 C/C++ 和 Java 实现的区别 ,但在一些更为复杂的场景 息记录到网络数据库 .由于 Linux 和 Windows 的网络接口实现方式不同 ,你不得不写两个函数 的版本 .用 Java 就没有这样的顾虑 . 同样的工作用 Python 实现如下 : import subprocess cmd="" begin=101 end=200 while begin p=(cmd,shell=True,stdout=, stdin=, stderr=) ("ping 192.168.1."+str(begin)+"n") () () print "execution result: %s"%() 对比 Java,Python 的实现更为简洁 ,你编写的时间更快 . 你不需要写 main 函数 ,并且这个程序保存之后可以直接运行 .另外 ,和 Java 一样 ,Python 也是跨平台的 . 有经验的 C/Java 程序员可能会争论说用 C/Java 写会比 Python 写得快 .这个观点见仁见 Python 写这类程序的速度会 Java 的许多流包装类 . 各 智. 我的想法是当你同时掌握 Java 和 Python 之后 ,你会发现用 比 Java 快上许多 .例如操作本地文件时你仅需要一行代码而不需要 种语言有其天然的适合的应用范围 .用 Python 处理一些简短程序类似与操作系统的交互编 程工作最省时省力 . Python 应用场合 '. . 足够简单的任务 ,例如一些 shell 编程 .如果你喜欢用 Python 设计大型商业网站或者设计 复杂的游戏 ,悉听尊便 . 2 快速入门 2.1 Hello world 安装完 Python 之后 (我本机的版本是 2.5.4), 打开 IDLE(Python GUI) , 该程序是 Python 语言解释器 ,你写的语句能够立即运行 .我们写下一句著名的程序语句 : print "Hello,world!" 并按回车 .你就能看到这句被 K&R 引入到程序世界的名言 . 在解释器中选择 "File"--"New Window" 或快捷键 Ctrl+N , 打开一个新的编辑器 .写下如下语句 : print "Hello,world!" raw_input("Press enter key to close this window "); 保存为 文件 . 按 F5,你就可以看到程序的运行结果了 .这是 Python 的第二种运行方式 . 找到你保存的 文件 ,双击 . 也可以看到程序结果 .Python 的程序能够直接运行 ,对比 Ja va, 这是一个优势 . 2.2 国际化支持 我们换一种方式来问候世界 .新建一个编辑器并写如下代码 : print " 欢迎来到奥运中国 !" raw_input("Press enter key to close this window "); 在你保存代码的时候 ,Python 会提示你是否改变文件的字符集 # -*- coding: cp936 -*- , 结果如下 : print " 欢迎来到奥运中国 !" raw_input("Press enter key to close this window '. "); . 将该字符集改为我们更熟悉的形式 : # -*- coding: GBK -*- print " 欢迎来到奥运中国 !" # 使用中文的例子 raw_input("Press enter key to close this window "); 程序一样运行良好 . 2.3 方便易用的计算器 用微软附带的计算器来计数实在太麻烦了 .打开 Python 解释器 ,直接进行计算 : a=100.0 b=201.1 c=2343 print (a+b+c)/c 2.4 字符串 ,ASCII 和 UNICODE 可以如下打印出预定义输出格式的字符串 print """ : Usage: thingy [OPTIONS] -h Display this usage message -H hostname Hostname to connect to """ 字符串是怎么访问的 ?请看这个例子 : word="abcdefg" a=word[2] print "a is: "+a b=word[1:3] print "b is: "+b # index 1 and 2 elements of word. c=word[:2] print "c is: "+c # index 0 and 1 elements of word. d=word[0:] '. . print "d is: "+d # All elements of word. e=word[:2]+word[2:] print "e is: "+e # All elements of word. f=word[-1] print "f is: "+f # The last elements of word. g=word[-4:-2] print "g is: "+g # index 3 and 4 elements of word. h=word[-2:] print "h is: "+h # The last two elements. i=word[:-2] print "i is: "+i # Everything except the last two characters l=len(word) print "Length of word is: "+ str(l) 请注意 ASCII 和 UNICODE 字符串的区别 print "Input your Chinese name:" s=raw_input("Press enter to be continued "); : print "Your name is l=len(s) : " +s; print "Length of your Chinese name in asc codes is:"+str(l); a=unicode(s,"GBK") l=len(a) print "I'm sorry we should use unicode char!Characters number of your Chinese name in unicode is:"+str(l); 2.5 使用 List 类似 Java 里的 List, 这是一种方便易用的数据类型 : word=['a','b','c','d','e','f','g'] a=word[2] print "a is: "+a b=word[1:3] print "b is: " print b # index 1 and 2 elements of word. c=word[:2] print "c is: " '. . print c # index 0 and 1 elements of word. d=word[0:] print "d is: " print d # All elements of word. e=word[:2]+word[2:] print "e is: " print e # All elements of word. f=word[-1] print "f is: " print f # The last elements of word. g=word[-4:-2] print "g is: " print g # index 3 and 4 elements of word. h=word[-2:] print "h is: " print h # The last two elements. i=word[:-2] print "i is: " print i # Everything except the last two characters l=len(word) print "Length of word is: "+ str(l) print "Adds new element ('h') print word " 2.6 条件和循环语句 # Multi-way decision x= int (raw_input("Please enter an integer:")) if x<0: x=0 print "Negative changed to zero" elif x==0: print "Zero" else: print "More" '. . # Loops List a = ['cat', 'window', 'defenestrate'] for x in a: print x, len(x) 2.7 如何定义函数 # Define and invoke function. def sum(a,b): return a+b func = sum r = func(5,6) print r # Defines function with def add(a,b=2): default argument return a+b r=add(1) print r r=add(1,5) print r 并且 , 介绍一个方便好用的函数 : # The range() function a =range(5,10) print a a = range(-2,-7) print a a = range(-7,-2) print a a = range(-2,-11,-3) # The 3rd parameter stands for step print a '. . 2.8 文件 I/O spath="D:/download/" f=open(spath,"w") # Opens file for s this file doesn't exist. ("First line 1.n") ines("First line 2.") () f=open(spath,"r") # Opens file for reading for line in f: print line () 2.9 异常处理 s=raw_input("Input your age:") if s =="": raise Exception("Input must no be empty.") try : i= int (s) except ValueError: print "Could not convert data to an integer." except: print "Unknown exception!" else: # It is useful for code that must be executed if the try clause does not raise an exception print "You are %d" % i," years old" finally : # Clean up action print "Goodbye!" 2.10 类和继承 class Base: def __init__(self): = [] '. . def add(self, x): (x) def addtwice(self, x): (x) (x) # Child extends Base class Child(Base): def plus(self,a,b): return a+b oChild =Child() ("str1") print print (2,3) 2.11 包机制 每一个 .py 文件称为一个 module,module 之间可以互相导入 .请参看以下例子 : # def add_func(a,b): return a+b # from a import add_func # Also can be : import a print "Import add_func from module a" print "Result of 1 plus 2 is: " print add_func(1,2) # If using "import a" , then here should be "_func" module 可以定义在包里面 .Python 定义包的方式稍微有点古怪 ,假设我们有一个 parent 文件夹 ,该文件夹有一个 child 子文件夹 .child 中有一个 module . 如何让 Python 知道这个文件层次结构 ?很简单 , 每个目录都放一个名为 _init_.py 的文件 .该文件内容可以为空 . 这个层次结构如下所示 : parent --__init_.py '. . --child -- __init_.py -- 那么 Python 如何找到我们定义的 路径 .你可以将之打印出来 : module? 在标准包 sys 中 ,path 属性记录了 Python 的包 import sys print 通常我们可以将 module 的包路径放到环境变量 PYTHONPATH 中 ,该环境变量会自动添 加到 属性 .另一种方便的方法是编程中直接指定我们的 module 路径到 中: import sys ('D:download') from .a import add_func print print "Import add_func from module a" print "Result of 1 plus 2 is: " print add_func(1,2) 总结 你会发现这个教程相当的简单 .许多 Python 特性在代码中以隐含方式提出 ,关键字说明 ,字符串函数的解释等等 , 这些特性包括 : Python 不需要显式声明数据类型 序员应该对这些概念相当了解 .我认为一个熟练的程 ,你能 ,这样在你挤出宝贵的一小时阅读这篇短短的教程之后 Python, 然后尽快能用它开始编程 . 够通过已有知识的迁移类比尽快熟悉 当然 ,1 小时学会 Python 颇有哗众取宠之嫌 . 确切的说 ,编程语言包括语法和标准库 . 语法 相当于武术招式 , 而标准库应用实践经验则类似于内功 长处 ,提供了大量极方便易用的标准库供程序员 ,需要长期锻炼 .Python 学习了 Java 的 "拿来主义 ".( 这也是 Python 成功的原因 ), 在 '. . 开篇我们看到了 Python 如何调用 Windows cmd 的例子 ,以后我会尽量写上各标准库的用法和一些应用技巧 , 让大家真正掌握 Python. 但不管怎样 ,至少你现在会用 Python 代替繁琐的批处理写程序了 .希望那些真的能在一小时内读完本文并开始使用 Python 的程序员会喜欢这篇小文章 ,谢谢 ! '.
版权声明:本文标题:Python入门教程超详细1小时学会Python 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1703323268h446913.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论