




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、起源“1989年12月,我在寻找一门“课余”编程项目来打发圣诞节前后的时间。我的办公室会关门,但我有一台家用电脑,而且没有太多其它东西。我决定为当时我正构思的一个新的脚本语言写一个解释器,它是 ABC 语言的后代,对 UNIX / C 程序员会有吸引力。作为一个略微有些无关想法的人,和一个蒙提派森(Monty Python)的飞行马戏团的狂热爱好者,我选择了 Python 作为项目的标题。”作者作者 :Guido Van Rossum (GvR)Guido Van Rossum (GvR)Computer Programming for EverybodyComputer Programmin
2、g for Everybody1999年,Guido向DARPA 阐述Python语言的特性:简单、直观、强大开源,以便任何人都可以为它做贡献代码像纯英语那样容易理解适用于短期开发的日常任务这些想法中的一些已经成为现实。Python 已经成为一门流行的编程语言,尤其是在互联网环境下。特性特性交互式命令行(Interactive console)不只是脚本强大易用的标准库胶水语言(glue language)收放自如(scalability)不要括号交互式命令行(Interactive console)Python可以单步直译运行。运行Python解释器或IDLE进入交互式命令行的环境,你可以在
3、提示符号旁输入代码,按Enter键 printprint(Hello, Python!) Hello, Python!不只是脚本原因是“脚本语言”泛指仅作简单编程任务的语言,如Lua、JavaScript等,它们只能处理简单的任务而Python是面向对象编程(OOP)的,支持异常处理和类型检查Python的支持者较喜欢称它为一种高阶动态编程语言强大易用的标准库核心库不超过10MbHtml、Xml解析:BeautifulSoup, Expat字符串处理:字典、数组切片、正则表达式 re单元测试: PyUnit代码版本控制: PySVN网络访问: urllib2图形模块: Tkinter、PyTC
4、L、WxPython串行化、多线程等扩展标准库十分容易扩展标准库十分容易胶水语言(glue language)Python经常用作将不同语言编写的程序“粘”在一起的胶水语言。Google内部的很多项目使用C+编写性能要求极高的部分,然后用Python调用相应的模块。C/C+: C/C+: Boost.Python使得 Python 和 C+ 的类库能互相调用(.pyc)Java: Java: Jython 是用Java实现的Python,可同时使用二者的类库.NET:.NET:IronPython是Python在.NET平台上的版本。收放自如(scalability)Python内建的数据结构
5、(variable, list 和 dict)以及对多线程分布式操作的支持,使得程序可以用相同的代码处理不同规模的数据, 以及并发的用户需求。不要括号Python使用缩进而不是括号来进行代码段标识,减少了视觉上的混乱,并且使程序变短,从而提高了程序的可读性。用途脚本程序大型程序的原型开发科学计算网络应用计算机图形编程应用举例应用举例Google - 谷歌在很多项目中用python作为网络应用的后端,如Google Groups、Gmail、Google Maps等,Google App Engine支持python作为开发语言NASA - 美国宇航局,从1994年起把python作为主要开发语
6、言豆瓣网 - 图书、唱片、电影等文化产品的资料数据库网站Torchlight -Python编写的大型3D游戏,原Blizzard公司人员制作发行,开源。Blender - 以C与Python开发的开源3D绘图软件在科学研究中也得到广泛的应用。这么强大!赶紧开始吧!开发环境PyCharm(支持PEP8 语法规范、跨平台、远程调试、上传)IpythonVIM (主要在linux下使用)其它编辑器UE,notepad+,editplus工欲善其,事必先利其器字符编码Python默认代码文件为ASCII编码不指定编码时,文件中包含非ASCII字符会报错第一行加 #coding=utf-8,告诉编译器
7、使用utf-8编码#coding=utf-8print u你好!程序运行方式使用IDLE或python命令行工具进行交互式编程调用解释器执行py脚本文件写个bat双击行和缩进Python使用缩进来表示代码块,而不是使用大括号 来表示代码块,缩进在python里有重要的语法意义。建议使用四个空格来缩进代码,不建议使用制表符。注释 单行注释使用 # 号:# 第一个注释print Hello, Python!; # 第二个注释多行注释三个双引号或三个单引号: 这是多行注释,使用双引号。 这是多行注释,使用双引号。 这是多行注释,使用双引号。 Hello world 表达式3 + (7 * 4)+i
8、#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 语句 不做任何事时使用if a = a and b = c:print bool is Trueif not (b c): print not expr, value is True循环While语句while a int字符串查找S.rfind(sub ,start ,end) - int字符串反向查找S.replace(old, new, count)- string字符串替换S.st
9、rip(chars) - string剔除两端空白使用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列表运算符p切片操作a = 2, 3, 4, 5, 6a:2 #2, 3a2: #4, 5, 6a2:4 #4, 5a: # 2, 3, 4, 5, 6p删除元素
10、deldel a1p列表长度lenlen(a)p列表相加a + bp复制a * 2p包含判断if 3 in a : pass列表方法1list.append(obj)在列表末尾添加新的对象2list.count(obj)统计某个元素在列表中出现的次数3list.extend(seq)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)4list.index(obj)从列表中找出某个值第一个匹配项的索引位置5list.insert(index, obj)将对象插入列表6list.pop(obj=list-1)移除列表中的一个元素(默认最后一个元素),并且返回该元素的值7list.r
11、emove(obj)移除列表中某个值的第一个匹配项8list.reverse()反向列表中元素9list.sort(func)对原列表进行排序元组tuple元组的元素不能修改元组使用小括号,列表使用方括号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 : Da
12、vid Beazley 访问元素u = cuid # Get an elementcshell = /bin/sh # Set an element字典运算符删除元素deldel a1长度lenlen(a)包含判断if 3 in a : pass字典方法1dict.clear()删除字典内所有元素2dict.copy()返回一个字典的浅复制3dict.fromkeys(seq, val)创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值4dict.get(key, default=None)返回指定键的值,如果值不在字典中返回default值6dict.item
13、s()以列表返回可遍历的(键, 值) 元组数组7dict.keys()以列表返回一个字典所有的键10dict.values()以列表返回字典中的所有值11pop(key,default)删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。12popitem()随机返回并删除字典中的一对键和值。函数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*bret
14、urn q,rx,y = func2(42,5) # x = 8, y = 2类classClass定义class Account(object):#只在只在_init_中定义成员变量中定义成员变量def _init_(self, initial):self.balance = initial #析构析构def _del_(self):pass def deposit(self, amount): self.balance += amount def withdraw(self, amount): self.balance -= amount def getBalance(self): ret
15、urn 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 0:g = xx = y % xy = greturn g用import引入其它模块import numbersx,y = numbers.divide(42,5)
16、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.deep
17、copy(ls1)Python哲学优美胜过丑陋 明确胜过含蓄 简单胜过复杂 复杂胜过难懂 扁平胜过嵌套 稀疏胜过密集树立质量法制观念、提高全员质量意识。21.10.1221.10.12Tuesday, October 12, 2021人生得意须尽欢,莫使金樽空对月。2:07:432:07:432:0710/12/2021 2:07:43 AM安全象只弓,不拉它就松,要想保安全,常把弓弦绷。21.10.122:07:432:07Oct-2112-Oct-21加强交通建设管理,确保工程建设质量。2:07:432:07:432:07Tuesday, October 12, 2021安全在于心细,事故出在麻痹。21.10.1221.10.122:07:432:07:43October 12, 2021踏实肯干,努力奋斗。2021年10月12日上午2时7分21.10.1221.10.12追求至善凭技术开拓市场,凭管理增创效益,凭服务树立形象。2021年10月12日星期二上午2时7分43秒2:07:4321.10.12严格把控质量关,让生产更加有保障。2021年10月上午2时7分21.10.122:07October 12, 2021作业标准记得牢,驾轻就熟除烦恼
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 励志游戏活动方案
- 创意教研活动方案
- 农业公司基地游策划方案
- 化妆品国庆节活动方案
- 军校口才活动方案
- 劳动教育五一活动方案
- 冬至美术活动方案
- 医学专业护士节活动方案
- 冬至公司组织活动方案
- 分子美食活动方案
- 2025年中国邮政集团有限公司辽宁省分公司人员招聘笔试备考试题及答案详解1套
- 美好生活大调查:中国居民消费特点及趋势报告(2025年度)
- 失业保障国际比较-洞察及研究
- 党群工作笔试题目及答案
- 广东省广州市天河区2023-2024学年八年级下学期期末历史试卷(含答案)
- 2025-2030年中国有机肥料行业市场投资分析及未来发展趋势预测研究报告
- 山西焦煤集团招聘笔试题库2025
- 2025汾西矿业井下操作技能人员招聘300人(山西)笔试参考题库附带答案详解析
- 健康吃肉课件
- 《国家粮食和物资储备局垂直管理系统重大生产安全事故隐患判定标准(试行)》解读与培训
- 2025至2030年中国速冻豆角行业投资前景及策略咨询报告
评论
0/150
提交评论