python入门教程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
这些想法中的一些已经成为现实。Python 已经成为一门流 行的
编程语言,尤其是在互联网环境下。
特性
交互式命令行(Interactive console) 不只是脚本 强大易用的标准库 胶水语言(glue language) 收放自如(scalability) 不要括号
交互式命令行(Interactive console)
函数
def语句
def func1(a,b): ‘’’func spec’’’ q = a/b r = a - q*b return r
# 调用方式 a = func1(42,5)
#a=2
返回多个值
def func2(a,b): q = a/b r = a - q*b return q,r
NASA - 美国宇航局,从1994年起把python作为主要 开发语言
豆瓣网 - 图书、唱片、电影等文化产品的资料数据 库网站
Torchlight -源。
Blender - 以C与Python开发的开源3D绘图软件 在科学研究中也得到广泛的应用。
(Monty Python)的飞行马戏团的狂热
爱好者,我选择了 Python 作为项目的 标题。”
作者 : Guido Van Rossum (GvR)
Computer Programming for Everybody
1999年,Guido向DARPA 阐述Python语言的特性:
简单、直观、强大 开源,以便任何人都可以为它做贡献 代码像纯英语那样容易理解 适用于短期开发的日常任务
…使用help函数查询类型帮助
列表list
赋值
a = [2, 3, 4]
# A list of integer
b = [2, 7, 3.5, “Hello”] c = [] d = [2, [a, b]]
# 嵌套列表
e = [x*x for x in range(10)]
访问元素
x = a[1]
4 dict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值
6 dict.items() 以列表返回可遍历的(键, 值) 元组数组
7 dict.keys() 以列表返回一个字典所有的键
10 dict.values() 以列表返回字典中的所有值
11 pop(key[,default]) 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
# Get 2nd element (0 is first)
a[1] = 5 z = d[1][0][2] # Nested lists
列表运算符
切片操作
a = [2, 3, 4, 5, 6] a[:2] #[2, 3] a[2:] #[4, 5, 6] a[2:4] #[4, 5] a[:] # [2, 3, 4, 5, 6]
第一行加 #coding=utf-8,告诉编译器使用utf-8编码
#coding=utf-8 print u"你好!"
程序运行方式
使用IDLE或python命令行工具进行交互式编程
调用解释器执行py脚本文件
写个bat 双击
行和缩进
Python使用缩进来表示代码块, 而不是使用大括号 {} 来表示代码块,
串。 s = u'Hello World !'
切片
序列[开始位置 : 结束位置 ] 序列[开始位置 : 结束位置 : 步长] 右开区间
s = "abcdef“ s[2:4] #cd s[2:] #cdef s[:2] #ab s[:] #abcdef s[::2] #ace
字符串函数
s2 in s 字符串包含判断 S.find(sub [,start [,end]]) -> int 字符串查找 S.rfind(sub [,start [,end]]) -> int 字符串反向查找 S.replace(old, new[, count])-> string 字符串替换 S.strip([chars]) -> string 剔除两端空白
字典dict
赋值
a={}
# An empty dictionary
b = { ’x’: 3, ’y’: 4 } #有点类似json格式
c = { ’uid’: 105,
’login’: ’beazley’,
’name’ : ’David Beazley’
}
访问元素
u = c[’uid’] c[’shell’] = "/bin/sh"
求最大值
min(x1, x2,...)求最小值
round(x [,n]) 求四舍五入值
sqrt(x) 求平方根
sin(x) 求正弦
cos(x) 求余弦
字符串string
用单引号或双引号或三个引号创建字符串 s1 = “hello” s2 = ‘hello’ 三引号创建的字符串可以跨越多行。 引号前小写的"u"表示这里创建的是一个 Unicode 字符
数字
Python 支持四种不同的数值类型: 整型(int) - 例:1024 长整型(long) - 例:1024L 浮点型(float) -例:1024.56, 32.3+e18 复数(complex) - 例:2.5 + 3.14j
数学函数
abs(x) 绝对值
max(x1, x2,...)
pass 语句 – 不做任何
事时使用
if a < b: pass
else: c=a
条件
if…elif…else语句:
没有switch
if a == ‘+’: b = ‘+’
elif a == ‘-’: b = ‘-’
else: b = None
布尔表达式– and, or, not
if b >= a and b <= c: print ‘bool is True’
胶水语言(glue language)
Python经常用作将不同语言编写的程序“粘”在一起的胶水 语言。
Google内部的很多项目使用C++编写性能要求极高的部分, 然后用Python调用相应的模块。 C/C++:
Boost.Python使得 Python 和 C++ 的类库能互相调用(.pyc) Java:
8 list.reverse() 反向列表中元素
9 list.sort([func])
元组tuple
Python的元组与列表类似,不同之处: 元组的元素不能修改 元组使用小括号,列表使用方括号
tup1 = ('physics', 'chemistry', 1997, 2000) tup2 = (1, 2, 3, 4, 5 ) tup3 = "a", "b", "c", "d";
Hello world
表达式
3 + (7 * 4) ++i #but no i++ 3 ** 5 ‘Hello’ + ‘World’ not a and not c a > b or c > d
变量赋值
a = 4 << 3 a = “Hello World” x,y = 4+2,”python”
if not (b < a or c > c): print ‘not expr, value is True’
循环
While语句
while a < b: a=a+1
For语句(遍历序列的元素)
for item in [3, 4, 10, 25]: print item # Print characters one at a time for c in "Hello World": print c # Loop over a range of numbers for i in range(0,100,2): print i for i in range(len(list1)): print list1[i]
4 list.index(obj) 从列表中找出某个值第一个匹配项的索引位置
5 list.insert(index, obj) 将对象插入列表
6 list.pop(obj=list[-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7 list.remove(obj) 移除列表中某个值的第一个匹配项
不要括号
Python使用缩进而不是括号来进行代码段标识,减少了视 觉上的混乱,并且使程序变短,从而提高了程序的可读 性。
用途
脚本程序 大型程序的原型开发 科学计算 网络应用 计算机图形编程
应用举例
Google - 谷歌在很多项目中用python作为网络应用的 后端,如Google Groups、Gmail、Google Maps等, Google App Engine支持python作为开发语言
Python可以单步直译运行。运行Python解释器或IDLE进 入交互式命令行的环境,你可以在提示符号>>>旁输入 代码,按Enter键
>>> print("Hello, Python!") Hello, Python!
不只是脚本
原因是“脚本语言”泛指仅作简单编程任务的语言, 如Lua、JavaScript等,它们只能处理简单的任务
删除元素del
del a[1]
列表长度len
len(a)
列表相加
a+b
复制
a*2
包含判断
if 3 in a : pass
列表方法
1 list.append(obj) 在列表末尾添加新的对象
2 list.count(obj) 统计某个元素在列表中出现的次数
3 list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列 表)
Jython 是用Java实现的Python,可同时使用二者的类库 .NET:
IronPython是Python在.NET平台上的版本。
收放自如(scalability)
Python内建的数据结构(variable, list 和 dict)以及对多 线程分布式操作的支持,使得程序可以用相同的代码 处理不同规模的数据, 以及并发的用户需求。
起源
“1989年12月,我在寻找一门“课余”
编程项目来打发圣诞节前后的时间。我
的办公室会关门,但我有一台家用电脑,
而且没有太多其它东西。我决定为当时
我正构思的一个新的脚本语言写一个解
释器,它是 ABC 语言的后代,对 UNIX /
C 程序员会有吸引力。作为一个略微有
些无关想法的人,和一个蒙提·派森
而Python是面向对象编程(OOP)的,支持异常处理和类 型检查
Python的支持者较喜欢称它为一种高阶动态编程语言
强大易用的标准库
核心库不超过10Mb Html、Xml解析:BeautifulSoup, Expat 字符串处理:字典、数组切片、正则表达式 re 单元测试: PyUnit 代码版本控制: PySVN 网络访问: urllib2 图形模块: Tkinter、PyTCL、WxPython 串行化、多线程等 扩展标准库十分容易
缩进在python里有重要的语法意义。
建议使用四个空格来缩进代码, 不建议使用制表符。
注释
单行注释使用 # 号:
# 第一个注释 print "Hello, Python!"; # 第二个注释
多行注释三个双引号或三个单引号:
""" 这是多行注释,使用双引号。 这是多行注释,使用双引 号。 这是多行注释,使用双引号。 """
这么强大!!! 赶紧开始吧!
开发环境
PyCharm(支持PEP8 语法规范、跨平台、远程调试、 上传…)
Ipython VIM (主要在linux下使用) 其它编辑器
UE,notepad++,editplus…
工欲善其,事必先利其器
字符编码
Python默认代码文件为ASCII编码
不指定编码时,文件中包含非ASCII字符会报错
# Get an element # Set an element
字典运算符
删除元素del
del a[1]
长度len
len(a)
包含判断
if 3 in a : pass
字典方法
1 dict.clear() 删除字典内所有元素
2 dict.copy() 返回一个字典的浅复制
3 dict.fromkeys(seq[, val]) 创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应 的初始值
相关文档
最新文档