《python入门教程.pptx》由会员分享,可在线阅读,更多相关《python入门教程.pptx(39页珍藏版)》请在三一办公上搜索。
1、起源,“1989年12月,我在寻找一门“课余”编程项目来打发圣诞节前后的时间。我的办公室会关门,但我有一台家用电脑,而且没有太多其它东西。我决定为当时我正构思的一个新的脚本语言写一个解释器,它是 ABC 语言的后代,对 UNIX/C 程序员会有吸引力。作为一个略微有些无关想法的人,和一个蒙提派森(Monty Python)的飞行马戏团的狂热爱好者,我选择了 Python 作为项目的标题。”,作者:Guido Van Rossum(GvR),Computer Programming for Everybody,1999年,Guido向DARPA阐述Python语言的特性:简单、直观、强大开源,以
2、便任何人都可以为它做贡献代码像纯英语那样容易理解适用于短期开发的日常任务这些想法中的一些已经成为现实。Python 已经成为一门流行的编程语言,尤其是在互联网环境下。,特性,交互式命令行(Interactive console)不只是脚本强大易用的标准库胶水语言(glue language)收放自如(scalability)不要括号,交互式命令行(Interactive console),Python可以单步直译运行。运行Python解释器或IDLE进入交互式命令行的环境,你可以在提示符号旁输入代码,按Enter键 print(Hello,Python!)Hello,Python!,不只是脚本
3、,原因是“脚本语言”泛指仅作简单编程任务的语言,如Lua、JavaScript等,它们只能处理简单的任务而Python是面向对象编程(OOP)的,支持异常处理和类型检查Python的支持者较喜欢称它为一种高阶动态编程语言,强大易用的标准库,核心库不超过10MbHtml、Xml解析:BeautifulSoup,Expat字符串处理:字典、数组切片、正则表达式 re单元测试:PyUnit代码版本控制:PySVN网络访问:urllib2图形模块:Tkinter、PyTCL、WxPython串行化、多线程等扩展标准库十分容易,胶水语言(glue language),Python经常用作将不同语言编写的
4、程序“粘”在一起的胶水语言。Google内部的很多项目使用C+编写性能要求极高的部分,然后用Python调用相应的模块。C/C+:Boost.Python使得 Python 和 C+的类库能互相调用(.pyc)Java:Jython 是用Java实现的Python,可同时使用二者的类库.NET:IronPython是Python在.NET平台上的版本。,收放自如(scalability),Python内建的数据结构(variable,list 和 dict)以及对多线程分布式操作的支持,使得程序可以用相同的代码处理不同规模的数据,以及并发的用户需求。,不要括号,Python使用缩进而不是括号来
5、进行代码段标识,减少了视觉上的混乱,并且使程序变短,从而提高了程序的可读性。,用途,脚本程序大型程序的原型开发科学计算网络应用计算机图形编程,应用举例,Google-谷歌在很多项目中用python作为网络应用的后端,如Google Groups、Gmail、Google Maps等,Google App Engine支持python作为开发语言NASA-美国宇航局,从1994年起把python作为主要开发语言豆瓣网-图书、唱片、电影等文化产品的资料数据库网站Torchlight-Python编写的大型3D游戏,原Blizzard公司人员制作发行,开源。Blender-以C与Python开发的开
6、源3D绘图软件在科学研究中也得到广泛的应用。,这么强大!,赶紧开始吧!,开发环境,PyCharm(支持PEP8 语法规范、跨平台、远程调试、上传)IpythonVIM(主要在linux下使用)其它编辑器UE,notepad+,editplus,工欲善其,事必先利其器,字符编码,Python默认代码文件为ASCII编码不指定编码时,文件中包含非ASCII字符会报错第一行加#coding=utf-8,告诉编译器使用utf-8编码#coding=utf-8print u你好!,程序运行方式,使用IDLE或python命令行工具进行交互式编程调用解释器执行py脚本文件写个bat双击,行和缩进,Pyth
7、on使用缩进来表示代码块,而不是使用大括号 来表示代码块,缩进在python里有重要的语法意义。建议使用四个空格来缩进代码,不建议使用制表符。,注释,单行注释使用#号:#第一个注释print Hello,Python!;#第二个注释多行注释三个双引号或三个单引号:这是多行注释,使用双引号。这是多行注释,使用双引号。这是多行注释,使用双引号。,Hello world,表达式3+(7*4)+i#but no i+3*5Hello+Worldnot a and not ca b or c d,变量赋值a=4 3a=“Hello World”x,y=4+2,”python”,pass 语句 不做任何事
8、时使用if a b:passelse:c=a,条件,ifelifelse语句:没有switchif a=+:b=+elif a=-:b=-else:b=None,布尔表达式 and,or,notif b=a and b 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 timefor c in Hello World:print c,#Loop over a range of nu
9、mbersfor i in range(0,100,2):print ifor i in range(len(list1):print list1i,数字,Python 支持四种不同的数值类型:整型(int)-例:1024长整型(long)-例:1024L浮点型(float)-例:1024.56,32.3+e18复数(complex)-例:2.5+3.14j,数学函数,abs(x)绝对值max(x1,x2,.)求最大值min(x1,x2,.)求最小值round(x,n)求四舍五入值sqrt(x)求平方根sin(x)求正弦cos(x)求余弦,字符串string,用单引号或双引号或三个引号创建字符
10、串s1=“hello”s2=hello三引号创建的字符串可以跨越多行。引号前小写的u表示这里创建的是一个 Unicode 字符串。s=uHello World!,切片,序列开始位置:结束位置 序列开始位置:结束位置:步长右开区间s=abcdef“s2:4#cds2:#cdefs:2#abs:#abcdefs: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)-strin
11、g剔除两端空白,使用help函数查询类型帮助,列表list,赋值a=2,3,4#A list of integerb=2,7,3.5,“Hello”c=d=2,a,b#嵌套列表e=x*x for x in range(10)访问元素x=a1#Get 2nd element(0 is first)a1=5z=d102#Nested lists,列表运算符,切片操作a=2,3,4,5,6a:2#2,3a2:#4,5,6a2:4#4,5a:#2,3,4,5,6删除元素deldel a1,列表长度lenlen(a)列表相加a+b复制a*2包含判断if 3 in a:pass,列表方法,元组tuple,
12、元组的元素不能修改元组使用小括号,列表使用方括号,Python的元组与列表类似,不同之处:,tup1=(physics,chemistry,1997,2000)tup2=(1,2,3,4,5)tup3=a,b,c,d;,字典dict,赋值a=#An empty dictionaryb=x:3,y:4#有点类似json格式c=uid:105,login:beazley,name:David Beazley 访问元素u=cuid#Get an elementcshell=/bin/sh#Set an element,字典运算符,删除元素deldel a1长度lenlen(a)包含判断if 3 in
13、 a:pass,字典方法,函数,def语句def func1(a,b):func specq=a/br=a-q*breturn r#调用方式a=func1(42,5)#a=2返回多个值def func2(a,b):q=a/br=a-q*breturn q,rx,y=func2(42,5)#x=8,y=2,类class,Class定义class Account(object):#只在_init_中定义成员变量def _init_(self,initial):self.balance=initial#析构def _del_(self):pass def deposit(self,amount):s
14、elf.balance+=amount def withdraw(self,amount):self.balance-=amount def getBalance(self):return self.balance,使用class创建对象a=Account(1000.0)a.deposit(550.23)a.deposit(100)a.withdraw(50)print a.getBalance(),模块,程序可分成多个模块:一个py文件就是一个模块;#numbers.pydef divide(a,b):q=a/br=a-q*breturn q,rdef gcd(x,y):g=ywhile x
15、 0:g=xx=y%xy=greturn g,用import引入其它模块import numbersx,y=numbers.divide(42,5)n=numbers.gcd(7291823,5683)Import模块中的类型from numbers import divide x,y=divide(42,5),全局变量和局部变量,函数内定义的变量是局部变量函数外定义的变量是全局变量在函数内给一个全局变量赋值时,需要先用global关键字声明这个变量,否则编译器会尝试新建一个同名的局部变量,指针?引用?,Python里面没有指针指向对象的都是引用(数值、字符串除外)拷贝对象代码importcopyls1=1,”test”,(3.4,7),“key”:1,“comment”:”your comment”ls2=copy.deepcopy(ls1),Python哲学,优美胜过丑陋 明确胜过含蓄 简单胜过复杂 复杂胜过难懂 扁平胜过嵌套 稀疏胜过密集,
链接地址:https://www.31ppt.com/p-4567243.html