Python 入门

2,224 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,224
On SlideShare
0
From Embeds
0
Number of Embeds
108
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Python 入门

  1. 1.
  2. 2. 简介 <ul><li>Python 是什么 ? </li></ul><ul><ul><li>一种面向对象的解释性的计算机程序设计语言 </li></ul></ul><ul><li>Python 能做什么 ? </li></ul><ul><ul><li>网站开发 </li></ul></ul><ul><ul><li>桌面应用程序开发 </li></ul></ul><ul><ul><li>手机应用程序开发 </li></ul></ul><ul><ul><li>LINUX 系统脚本 </li></ul></ul><ul><ul><li>… </li></ul></ul><ul><li>谁在使用它 ? </li></ul><ul><ul><li>Google </li></ul></ul><ul><ul><li>Youtube </li></ul></ul><ul><ul><li>NASA( 美国宇航局 ) </li></ul></ul><ul><ul><li>BitTorrent </li></ul></ul><ul><ul><li>… </li></ul></ul><ul><li>更多介绍 </li></ul><ul><ul><li>http://www.python.org/ </li></ul></ul><ul><ul><li>http://baike.baidu.com/view/21087.htm </li></ul></ul>
  3. 3. 语言特点 <ul><li>简单易学 </li></ul><ul><li>免费、开源 </li></ul><ul><li>高阶语言 </li></ul><ul><li>可移植性 - 跨平台 </li></ul><ul><li>解释性 </li></ul><ul><li>面向对象 </li></ul><ul><li>可扩展性 - 可以使用 C/C++ 扩展 </li></ul><ul><li>可嵌入性 </li></ul><ul><li>丰富的库 </li></ul>
  4. 4. 下载 , 安装 , 开发环境 <ul><li>下载 http://www.python.org/ </li></ul><ul><li>安装 </li></ul><ul><li>运行方式 </li></ul><ul><ul><li>命令行 </li></ul></ul><ul><ul><li>文件 </li></ul></ul><ul><li>运行 / 开发环境 </li></ul><ul><ul><li>命令行 Python (command line) </li></ul></ul><ul><ul><li>自带的 IDLE (Python GUI) </li></ul></ul><ul><ul><li>第三方 PythonWin / UliPad </li></ul></ul><ul><ul><ul><li>简单介绍与配置 </li></ul></ul></ul>
  5. 5. 基本语法 <ul><li>Hello Python </li></ul><ul><ul><li>demo1.py </li></ul></ul><ul><li>注释井号 (#) </li></ul><ul><li>代码特点 </li></ul><ul><ul><li>采用缩进来区分代码的层级关系 </li></ul></ul><ul><ul><li>没有大括号 ({}), 采用引号 (:) 做为代码片段的开始 </li></ul></ul><ul><ul><li>语句结束不使用分号 (;) </li></ul></ul><ul><ul><li>不推荐同一行写多条语句 </li></ul></ul>
  6. 6. 基本数据类型 <ul><li>数字 (integer, long integer, Floating point real number) </li></ul><ul><li>布尔型 (boolean) </li></ul><ul><li>字符串 (string) </li></ul><ul><li>列表 (list) 和元组 (tuple) </li></ul><ul><li>字典 (Dictionary) </li></ul>
  7. 7. 字符串 <ul><li>连接 </li></ul><ul><ul><li>&quot;ABC&quot; + &quot;ABC&quot; #ABCABC </li></ul></ul><ul><li>重复 </li></ul><ul><ul><li>&quot;ABC&quot; * 3 #ABCABCABC </li></ul></ul><ul><li>索引 </li></ul><ul><ul><li>&quot;ABC”[0] #A </li></ul></ul><ul><ul><li>&quot;ABC”[-1] #C </li></ul></ul><ul><li>切片 </li></ul><ul><ul><li>&quot;ABC&quot;[1:3] #BC </li></ul></ul><ul><ul><li>&quot;ABC&quot;[-2:-1] #B </li></ul></ul><ul><ul><li>&quot;ABC&quot;[-2:] #BC </li></ul></ul><ul><ul><li>&quot;ABC&quot;[:-2] #A </li></ul></ul><?php echo &quot;ABC&quot; . &quot;ABC&quot;; ?> <?php echo str_repeat (&quot;ABC&quot;, 3); ?> <?php $str = &quot;ABC&quot;; echo $str [ 0 ] ; //OR $str { 0 } ?> <?php $str = &quot;ABC&quot;; echo substr ($str, 1, 2); echo substr ($str, 1, 1); echo substr ($str, 1); echo substr ($str, -3, 1); ?>
  8. 8. 字符串 <ul><li>长度 </li></ul><ul><ul><li>len(“ABC”) #3 </li></ul></ul><ul><li>比较 </li></ul><ul><ul><li>“ ABC” > “abc” </li></ul></ul><ul><li>其它字符串内建方法 </li></ul><ul><ul><li>http://www.cnblogs.com/starspace/archive/2008/12/11/1352969.html </li></ul></ul>
  9. 9. 列表和元组 <ul><li>列表 listObj = [1, 2, '3', 4, ['a', 'b']] </li></ul><ul><ul><li>元素类型可多样性 </li></ul></ul><ul><ul><li>支持切片操作 </li></ul></ul><ul><ul><li>listObj[0] #1 </li></ul></ul><ul><ul><li>listObj[-1] #['a', 'b'] </li></ul></ul><ul><ul><ul><li>listObj[-n] == listObj[len(listObj) - n] </li></ul></ul></ul><ul><ul><li>常用方法 </li></ul></ul><ul><ul><ul><li>append 向 list 的末尾追加单个元素 </li></ul></ul></ul><ul><ul><ul><li>insert 将单个元素插入到 list 中 </li></ul></ul></ul><ul><ul><ul><li>extend 用来连接 list </li></ul></ul></ul><ul><ul><ul><li>在 list 中搜索 </li></ul></ul></ul><ul><ul><ul><li>删除元索 </li></ul></ul></ul><ul><li>元组 tupleObj = (1, 2, 3) </li></ul><ul><ul><li>理解元组为只读的列表 </li></ul></ul><ul><ul><li>没有常用方法 </li></ul></ul><ul><ul><li>Tuple 比 list 操作速度快 , 更安全 </li></ul></ul><ul><li>相互转换 : list() / tuple() </li></ul><ul><li>http://hi.baidu.com/linuxbird/blog/item/7721a09b676153bdc9eaf41c.html </li></ul>
  10. 10. 字典 <ul><li>字典 dictObj = {&quot;a&quot;:1, &quot;b&quot;:&quot;two&quot;} </li></ul><ul><ul><li>取值 : dictObj[&quot;a&quot;] </li></ul></ul><ul><ul><li>增加 : dictObj[&quot;c&quot;] = {&quot;cc&quot;:&quot;dd&quot;} </li></ul></ul><ul><ul><li>删除 : del dictObj [&quot;a&quot;] </li></ul></ul><ul><ul><li>清除所有元素 : dictObj.clear() </li></ul></ul>
  11. 11. 变量 <ul><li>无须声明 </li></ul><ul><li>类型可变 </li></ul><ul><li>变量命名规则 </li></ul><ul><ul><li>一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线 </li></ul></ul><ul><li>没有常量的概念 </li></ul>
  12. 12. 运算符 <ul><li>数学运算符 </li></ul><ul><ul><li>+ - * / // % ** </li></ul></ul><ul><li>比较运算符 </li></ul><ul><ul><li>< <= > >= == != </li></ul></ul><ul><li>逻辑运算符 </li></ul><ul><ul><li>and or not </li></ul></ul><ul><li>赋值运算符 </li></ul><ul><ul><li>= += -= *= /= %= **= <<= >>= &= ^= |= </li></ul></ul><ul><li>字符串运算符 </li></ul><ul><ul><li>+ * </li></ul></ul>没有 ++ -- 没有 && || ! 没有三目运算符 ? : 1<2<3 #True x, y = (1, 3) #x=1; y=3
  13. 13. 流程控制 <ul><li>if </li></ul><ul><ul><li>if a>b: </li></ul></ul><ul><ul><ul><li>print &quot;a>b&quot; </li></ul></ul></ul><ul><ul><li>if a>b: </li></ul></ul><ul><ul><ul><li>Print &quot;a>b&quot; </li></ul></ul></ul><ul><ul><ul><li>else: </li></ul></ul></ul><ul><ul><ul><li>print &quot;b>a OR b==a&quot; </li></ul></ul></ul><ul><ul><li>if a>b: </li></ul></ul><ul><ul><ul><li>Print &quot;a>b&quot; </li></ul></ul></ul><ul><ul><li>elif a<b: </li></ul></ul><ul><ul><ul><li>print &quot;a<b&quot; </li></ul></ul></ul><ul><ul><ul><li>else: </li></ul></ul></ul><ul><ul><ul><li>print &quot;a==b&quot; </li></ul></ul></ul>
  14. 14. 流程控制 <ul><li>while </li></ul><ul><ul><li>while a<b: </li></ul></ul><ul><ul><ul><ul><li>print a </li></ul></ul></ul></ul><ul><ul><ul><ul><li>#a++ </li></ul></ul></ul></ul><ul><ul><ul><ul><li>a = a+1 </li></ul></ul></ul></ul><ul><ul><li>while a<b: </li></ul></ul><ul><ul><ul><ul><li>print a </li></ul></ul></ul></ul><ul><ul><ul><ul><li>#a++ </li></ul></ul></ul></ul><ul><ul><ul><ul><li>a = a+1 </li></ul></ul></ul></ul><ul><ul><li>else: </li></ul></ul><ul><ul><li>print &quot;a>=b&quot; </li></ul></ul>
  15. 15. 流程控制 <ul><li>For </li></ul><ul><ul><li>for val in [1, 2, 3]: </li></ul></ul><ul><ul><ul><li>print val </li></ul></ul></ul><ul><ul><li>for val in []: </li></ul></ul><ul><ul><ul><li>print val </li></ul></ul></ul><ul><ul><ul><li>else: </li></ul></ul></ul><ul><ul><ul><li>print &quot;no item&quot; </li></ul></ul></ul>
  16. 16. 流程控制 <ul><li>continue </li></ul><ul><li>break </li></ul><ul><li>pass </li></ul>
  17. 17. 函数 <ul><li>def functionName(a, b): </li></ul><ul><ul><li> '''this is function xxx''' </li></ul></ul><ul><ul><ul><li>#return a+1, b+2 </li></ul></ul></ul><ul><ul><ul><li>return a+b </li></ul></ul></ul><ul><li>返回值 </li></ul><ul><ul><li>可返回多个值 return a+1, b+2 </li></ul></ul><ul><li>文档字符串 (doc string) </li></ul>
  18. 18. 类 <ul><li>class className: </li></ul><ul><ul><li>'''this is class xxx''' </li></ul></ul><ul><ul><li>def __init__(self): </li></ul></ul><ul><ul><li>pass </li></ul></ul><ul><ul><li>def myFunc(self, msg): </li></ul></ul><ul><ul><li>print msg </li></ul></ul><ul><li>每个类成员函数的第一个参数都为 self </li></ul><ul><li>类变量 & 对象的变量 </li></ul>
  19. 19. 异常 <ul><li>try: </li></ul><ul><ul><li>import aaa </li></ul></ul><ul><ul><li>except ImportError : </li></ul></ul><ul><ul><li>print 'import error' </li></ul></ul>
  20. 20. 引用库 <ul><li>关键字 </li></ul><ul><ul><li>import </li></ul></ul><ul><li>常用库 </li></ul><ul><ul><li>http://wiki.woodpecker.org.cn/moin/PythonStandardLib </li></ul></ul>
  21. 21. 连接 MySql <ul><li>下载 MySQLdb 的库 </li></ul><ul><ul><li>http://sourceforge.net/projects/mysql-python 会得到一个 *.egg ( 类似 MySQL_python-1.2.2-py2.4-win32.egg ) </li></ul></ul><ul><li>安装 *.egg  </li></ul><ul><ul><ul><li>a, 必需安装 SetupTools, 安装方法 : 我们可以下载 http://peak.telecommunity.com/dist/ez_setup.py </li></ul></ul></ul><ul><ul><ul><li>这个自引导模块来安装 setuptools 。 </li></ul></ul></ul><ul><ul><ul><li>下载后 ( 假设文件放在 c:python25 )执行如下图 A 框中的命令 . </li></ul></ul></ul><ul><ul><ul><li>b, 安装好 SetupTools 后会在 C:Python25Scripts 目录下有一个 easy_install.exe , </li></ul></ul></ul><ul><ul><ul><li>用它去执行 *.egg 这样就可以安装 *.egg 了 . 如下图 B 框中的命令 . </li></ul></ul></ul><ul><li>测试 </li></ul><ul><li>相关网页 http://mysql-python.sourceforge.net/MySQLdb.html http://peak.telecommunity.com/DevCenter/EasyInstall http://blog.sina.com.cn/s/blog_57b671b601008bsw.html </li></ul>
  22. 22. 连接 MySql
  23. 23. 制作动态网页 <ul><li>下载 ModPython-3.3.1 http://httpd.apache.org/modules/python-download.cgi , 安装过程中会讯问 apache 安装目录 . </li></ul><ul><li>在 apache 的 httpd.conf 中加入一行: </li></ul><ul><ul><li>LoadModule python_module modules/mod_python.so </li></ul></ul><ul><li>再加入下面一段 </li></ul><ul><ul><ul><li>Alias /py/ &quot;d:/PythonCode/&quot; </li></ul></ul></ul><ul><ul><ul><li><Directory &quot;d:/PythonCode/&quot;> </li></ul></ul></ul><ul><ul><ul><li>AddHandler mod_python .py </li></ul></ul></ul><ul><ul><ul><li>#PythonHandler mptest </li></ul></ul></ul><ul><ul><ul><li>PythonHandler mod_python.publisher </li></ul></ul></ul><ul><ul><ul><li>PythonDebug On </li></ul></ul></ul><ul><ul><ul><li></Directory> </li></ul></ul></ul><ul><li>在 d:/PythonCode/ 目录下新建一名为 mptest.py 的测试文件 , 内容如下 </li></ul><ul><ul><ul><li>from mod_python import apache </li></ul></ul></ul><ul><ul><ul><li>def handler(req): </li></ul></ul></ul><ul><ul><ul><li>req.content_type = &quot;text/plain&quot; </li></ul></ul></ul><ul><ul><ul><li>req.write(&quot;Hello World!&quot;) </li></ul></ul></ul><ul><ul><ul><li>return apache.OK </li></ul></ul></ul><ul><li>通过 http://127.0.0.1/py/mptest.py 访问测试 </li></ul><ul><li>相关网页 http://man.chinaunix.net/develop/python/mod_python/mod_python.html </li></ul>
  24. 24. 桌面应用 <ul><li>下载安装 </li></ul><ul><ul><li>wxPython2.8-win32-unicode-2.8.9.2-py25.exe </li></ul></ul><ul><li>下载安装 </li></ul><ul><ul><li>pywin32-213.win32-py2.5.exe </li></ul></ul><ul><li>简单示例 </li></ul>
  25. 25. 网络资源 <ul><ul><li>http://www.woodpecker.org.cn/ </li></ul></ul><ul><ul><li>http://www.python.cn/ </li></ul></ul><ul><ul><li>http://www.chinaunix.net/ </li></ul></ul><ul><ul><li>http://www.woodpecker.org.cn/diveintopython/ </li></ul></ul><ul><ul><li>http://linux.chinaitlab.com/manual/Python_chinese/index.html </li></ul></ul><ul><ul><li>http://www.freebsd.org.hk/html/python/tut_tw/tut.html [ 繁体 ] </li></ul></ul>
  26. 26. <ul><li>END </li></ul><ul><li>kuco </li></ul><ul><li>2009.04 </li></ul>

×