SlideShare a Scribd company logo
1 of 36
Python
              凌岳
         日期: 2011-09-12




                          1
大 纲
•简介 & 特点 & 环境
•基本数据结构 & 语法
•常用模块 [ 脚本 ]




                2
简介
•Python 是一种简单易学,功能强大的
编程语言,它有高效率的高层数据结构
,简单而有效地实现面向对象编程。
•“ 瑞士军刀”
•无所不能的 python


Life Is Short ,
You Need Python !

                        3
能做什么
•系统编程
•用户图形接口
•Internet 通信
•组件集成 [ 胶水 ]
•数据库编程
•快速原型
•数值计算和科学计算
•游戏、图像、人工智能、机器人等

•不适合:
驱动程序以及对效率要求极高的应用

                   4
原则
•There is only one way to do it.
要做好一件事,一种方法就够
•Everything is object. 万物皆对象
•Readability counts. 可读性优先
•Explicit is better than implicit.
明显胜于隐晦
•Simple is better than complex. 简单胜于
复杂

                                  5
特点
简单 :简单主义,专注于问题本身而非语言

功能强大 :丰富的库,标准库内置 200+ 个模块

可移植性 :解释型语言, Python 解释器把源代码转换成称
为字节码的中间形式,然后再把它翻译成计算机使用的机器语言
并运行

面向对象 : Python 即支持面向过程的编程也支持面向对象
的编程。与其他主要的语言如 C++ 和 Java 相比, Python 以一
种非常强大又简单的方式实现面向对象 编程。

可扩展性 :可以调用或者嵌入其他语言,如果你需要你的一
段关键代码运行得更快或者希望某些算法不公开,你可以把你的
部分程序用 C 或 C++ 编写,然后在你的 Python 程序中使用它
们【胶水,类似 php 】                            6
直观感受


简单
直接
有效


        7
Eg1: 读文本文件




             8
Eg2: 排序
二维数组,要求:按照某一列对文件进行排
序,可指定列号




                      9
实现 & 版本
•CPython ( Classic Python ,也就是原始的经典
Python )
•Jython (原名 JPython ; Java 语言实现的 Python ,已
正式发布)
•PyPy (使用 Python 语言写的 Python )
•IronPython (面向 .NET 和 ECMA CLI 的 Python 实现)


•版本
•最新版本 3.2.2
•图书涉及 :2.7&3.0
                                          10
•当前系统开发环境 :2.4
开发环境
•IDLE : Python“ 标准” IDE
•eclipse + pydev 插件
•emacs + 插件
•Vim + 插件




                          11
运行
交互模式




源文件




            12
Python 脚本
数据结构
控制流
函数定义
模块使用
脚本基本结构




                 13
数据结构 & 相关语法
•数字
•字符串
•元组
•列表
•字典
•复杂数据结构




                14
数字
Python 中有四种类型的数
 整数:
一般意义上的数,包含八进制 (0 开头 ) ,十六进制 (0x 开头 )             eg.
2
长整数:
无限大小的数,结尾添加 l 或 L         eg.
20121212000000000000000
 浮点数:
小数或用 e/E 表示的幂             eg. 3.23      50.2E2
复数:
复数的虚部以字母 J 或 j 结尾          eg.   2+3i


math 模块 - 普通数学函数
cmath 模块 - 处理复数的模块
random 模块 - 随机数
                                                   15
字符串
字符串序列
用于表示和存储文本, python 中字符串是不可变的
,一旦声明,不能改变
通常由单引号 (' ) ,双引号 (" ) ,三引号 (''' """) 包围
其中三引号可以由多行组

自然字符串
特殊字符串,以大写 R 或 小写 r 开始,不需要如转
义符那样的特别处理的字符串【正则表达式】




                                          16
字符串 - 使用




string- 字符串处理模块
re- 正则表达式模块       17
索引和分片
•字符串,元组,列表,字典等序列
•索引    >>>s[0] 首个
     >>>s[-1] 倒数第一个
分片




                      18
元组
元组
不可变序列
元组是以圆括号“ ()” 包围的数据集合
,不同成员以“ ,” 分隔

声明:
t = ()
t =(1,)
t =(1,2,3)

查看操作函数 : help(tuple)
                       19
元组作用
1. 赋值 / 函数拥有多个返回值
>>>t = 1,2,3 # 等同 t = (1,2,3)
>>>x,y,z = t

2. 传参 [ 强制不改变原始序列 ]
def print_list(l):
   l1 = l[:] 或者 t = tuple(l)

3. 格式化字符串

                                20
列表
•一组有序项目的集合。
•可变的数据类型【可进行增删改查】
•列表是以方括号“ []” 包围的数据集合
,不同成员以“ ,” 分隔
•列表中可以包含任何数据类型,也可包
含另一个列表
•声明 :
 l = []
 l = [1,2,3,”abc”]

                        21
•查看操作函数 :help(list)
列表 - 基本操作
list.append() 追加成员,成员数据
list.pop() 删除成员 , 删除第 i 个成员
list.count(x) 计算列表中参数 x 出现的次数
list.remove() 删除列表中的成员,直接删除成员 i
list.extend(L) 向列表中追加另一个列表 L
list.reverse() 将列表中成员的顺序颠倒
list.index(x) 获得参数 x 在列表中的位置
list.sort() 将列表中的成员排序
list.insert() 向列表中插入数据

删     del l[2:4]
改      l[2] = [1,2,3,4]
    l[2:2] = [1,2,3,4]
把列表当作堆栈使用
把列表当作队列使用                         22
列表 - 高级特性
•列表解析
>>>l = [x ** 2 for x in range(10)]
>>>l = [x+y for x in l1 for y in l2]
>>>l=[(x,y) for x in range(5) if x%2==0
           for y in range(5) if x%2 == 1]
>>>l = [fun(x) for x in “abcdef” ]




                                            23
字典
键值对的集合 (map)
字典是以大括号“ {}” 包围的数据集合
与列表区别:字典是无序的,在字典中
通过键来访问成员。
字典是可变的,可以包含任何其他类型

声明 :
d = {}
d = {1:”a”,2:”b”}

查看操作函数 :help(dict)
                         24
字典 - 基本操作
dic.clear() 清空字典
dic.keys() 获得键的列表
dic.values() 获得值的列表
dic.copy() 复制字典
dic.pop(k) 删除键 k
dic.get(k) 获得键 k 的值
dic.update() 更新成员,若成员不存在
,相当于加入
dic.items() 获得由键和值组成的列表

                           25
函数式编程
匿名函数 lambda:
>>>f = lambda x,y,z:x+y+z
>>>f(1,2,3)
6
map 序列映射
>>>map(lambda n:n**2,range(5))
filter
>>>l = list(filter(lambda x:x%2==0,range(5)))
reduce
>>>reduce((lambda x,y:x+y),[1,2,3,4])
10
                                                26
复杂数据结构
•1. 嵌套
•2. 对象




                  27
控制流 -if




Python 没有 switch 和 case
1. 用多个 if
2. 字典




三元运算 x=bool?a:b           python 中   x= a if bool else   28
b
控制流 -while




             29
控制流 -for




           30
函数声明




       31
脚本结构
#!/usr/bin/python
# -*- coding: utf-8 -*-
#dataformat.py
import os,getopt,sys

def functions(param):
    xxxxxxxxxxxxx

def main():
     opts,args = getopt.getopt(sys.argv[1:],"F:P:t:a:i:o:h")
     dosomething



if __name__ =="__main__":
   main()                                                      32
脚本常用模块
•string&re 字符串处理
•math&cmath&random 数学相关
•file 【内置】 文件读写
•sys     退出,参数传递
•os 调用 shell ,操作系统相关信息获
取
•getopt 脚本选项
•time&datetime 时间日期
•其他… .
                          33
图书
链接

官网 http://www.python.org
文档在线查询 http://pydoc.org/
社区 http://wiki.woodpecker.org.cn/moin/
Python 脚本入门基础

More Related Content

What's hot

Lua/PHP哈希碰撞攻击浅析
Lua/PHP哈希碰撞攻击浅析Lua/PHP哈希碰撞攻击浅析
Lua/PHP哈希碰撞攻击浅析
Xiaozhe Wang
 
《Java程序设计》期末考试试题 (六)
《Java程序设计》期末考试试题 (六)《Java程序设计》期末考试试题 (六)
《Java程序设计》期末考试试题 (六)
jane2006
 

What's hot (20)

型態與運算子
型態與運算子型態與運算子
型態與運算子
 
Introduction to Basic Haskell Components (In Chinese)
Introduction to Basic Haskell Components (In Chinese)Introduction to Basic Haskell Components (In Chinese)
Introduction to Basic Haskell Components (In Chinese)
 
TQC+ 程式語言 Python 01:變數與輸出入
TQC+ 程式語言 Python  01:變數與輸出入TQC+ 程式語言 Python  01:變數與輸出入
TQC+ 程式語言 Python 01:變數與輸出入
 
Python学习笔记
Python学习笔记Python学习笔记
Python学习笔记
 
Python匯出入csv以及繪製圖表初稿
Python匯出入csv以及繪製圖表初稿Python匯出入csv以及繪製圖表初稿
Python匯出入csv以及繪製圖表初稿
 
Scala+RDD
Scala+RDDScala+RDD
Scala+RDD
 
Intro to C++ Basic
Intro to C++ BasicIntro to C++ Basic
Intro to C++ Basic
 
C語言結構與串列
C語言結構與串列 C語言結構與串列
C語言結構與串列
 
第二章 线性表
第二章 线性表第二章 线性表
第二章 线性表
 
Ch10 教學
Ch10 教學Ch10 教學
Ch10 教學
 
Lua/PHP哈希碰撞攻击浅析
Lua/PHP哈希碰撞攻击浅析Lua/PHP哈希碰撞攻击浅析
Lua/PHP哈希碰撞攻击浅析
 
Ch7 教學
Ch7 教學Ch7 教學
Ch7 教學
 
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
 
3.型態與運算子
3.型態與運算子3.型態與運算子
3.型態與運算子
 
資料結構
資料結構資料結構
資料結構
 
第5章数组
第5章数组第5章数组
第5章数组
 
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
lambda/closure – JavaScript、Python、Scala 到 Java SE 7lambda/closure – JavaScript、Python、Scala 到 Java SE 7
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
 
TQC+ 程式語言 Python 03:迴圈
TQC+ 程式語言 Python 03:迴圈TQC+ 程式語言 Python 03:迴圈
TQC+ 程式語言 Python 03:迴圈
 
Python變數與資料運算
Python變數與資料運算Python變數與資料運算
Python變數與資料運算
 
《Java程序设计》期末考试试题 (六)
《Java程序设计》期末考试试题 (六)《Java程序设计》期末考试试题 (六)
《Java程序设计》期末考试试题 (六)
 

Similar to Python 脚本入门基础

Baidu LSP and DISQL for Log Analysis
Baidu LSP and DISQL for Log AnalysisBaidu LSP and DISQL for Log Analysis
Baidu LSP and DISQL for Log Analysis
Xiaoming Chen
 
数据处理算法设计要点
数据处理算法设计要点数据处理算法设计要点
数据处理算法设计要点
thinkinlamp
 
Python 入门
Python 入门Python 入门
Python 入门
kuco945
 
Lotus domino开发教程
Lotus domino开发教程Lotus domino开发教程
Lotus domino开发教程
dyzm_2000
 
Free Marker中文文档
Free Marker中文文档Free Marker中文文档
Free Marker中文文档
yiditushe
 

Similar to Python 脚本入门基础 (20)

Python 2-基本語法
Python 2-基本語法Python 2-基本語法
Python 2-基本語法
 
函数调用关系工具-2011-孙光福
函数调用关系工具-2011-孙光福函数调用关系工具-2011-孙光福
函数调用关系工具-2011-孙光福
 
getPDF.aspx
getPDF.aspxgetPDF.aspx
getPDF.aspx
 
getPDF.aspx
getPDF.aspxgetPDF.aspx
getPDF.aspx
 
Baidu LSP and DISQL for Log Analysis
Baidu LSP and DISQL for Log AnalysisBaidu LSP and DISQL for Log Analysis
Baidu LSP and DISQL for Log Analysis
 
C++模板与泛型编程
C++模板与泛型编程C++模板与泛型编程
C++模板与泛型编程
 
chapter 1 basic knowledge about python.ppt
chapter 1 basic knowledge about python.pptchapter 1 basic knowledge about python.ppt
chapter 1 basic knowledge about python.ppt
 
第四章 串操作应用举例
第四章 串操作应用举例第四章 串操作应用举例
第四章 串操作应用举例
 
Interactive Data Language
Interactive Data LanguageInteractive Data Language
Interactive Data Language
 
数据处理算法设计要点
数据处理算法设计要点数据处理算法设计要点
数据处理算法设计要点
 
Python 入门
Python 入门Python 入门
Python 入门
 
Python 温故
Python 温故Python 温故
Python 温故
 
Lotus domino开发教程
Lotus domino开发教程Lotus domino开发教程
Lotus domino开发教程
 
Free Marker中文文档
Free Marker中文文档Free Marker中文文档
Free Marker中文文档
 
12, string
12, string12, string
12, string
 
functional-scala
functional-scalafunctional-scala
functional-scala
 
数据结构(用面向对象方法与C++语言描述第二版)殷人昆编著清华大学出版社
数据结构(用面向对象方法与C++语言描述第二版)殷人昆编著清华大学出版社数据结构(用面向对象方法与C++语言描述第二版)殷人昆编著清华大学出版社
数据结构(用面向对象方法与C++语言描述第二版)殷人昆编著清华大学出版社
 
Python速成指南
Python速成指南Python速成指南
Python速成指南
 
02.python基础
02.python基础02.python基础
02.python基础
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 

Python 脚本入门基础