没有合适的资源?快使用搜索试试~ 我知道了~
首页楚广明Python新员工培训教材:全面指南与开源致敬
楚广明Python新员工培训教材:全面指南与开源致敬
需积分: 9 6 下载量 142 浏览量
更新于2024-07-15
收藏 2.5MB PDF 举报
"《Python新员工教材》是由楚广明在2012年编撰的一本针对新入职人员的Python学习指南。该教材旨在帮助新员工快速掌握Python语言的基础知识和核心概念,作者以亲力亲为的方式呈现,并积极向开源文档的先驱们致敬,体现了对知识分享和传承的尊重。 该教材分为多个章节,首先从Python概述开始,包括如何编写第一个Python程序,阐述学习Python的理由,强调代码块和缩进规则的重要性,以及Python中的不同注释方法和入口方式,以及import和using语句的区别。接着,教材深入讲解了基本数据类型,如整型、浮点型、字符串、布尔值、空值等,并介绍了列表、字典、元组和集合这些常用的数据结构。 运算符、表达式和流程控制是后续章节的重点,涵盖了算术运算、赋值操作、关系比较、条件语句和循环控制等内容。书中还专门介绍了异常处理,确保代码的健壮性。动态表达式部分展示了Python灵活的动态特性,而函数和函数编程则是进一步提升编程效率的关键,包括函数定义、参数传递、返回值以及局部和全局变量的作用。 面向对象编程是教材的核心部分,包括类的定义、属性和方法的管理,以及静态成员和私有成员的概念。教材还介绍了单继承的概念,以及模块和包的使用,让读者理解如何组织和复用代码,构建更大型的项目。 楚广明在编写过程中,积极借鉴了许多开源先驱的文档和资源,尽管部分引用的具体来源可能难以考证,但他的教学态度和对开源精神的支持值得赞赏。这本教材不仅注重技术知识传授,还强调了学习者在IT行业应有的学习态度和对社区的贡献精神,是一份非常实用且具有启发性的Python学习资料。"
资源详情
资源推荐
楚广明新员工培训专用(借用了无数开源先驱的文档与资源,有些出处以无法考证。向开源文档的先驱致敬!)
最后,list 是 Python 中最基础的数据结构,你可以把它当作链表、堆栈或队列来使用,效率还不错。Python
中没有固定长度数组,如果你确实很在意性能,可以改入 array 模块来创建一个 C 风格的数组,它的效率很高,这
里就不详细介绍了。
我们还可以对其进行排序与反转
#-*-coding:utf-8-*-
import sys
def Main():
array=[5,2,3,1,8]
array.sort()
for s in array:
print s
array.reverse()
for s in array:
print s
if __name__=="__main__":
Main()
Python 核心数据类型的一个优秀的特性就是它们支持任意的嵌套。能够以任意的组合对其进行嵌套。这种特
性的一个直接应用就是实现矩阵,或者 Python 中的多维数组。一个嵌套列表的殂表能够完成这个基本的操作。
#-*-coding:utf-8-*-
import sys
def Main():
M=[[1,2,3],
[4,5,6],
[7,8,9]]
print M[0]
print M[1]
print M[2]
if __name__=="__main__":
Main()
处理序列的操作和列表的方法中,Python 还包括了一个更高级的操作,称作列表解析表达式,从而提供了一
种处理像矩阵这样结构的强大工具。列如,假设我们需要从列举的矩阵中提取出第二列。因为矩阵是按照行进行存
储的,所以可以通过简单的索引即可获得行,使用列表解析可以同样简单地获得列。
#-*-coding:utf-8-*-
import sys
def Main():
M=[[1,2,3],
[4,5,6],
[7,8,9]]
col2=[row[1] for row in M]
print col2
col3=[row[1]+1 for row in M]
print col3
colfilter=[row[1] for row in M if row[1]%2==0]
print colfilter
if __name__=="__main__":
Main()
楚广明新员工培训专用(借用了无数开源先驱的文档与资源,有些出处以无法考证。向开源文档的先驱致敬!)
四、 基本数据类型-字典(dict{})
用过 java 中的字典的人对 Hashtable 应该不会陌生,Python 里的哈希表就是字典(dict)了。与 set 类似,
字典是一种无序存储结构,它包括关键字(key)和关键字对应的值(value)。
java 程序员需要了解的就是,在 Python 中 dict 是一种内置的数据类型,定义方式为:
dictionary={key:value}#当有多个键值时,用逗号进行分割。
字典里的关键字为不可变类型,如字符串、整数、只包含不可变对象的元组,列表等不能作为关键字。字典中
一个键只能与一个值关联,对于同一个键,后添加的值会覆盖之前的值。
学过数据结构的人对字典的散列查找效率应该都有认识,所以我建议在可能的情况下尽量多用字典,其它的就
不多写了。
#-*-coding:utf-8-*-
import sys
if __name__=="__main__":
dict={"a":"apple","b":"banana","g":"grape","o":"orange"}
print dict
print dict["a"]
dict2={1:"apple",2:"banana",3:"grape",4:"orange"}
print dict2
print dict2[1]
#-*-coding:utf-8-*-
import sys
if __name__=="__main__":
#字典的添加、删除、修改操作
dict={"a":"apple","b":"banana","g":"grape","o":"orange"}
dict["w"]="watermelon"
print dict
del(dict["a"])
print dict
print dict.pop("b")
#dict.clear()
#print dict
#字典的遍历
for k in dict:
print "dict[%s]="%k,dict[k]
#-*-coding:utf-8-*-
import sys
if __name__=="__main__":
#字典的 keys()与 values()方法
楚广明新员工培训专用(借用了无数开源先驱的文档与资源,有些出处以无法考证。向开源文档的先驱致敬!)
dict={"a":"apple","b":"banana","g":"grape","o":"orange"}
#输出 key 的列表
print dict.keys()
#输出 values 的列表
print dict.values()
#-*-coding:utf-8-*-
import sys
def Main():
D={'food':'spam','quantity':4,'color':'pink'}
print D['food']
D['quantity']+=1
print D
#另外一种定义字典的方法
D={}
D['name']='Bob'
D['job']='dev'
D['age']=40
print D
#使用键值,进行排序
D={'a':1,'b':2,'c':3}
print D
Ks=D.keys()
print Ks
Ks.sort()
print Ks
for key in Ks:
print key,'=>',D[key]
for key in sorted(D):
print key,'=>',D[key]
#迭代与优化
squares=[x ** 2 for x in [1,2,3,4,5]]
print squares
#与以下代码是等效的
squares=[]
for x in [1,2,3,4,5]:
squares.append(x**2)
if __name__=="__main__":
Main()
在访问的时候,如果这个键值不存在的话,如果我们没有做任何判断的话,会出现错误,这个时候我们可以用以
下代码来进行判断。
#-*-coding:utf-8-*-
import sys
def Main():
楚广明新员工培训专用(借用了无数开源先驱的文档与资源,有些出处以无法考证。向开源文档的先驱致敬!)
D={'food':'spam','quantity':4,'color':'pink'}
#测试不存在的键值
if not D.has_key('f'):
print '不存在这个键值'
else:
print D['f']
if __name__=="__main__":
Main()
五、 基本数据类型-元组(tuple())
元组与列表非常相似,它用()而不是[]括起来的序列。元组比列表的速度更快,但元组是一个不可变的序列,
也就是与 str 一样,无法在原位改变它的值。除此之外,其他属性与列表基本一致。
元组是 Python 中内置的一种数据结构。元组由不同的元素组成,每个元素可以存储不同类型的数据,如字符
串、数字甚至元组。元组是写保护的!即元组创建后不能再做任何修改操作,元组通常代表一行数据,而元组中的
元素代表不同的数据项。
元组的创建
#-*-coding:utf-8-*-
import sys
if __name__=="__main__":
tuple_name=("apple","banana","grape","orange")
print tuple_name[0]
分片输出
#-*-coding:utf-8-*-
import sys
if __name__=="__main__":
tuple_name=("apple","banana","grape","orange")
print tuple_name[1]
#牛在支持分片输出
print tuple_name[-1]
print tuple_name[-2]
print tuple_name[1:3]
#我还可以在元组中包含自已
print '-----------------'
tuple=(('t1','t2'),('t3','t4'))
print tuple[0][0]
print tuple[1][0]
实现解包的功能
#-*-coding:utf-8-*-
import sys
if __name__=="__main__":
楚广明新员工培训专用(借用了无数开源先驱的文档与资源,有些出处以无法考证。向开源文档的先驱致敬!)
tuple_name=("apple","banana","grape","orange")
a,b,c,d=tuple_name
print a,b,c,d
元组定义的方法与列表类似,不过在定义只包含一个元素的元组时,注意在后边加一个逗号,请体会以下几句
的差异:
#-*-coding:utf-8-*-
import sys
def Main():
test=[0] #列表可以这样定义
print type(test) #输出<type 'list'>
test=[0,] #也可以这样定义
print type(test) #输出<type 'list'>
test=(0,) #元组可以这样定义
print type(test) #输出<type 'tuple'>
test=(0) #但不能这样定义,Python 会认为它是一个括号表达式
print type(test) #输出<type 'int'>
test=0, #也可以省略括号,但要注意与 C 的逗号表达式不同
print type(test) #输出<type 'tuple'>
#还可以简单的交换数据
a=1
b=2
a,b=b,a
print a,b
if __name__=="__main__":
Main()
以上这类语句在 Python 中被广泛应用于变量交换、函数传值等应用,因此 Python 的解析器在不断对其进行
优化,现在已经具备了相当高的效率。所以以上代码在 Python2.5 以后的版本中,比 tmp=a;a=b;b=tmp 这种常规
语句更快。
Python 是一种动态的强类型语言,在使用变量之前无须定义其类型,但是必须声明和初始化
“一切命名是引用”,Python 中变量名是对象的引用,同一变量名可以在程序运行的不同阶段代表不同类
型的数据
“一切数据都是对象”,Python 的所有数据类型都是对象,相较 java 具有一致的使用方法
把问题想得更简单一点,Python 的数值类型可以说只有两种:整形和浮点
多使用 list/tuple/set/dict 这几种很 pythonic 的数据类型,它们分别用[]/()/([])/{}定义
六、 基本数据类型-集合(set)
Python 中的 set 和 java 中的集合不是一个概念,这是翻译的问题,Python 中的集合是指无序的、不重复的
元素集,类似数学中的集合概念,可对其进行交、并、差、补等逻辑运算。
常见集合的语法为:s=set([‘a’,’b’,’c’])。不过 set 在 Python3.0 中发生了较大的变化,创建一个集合的
语法变成了:S={1,2,3},用花括号的方法,与后边要提到的 dict 类似。
如果在 set 中传入重复元素,集合会自动将其合并。这个特性非常有用,比如去除列表里大量的重复的元素,
用 set 解决效率很高。示例如下:
#-*-coding:utf-8-*-
剩余122页未读,继续阅读
xujunsq1204
- 粉丝: 0
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 计算机人脸表情动画技术发展综述
- 关系数据库的关键字搜索技术综述:模型、架构与未来趋势
- 迭代自适应逆滤波在语音情感识别中的应用
- 概念知识树在旅游领域智能分析中的应用
- 构建is-a层次与OWL本体集成:理论与算法
- 基于语义元的相似度计算方法研究:改进与有效性验证
- 网格梯度多密度聚类算法:去噪与高效聚类
- 网格服务工作流动态调度算法PGSWA研究
- 突发事件连锁反应网络模型与应急预警分析
- BA网络上的病毒营销与网站推广仿真研究
- 离散HSMM故障预测模型:有效提升系统状态预测
- 煤矿安全评价:信息融合与可拓理论的应用
- 多维度Petri网工作流模型MD_WFN:统一建模与应用研究
- 面向过程追踪的知识安全描述方法
- 基于收益的软件过程资源调度优化策略
- 多核环境下基于数据流Java的Web服务器优化实现提升性能
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功