python 快速教程(二)

上传人:我*** 文档编号:135970156 上传时间:2020-06-21 格式:DOC 页数:40 大小:127.50KB
返回 下载 相关 举报
python 快速教程(二)_第1页
第1页 / 共40页
python 快速教程(二)_第2页
第2页 / 共40页
python 快速教程(二)_第3页
第3页 / 共40页
python 快速教程(二)_第4页
第4页 / 共40页
python 快速教程(二)_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《python 快速教程(二)》由会员分享,可在线阅读,更多相关《python 快速教程(二)(40页珍藏版)》请在金锄头文库上搜索。

1、Python进阶01 词典 作者:Vamei 出处:http:/ 欢迎转载,也请保留这段声明。谢谢!通过我们的基础教程,我们已经对Python建立了基本概念,也对对象和类有一个相对明确的认识。我们的进阶教程就是对基础教程的进一步拓展,进一步了解Python的细节。希望在进阶教程之后,你可以对Python的基本语法有一个相对全面的认识。之前我们说了,表是Python里的一个类。一个特定的表,比如说nl = 1,3,8,就是这个类的一个对象。我们可以调用这个对象的一些方法,比如 nl.append(15)。现在,我们要介绍一个新的类,就是词典 (dictionary)。与表相类似,词典也可以储存多

2、个元素。这种可以用来储存多个元素的对象统称为容器(container)。1. 基本概念常见的创建词典的方法:dic = tom:11, sam:57,lily:100print type(dic)词典和表类似的地方,是包含有多个元素,每个元素以逗号分隔。但词典的元素包含有两部分,键和值,常见的是以字符串来表示键,也可以使用数字或者真值来表示键(不可变的对象可以作为键)。值可以是任意对象。键和值两者一一对应。(实际上,表的元素也可以是任意对象)比如上面的例子中,tom对应11,sam对应57,lily对应100与表不同的是,词典的元素没有顺序。你不能通过下标引用元素。词典是通过键来引用。prin

3、t dictomdictom = 30print dic可以构建一个新的空的词典:dic = print dic在词典中增添一个新元素的方法:diclilei = 99print dic(引用一个新的键,赋予对应的值)2. 对dictionary的元素进行循环调用:dic = lilei: 90, lily: 100, sam: 57, tom: 90for key in dic: print dickey可以看到,在循环中,dict的一个键会提取出来赋予给key变量。通过print的结果,我们可以再次确认,dic中的元素是没有顺序的。3. 词典的其它常用方法print dic.keys()

4、# 返回dic所有的键print dic.values() # 返回dic所有的值print dic.items() # 返回dic所有的元素(键值对)dic.clear() # 清空dic,dict变为另外有一个很常用的用法:del dictom # 删除 dic 的tom元素del是Python中保留的关键字,用于删除对象。与表类似,你可以用len()查询词典中的元素总数。print(len(dic)总结:词典的每个元素是键值对。元素没有顺序。dic = tom:11, sam:57,lily:100dictom = 99for key in dic: .del, len()Python进

5、阶02 文本文件的输入输出 作者:Vamei 出处:http:/ 欢迎转载,也请保留这段声明。谢谢!Python具有基本的文本文件读写功能。Python的标准库提供有更丰富的读写功能。文本文件的读写主要通过open()所构建的文件对象来实现。1. 打开文件,创建文件对象。f = open(文件名,模式)最常用的模式有:r # 只读“w” # 写入2. 文件对象的方法:读取方法:content = f.read(N) # 读取N bytes的数据content = f.readline() # 读取一行content = f.readlines() # 读取所有行,储存在表中,每个元素是一行。写

6、入方法:f.write(I like apple) # 将I like apple写入文件关闭文件:f.close()3. 循环读入文件:(该方法已经从Python 3中删除,请尽量避免使用)for line in file(文件名): print line利用file()函数,我们创建了一个循环对象。在循环中,文件的每一行依次被读取,赋予给line变量。总结:f = open(name, r)line = f.readline()f.write(abc)f.close()Python进阶03 模块 作者:Vamei 出处:http:/ 欢迎转载,也请保留这段声明。谢谢!我们之前看到了函数和对

7、象。从本质上来说,它们都是为了更好的组织已经有的程序,以方便重复利用。模块(module)也是为了同样的目的。在Python中,一个.py文件就构成一个模块。通过模块,你可以调用其它文件中的程序。1. 引入(import)和使用模块我们先写一个first.py文件,内容如下:def laugh(): print HaHaHaHa再写一个second.pyimport firstfor i in range(10): first.laugh()在second.py中,我们并没有定义laugh函数,但通过从first中引入(import),我们就可以直接使用first.py中的laugh函数了。从

8、上面可以看到,引入模块后,我们可以通过 模块.对象 的方式来调用所想要使用的对象。上面例子中,first为引入的模块,laugh()是我们所引入的对象。此外,还有其它的引入方式, import a as b, from a import *, 都是处于方便书写的原因,本质上没有差别。2. 搜索路径Python会在以下路径中搜索它想要寻找的模块:1. 程序所在的文件夹2. 标准库的安装路径3. 操作系统环境变量PYTHONPATH所包含的路径如果你有自定义的模块,或者下载的模块,可以根据情况放在相应的路径,以便python可以找到。3. 模块包可以将功能相似的模块放在同一个文件夹(比如说dir)

9、中,通过import dir.module的方式引入。注意,该文件夹中必须包含一个_init_.py的文件,以便提醒python知道该文件夹为一个模块包。_init_.py可以是一个空文件。总结import modulemodule.object_init_.pyPython进阶04 函数的参数对应 作者:Vamei 出处:http:/ 欢迎转载,也请保留这段声明。谢谢!我们已经接触过函数(function)的参数(arguments)传递, 当时我们提到,参数是根据位置对应传递的。这一次,我们准备接触更多的参数对应方式。首先,回忆一下根据位置传递:def f(a,b,c): print a,

10、b,cf(1,2,3)在调用f时,1,2,3根据位置分别传递给了a,b,c。1. 关键字(keyword)参数传递有时候,我们发现,在写程序时用位置传递会感觉比较死板。关键字传递就是根据每个参数的名字传递值,而不用遵守固定的位置。依然沿用上面f的定义,更改调用方式:f(c=3,b=2,a=1)关键字传递可以和位置传递混用,但位置传递的参数必须在关键字传递的参数之前。f(1,c=3,b=2)2. 参数默认值(default)在定义函数的时候,使用形如a=19的方式,可以给参数赋予默认值。如果该参数最终没有被传递值,将使用该默认值。def f(a,b,c=10): print a,b,cf(3,2

11、)f(3,2,1)在第一次调用函数f时, 我们并没有足够的值,c没有被赋值,c将使用默认值10.第二次调用函数的时候,c被赋值为1,不再使用默认值。3. 包裹(packing)位置传递和包裹关键字传递:在定义函数时,我们有时候并不知道调用的时候会传递多少个函数。这时候,使用包裹位置传递和包裹关键字传递会非常有用。下面是包裹位置传递的例子:def func(*name): print type(name) print namefunc(1,4,6)func(5,6,7,1,2,3)上面的两次调用,尽管参数的个数不同,依然可以用同一个func定义。原因在于,在func的参数表中,所有的参数被nam

12、e收集,根据位置合并成一个定值表(tuple),这就是包裹位置传递。为了提醒python参数name是包裹位置传递所用的定值表名,在定义func时,在name前加*号。下面是包裹关键字传递的例子:def func(*dict): print type(dict) print dictfunc(a=1,b=9)func(m=2,n=1,c=11)与上面一个例子类似,dict是一个字典,收集所有的关键字,传递给函数func。为了提醒python参数dict是包裹关键字传递所用的字典,在dict前加*。我们看到,包裹位置传递和包裹关键字传递的关键在于定义函数时,在相应定值表或字典前加*或*。4. 解

13、包裹*和*在调用的时候的应用,主要是解包裹(unpacking), 下面为例:def func(a,b,c): print a,b,cargs = (1,3,4)func(*args)在这个例子中,所谓的解包裹,就是在传递tuple时,让tuple的每一个元素对应一个位置参数。在这里,通过在调用func时使用*,我们提醒python,我想要把args拆成分散的三个元素,分别传递给a,b,c。(设想一下在调用func时,args前面没有*会是什么后果?)相应的,也存在对词典的解包裹,使用相同的func定义,然后:dict = a:1,b:2,c:3func(*dict)在传递词典dict时,让词典的每个键值对作为一个关键字传递给func。5. 混合定义与混合调用参数的几种传递方式可以混合定义和混合调用。但在过程中要小心前后顺序。基本原则是,先位置,再关键字,再包裹位置,再包裹关键字,并且根据上面所说的原理细细分辨。注意:本讲的内容,请注意定义时使用和调用时使用的区分。包裹和解包裹并不是相反操作,而是两个相对独立的过程。总结:关键字,默认值,包裹位置,包裹关键字解包裹Python进阶05 循环设计 作者:Vamei 出处:http:/ 欢迎转载,也请保留这段声明。谢谢!之前在“循环”一节,我们已经讨论了Python最基本的循环语法。这一

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 事务文书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号