收藏 分销(赏)

python入门教程.ppt

上传人:胜**** 文档编号:800938 上传时间:2024-03-21 格式:PPT 页数:39 大小:441.50KB
下载 相关 举报
python入门教程.ppt_第1页
第1页 / 共39页
python入门教程.ppt_第2页
第2页 / 共39页
python入门教程.ppt_第3页
第3页 / 共39页
python入门教程.ppt_第4页
第4页 / 共39页
python入门教程.ppt_第5页
第5页 / 共39页
点击查看更多>>
资源描述

1、起源起源“19891989年年1212月,我在寻找一门月,我在寻找一门“课余课余”编编程项目来打发圣诞节前后的时间。我程项目来打发圣诞节前后的时间。我的办公室会关门,但我有一台家用电的办公室会关门,但我有一台家用电脑,而且没有太多其它东西。我决定脑,而且没有太多其它东西。我决定为当时我正构思的一个新的脚本语言为当时我正构思的一个新的脚本语言写一个解释器,它是写一个解释器,它是 ABC ABC 语言的后代,语言的后代,对对 UNIX/C UNIX/C 程序员会有吸引力。作程序员会有吸引力。作为一个略微有些无关想法的人,和一为一个略微有些无关想法的人,和一个个蒙提蒙提派森(派森(Monty Pyt

2、honMonty Python)的飞)的飞行马戏团行马戏团的狂热爱好者,我选择了的狂热爱好者,我选择了 Python Python 作为项目的标题。作为项目的标题。”作者作者 :Guido Van Rossum(GvR)Guido Van Rossum(GvR)Computer Programming for EverybodyComputer Programming for Everybody19991999年,年,GuidoGuido向向DARPADARPA阐述阐述PythonPython语言的特性:语言的特性:简单、直观、强大简单、直观、强大开源,以便任何人都可以为它做贡献开源,以便任何

3、人都可以为它做贡献代码像纯英语那样容易理解代码像纯英语那样容易理解适用于短期开发的日常任务适用于短期开发的日常任务这些想法中的一些已经成为现实。这些想法中的一些已经成为现实。Python Python 已经成为一门流行的已经成为一门流行的编程语言,尤其是在互联网环境下。编程语言,尤其是在互联网环境下。特性特性q交互式命令行交互式命令行(Interactive console)(Interactive console)q不只是脚本不只是脚本q强大易用的标准库强大易用的标准库q胶水语言胶水语言(glue language)(glue language)q收放自如收放自如(scalability)(

4、scalability)q不要括号不要括号交互式命令行交互式命令行(Interactive console)(Interactive console)PythonPython可以单步直译运行。运行可以单步直译运行。运行PythonPython解释器或解释器或IDLEIDLE进入交进入交互式命令行的环境,你可以在提示符号互式命令行的环境,你可以在提示符号旁输入代码,按旁输入代码,按EnterEnter键键 print(Hello,Python!)print(Hello,Python!)Hello,Python!Hello,Python!不只是脚本不只是脚本原因是原因是“脚本语言脚本语言”泛指仅作

5、简单编程任务的语言,泛指仅作简单编程任务的语言,如如LuaLua、JavaScriptJavaScript等,它们只能处理简单的任务等,它们只能处理简单的任务而而PythonPython是面向对象编程(是面向对象编程(OOP)OOP)的,支持异常处理和类型检的,支持异常处理和类型检查查PythonPython的支持者较喜欢称它为一种的支持者较喜欢称它为一种高阶动态编程语言高阶动态编程语言强大易用的标准库强大易用的标准库q核心库不超过核心库不超过10Mb10MbqHtmlHtml、XmlXml解析:解析:BeautifulSoup,ExpatBeautifulSoup,Expatq字符串处理:字

6、典、数组切片、正则表达式字符串处理:字典、数组切片、正则表达式 rereq单元测试:单元测试:PyUnitPyUnitq代码版本控制:代码版本控制:PySVNPySVNq网络访问:网络访问:urllib2urllib2q图形模块:图形模块:TkinterTkinter、PyTCLPyTCL、WxPythonWxPythonq串行化、多线程等串行化、多线程等q扩展标准库十分容易扩展标准库十分容易胶水语言胶水语言(glue language)(glue language)PythonPython经常用作将不同语言编写的程序经常用作将不同语言编写的程序“粘粘”在一起的胶水语言。在一起的胶水语言。Go

7、ogleGoogle内部的很多项目使用内部的很多项目使用C+C+编写性能要求极高的部分,编写性能要求极高的部分,然后用然后用PythonPython调用相应的模块。调用相应的模块。C/C+:C/C+:Boost.PythonBoost.Python使得使得 Python Python 和和 C+C+的类库能互相调用(的类库能互相调用(.pyc.pyc)Java:Java:Jython Jython 是用是用JavaJava实现的实现的PythonPython,可同时使用二者的类库,可同时使用二者的类库.NET:.NET:IronPythonIronPython是是PythonPython在在.

8、NET.NET平台上的版本。平台上的版本。收放自如收放自如(scalability)(scalability)PythonPython内建的数据结构(内建的数据结构(variable,list variable,list 和和 dictdict)以及对)以及对多线程分布式操作的支持,使得程序可以用相同的代码处多线程分布式操作的支持,使得程序可以用相同的代码处理不同规模的数据,理不同规模的数据,以及并发的用户需求。以及并发的用户需求。不要括号不要括号PythonPython使用缩进而不是括号来进行代码段标识,减少了视觉上使用缩进而不是括号来进行代码段标识,减少了视觉上的混乱,并且使程序变短,从而

9、提高了程序的可读性。的混乱,并且使程序变短,从而提高了程序的可读性。用途用途q脚本程序脚本程序q大型程序的原型开发大型程序的原型开发q科学计算科学计算q网络应用网络应用q计算机图形编程计算机图形编程应用举例应用举例qGoogle-Google-谷歌在很多项目中用谷歌在很多项目中用pythonpython作为网络应用作为网络应用的后端,如的后端,如Google GroupsGoogle Groups、GmailGmail、Google MapsGoogle Maps等,等,Google App EngineGoogle App Engine支持支持pythonpython作为开发语言作为开发语言

10、qNASA-NASA-美国宇航局,从美国宇航局,从19941994年起把年起把pythonpython作为主要作为主要开发语言开发语言q豆瓣网豆瓣网 -图书、唱片、电影等文化产品的资料数据图书、唱片、电影等文化产品的资料数据库网站库网站qTorchlight-PythonTorchlight-Python编写的大型编写的大型3D3D游戏,原游戏,原BlizzardBlizzard公司人员制作发行,开源。公司人员制作发行,开源。qBlenderBlender -以以C C与与PythonPython开发的开源开发的开源3D3D绘图软件绘图软件q在科学研究中也得到广泛的应用。在科学研究中也得到广泛

11、的应用。这么强大!这么强大!赶紧开始吧!开发环境开发环境qPyCharmPyCharm(支持(支持PEP8 PEP8 语法规范、跨平台、远程调试、上传语法规范、跨平台、远程调试、上传)qIpythonIpythonqVIM (VIM (主要主要在在linuxlinux下下使用使用)q其它编辑器其它编辑器UEUE,notepad+notepad+,editpluseditplus工欲善其,事必先利其器字符编码字符编码qPythonPython默认代码文件为默认代码文件为ASCIIASCII编码编码不指定编码时,文件中包含非不指定编码时,文件中包含非ASCIIASCII字符会报错字符会报错q第一行

12、加第一行加#coding=utf-8#coding=utf-8,告诉编译器使用,告诉编译器使用utf-8utf-8编码编码#coding=utf-8#coding=utf-8print uprint u你好!你好!程序运行方式程序运行方式q使用使用IDLE或或python命令行工具进行交互式编程命令行工具进行交互式编程q调用解释器执行调用解释器执行py脚本文件脚本文件写个写个bat双击双击行和缩进行和缩进PythonPython使用缩进来表示代码块,使用缩进来表示代码块,而不是而不是使用大括号使用大括号 来表示代码块,来表示代码块,缩进在缩进在python里有重要的语法意义。里有重要的语法意义

13、。建议使用四个空格来缩进代码,建议使用四个空格来缩进代码,不建议使用制表符。不建议使用制表符。注释注释 单行注释使用单行注释使用#号:号:#第一个注释第一个注释print Hello,Python!;print Hello,Python!;#第二个注释第二个注释多行注释三个双引号或三个单引号:多行注释三个双引号或三个单引号:这是多行注释,使用双引号。这是多行注释,使用双引号。这是多行注释,使用双这是多行注释,使用双引号。引号。这是多行注释,使用双引号。这是多行注释,使用双引号。Hello world Hello world q表达式表达式3+(7*4)+i#butnoi+3*5Hello+Wo

14、rldnotaandnotcaborcd变量赋值a=43a=“HelloWorld”x,y=4+2,”python”pass 语句 不做任何事时使用ifa=aandb=c:printboolisTrueifnot(bc):printnotexpr,valueisTrue循环循环WhileWhile语句语句whilea intS.find(sub,start,end)-int字符串查找字符串查找qS.rfind(sub,start,end)-intS.rfind(sub,start,end)-int字符串反向查找字符串反向查找qS.replace(old,new,count)-stringS.r

15、eplace(old,new,count)-string字符串替换字符串替换qS.strip(chars)-stringS.strip(chars)-string剔除两端空白剔除两端空白使用help函数查询类型帮助列表列表listlistq赋值赋值a=2,3,4#Alistofintegerb=2,7,3.5,“Hello”c=d=2,a,b#嵌套列表嵌套列表e=x*xforxinrange(10)q访问元素访问元素x=a1#Get2ndelement(0isfirst)a1=5z=d102#Nestedlists列表运算符列表运算符p切片操作切片操作a=2,3,4,5,6a:2#2,3a2:

16、#4,5,6a2:4#4,5a:#2,3,4,5,6p删除元素删除元素deldeldela1p列表长度lenlen(a)p列表相加a+bp复制a*2p包含判断if3ina:pass列表方法列表方法1list.append(obj)在列表末尾添加新的对象2list.count(obj)统计某个元素在列表中出现的次数3list.extend(seq)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)4list.index(obj)从列表中找出某个值第一个匹配项的索引位置5list.insert(index,obj)将对象插入列表6list.pop(obj=list-1)移除列表中的

17、一个元素(默认最后一个元素),并且返回该元素的值7list.remove(obj)移除列表中某个值的第一个匹配项8list.reverse()反向列表中元素9list.sort(func)对原列表进行排序元组元组tupletupleq元组的元素不能修改元组的元素不能修改q元组使用小括号,列表使用方括号元组使用小括号,列表使用方括号Python的元组与列表类似,不同之处:tup1=(physics,chemistry,1997,2000)tup2=(1,2,3,4,5)tup3=a,b,c,d;字典字典d dictictq赋值赋值a=#Anemptydictionaryb=x:3,y:4#有点类

18、似有点类似json格式格式c=uid:105,login:beazley,name:DavidBeazleyq访问元素访问元素u=cuid#Getanelementcshell=/bin/sh#Setanelement字典运算符字典运算符q删除元素删除元素deldeldela1q长度长度lenlenlen(a)q包含判断包含判断if3ina:pass字典方法字典方法1dict.clear()删除字典内所有元素2dict.copy()返回一个字典的浅复制3dict.fromkeys(seq,val)创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值4dict.ge

19、t(key,default=None)返回指定键的值,如果值不在字典中返回default值6dict.items()以列表返回可遍历的(键,值)元组数组7dict.keys()以列表返回一个字典所有的键10dict.values()以列表返回字典中的所有值11pop(key,default)删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。否则,返回default值。12popitem()随机返回并删除字典中的一对键和值。函数函数qd defef语句语句deffunc1(a,b):funcspecq=a/br=a-q*breturnr#调用方式调用方式a=func1(4

20、2,5)#a=2q返回多个值返回多个值deffunc2(a,b):q=a/br=a-q*breturnq,rx,y=func2(42,5)#x=8,y=2类类classclassqC Classlass定义定义classAccount(object):#只在只在_init_中定义成员变量中定义成员变量def_init_(self,initial):self.balance=initial#析构析构def_del_(self):passdefdeposit(self,amount):self.balance+=amountdefwithdraw(self,amount):self.balance

21、-=amountdefgetBalance(self):returnself.balance使用class创建对象a=Account(1000.0)a.deposit(550.23)a.deposit(100)a.withdraw(50)printa.getBalance()模块模块q程序可分成多个模块:程序可分成多个模块:一个一个pypy文件就是一个模块;文件就是一个模块;#numbers.pydefdivide(a,b):q=a/br=a-q*breturnq,rdefgcd(x,y):g=ywhilex0:g=xx=y%xy=greturng用import引入其它模块importnumb

22、ersx,y=numbers.divide(42,5)n=numbers.gcd(7291823,5683)Import模块中的类型fromnumbersimportdividex,y=divide(42,5)全局变量和局部变量全局变量和局部变量q函数内定义的变量是局部变量函数内定义的变量是局部变量q函数外定义的变量是全局变量函数外定义的变量是全局变量q在函数内给一个全局变量赋值时,需要先用在函数内给一个全局变量赋值时,需要先用global关键关键字声明这个变量,否则编译器会尝试新建一个同名的局字声明这个变量,否则编译器会尝试新建一个同名的局部变量部变量指针?引用?指针?引用?qPythonPython里面没有指针里面没有指针q指向对象的都是引用(数值、字符串除外)指向对象的都是引用(数值、字符串除外)q拷贝对象代码拷贝对象代码importcopyls1=1,”test”,(3.4,7),“key”:1,“comment”:”yourcomment”ls2=copy.deepcopy(ls1)PythonPython哲学哲学优美胜过丑陋优美胜过丑陋 明确明确胜过含蓄胜过含蓄 简单简单胜过复杂胜过复杂 复杂复杂胜过难懂胜过难懂 扁平扁平胜过嵌套胜过嵌套 稀疏稀疏胜过密集胜过密集

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服