《183编号Python入门教程 超详细1小时学会Python》由会员分享,可在线阅读,更多相关《183编号Python入门教程 超详细1小时学会Python(13页珍藏版)》请在金锄头文库上搜索。
1、Python 入门教程入门教程 超详细超详细 1 小时学会小时学会 Python 为什么使用 Python为什么使用 Python 假设我们有这么一项任务:简单测试局域网中的电脑是否连通.这些电脑的 ip 范围从 19 2.168.0.101 到 192.168.0.200. 思路:用 shell 编程.(Linux 通常是 bash 而 Windows 是批处理脚本).例如,在 Windows 上 用ping ip 的命令依次测试各个机器并得到控制台输出.由于ping通的时候控制台文本通常 是Reply from . 而不通的时候文本是time out . ,所以,在结果中进行字符串查找,
2、即可知道该机器是否连通. 实现: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(l
3、ine = reader.readLine() != null) /Handling line , may logs it. reader.close(); p.destroy(); 这段代码运行得很好,问题是为了运行这段代码,你还需要做一些额外的工作.这些额外 的工作包括: 1. 编写一个类文件 2. 编写一个 main 方法 3. 将之编译成字节代码 4. 由于字节代码不能直接运行,你需要再写个小小的 bat 或者 bash 脚本来运行. 当然,用C/C+同样能完成这项工作.但C/C+不是跨平言.在这个足够简单的例子中 也许看不出 C/C+和 Java 实现的区别,但在一些更为复杂的场景,
4、比如要将连通与否的信息 记录到网络数据库.由于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.+st
5、r(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写这类程序的速度会比Ja va快上许多.例如操作本地文件时你仅需要一行代码而不需要Java的许
6、多流包装类.各种语 言有其天然的适合的应用范围.用 Python 处理一些简短程序类似与操作系统的交互编程工 作最省时省力. Python 应用场合Python 应用场合 足够简单的任务,例如一些 shell 编程.如果你喜欢用 Python 设计大型商业网站或者设 计复杂的游戏,悉听尊便. 2 快速入门 2.1 Hello world2.1 Hello world 安装完Python之后(我本机的版本是2.5.4),打开IDLE(Python GUI) , 该程序是Pytho n 语言解释器,你写的语句能够立即运行.我们写下一句著名的程序语句: print Hello,world! 并按回车
7、.你就能看到这句被 K 保存为 a.py 文件.按 F5,你就可以看到程序的运行结果了.这是 Python 的第二种运行方 式. 找到你保存的a.py文件,双击.也可以看到程序结果.Python的程序能够直接运行,对比J ava,这是一个优势. 2.2 国际化支持2.2 国际化支持 我们换一种方式来问候世界.新建一个编辑器并写如下代码: print 欢迎来到奥运中国! raw_input(Press enter key to close this window); 在你保存代码的时候,Python 会提示你是否改变文件的字符集,结果如下: # -*- coding: cp936 -*- pri
8、nt 欢迎来到奥运中国! raw_input(Press enter key to close this window); 将该字符集改为我们更熟悉的形式: # -*- coding: GBK -*- print 欢迎来到奥运中国! # 使用中文的例子 raw_input(Press enter key to close this window); 程序一样运行良好. 2.3 方便易用的计算器2.3 方便易用的计算器 用微软附带的计算器来计数实在太麻烦了.打开 Python 解释器,直接进行计算: a=100.0 b=201.1 c=2343 print (a+b+c)/c 2.4 字符串,A
9、SCII 和 UNICODE2.4 字符串,ASCII 和 UNICODE 可以如下打印出预定义输出格式的字符串: print Usage: thingy OPTIONS -h Display this usage message -H hostname Hostname to connect to 字符串是怎么访问的?请看这个例子: word=abcdefg a=word2 print a is: +a b=word1:3 print b is: +b # index 1 and 2 elements of word. c=word:2 print c is: +c # index 0 an
10、d 1 elements of word. d=word0: print d is: +d # All elements of word. e=word:2+word2: 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 p
11、rint 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 : +s; l=len(s) print Length of your Chinese name in asc codes is:+str(l); a=
12、unicode(s,GBK) l=len(a) print Im sorry we should use unicode char!Characters number of your Chinese name in unicode is:+str(l); 2.5 使用 List2.5 使用 List 类似 Java 里的 List,这是一种方便易用的数据类型: word=a,b,c,d,e,f,g a=word2 print a is: +a b=word1:3 print b is: print b # index 1 and 2 elements of word. c=word:2 pri
13、nt c is: print c # index 0 and 1 elements of word. d=word0: print d is: print d # All elements of word. e=word:2+word2: 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: pr
14、int 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 word.append(h) print word 2.6 条件和循环语句2.6 条件和循环语句 # Multi-way decision x=int(raw_input(Please enter an integer:) if
15、 x0: 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 如何定义函数2.7 如何定义函数 # Define and invoke function. def sum(a,b): return a+b func = sum r = func(5,6) print r # Defines function with default argument d
16、ef add(a,b=2): 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/O2.8 文件 I/O spath=D:/download/baa.txt f=open(spath,w) # Ope