无标题文章
2016-09-26 本文已影响0人
interjose
Head_First_Python-函数模块
BIF
- list()创建一个新的空列表
- range()返回一个迭代器,根据需要生成指定范围数字
- enumerate()创建成对数据的一个编号列表
- int()将一个字符串或数字转换为一个整数
- id()返回一个Python数据对象的唯一标识
- next()返回一个可迭代数据结构的下一项
for num in range():
print(num)
drugstore
- 模块是一个包含Python代码的文本文件
- 使用import语句将模块导入其他程序
- PyPI Python模块存储库
- Python注释""" """或者#
- 调用函数时,参数个数一定要正确`
- Python的主命名空间main
- range()与for使用,从而迭代固定次数
模块的建立与储存
- 建立好.py源程序
- 为模块创建一个文件夹,将.py源程序放入
- 在新文件夹中建立一个setup.py的文件并编辑这个文件
from distutils.core import setup
setup(
name ='print_lol',%参数可自行调整
version ='1.0.0',
py_modules ='print_lol'],
author ='interjose',
author_email ='shenjiemin@outlook.com',
description ='A simple printer of lists',
)
- 构建发布
- 打开cmd
- 输入 C:\Users\Administrator>cd C:\Users\Administrator\Desktop\print_lol %找到新建立的文件夹的路径,%路径根据自己设置调整
- 输入 C:\Users\Administrator\Desktop\print_lol>"D:\Program Files\python\python.exe" setup.py sdist
- 输入 C:\Users\Administrator\Desktop\print_lol>"D:\Program Files\python\python.exe" setup.py install
- 需要使用模块时通过import模块调用 %为防止模块名冲突,常通过 文件夹名.模块名()调用,通过模块实现命名空间
额外的参数控制
原函数
movies = ["The Holy Grail",1975,"Terry Jones & Terry Gilliam",91,["Graham Chapman",["Michael Palin","John Cleese","Terry Gilliam","Eric Idle","Terry Jones"]]]
>>> def print_lol(the_list):%定义一个print_lol的函数
for each_item in the_list:
if isinstance(each_item,list):
print_lol(each_item)%如果为真则对这个列表元素执行print_lol函数
else:
print(each_item)%打印列表元素
>>> print_lol(movies)
The Holy Grail
1975
Terry Jones & Terry Gilliam
91
Graham Chapman
Michael Palin
John Cleese
Terry Gilliam
Eric Idle
Terry Jones
新要求:发现一个嵌套列表时,就让它缩进
- 思路:使用range()返回一个迭代器,根据需要生成指定范围数字
>>> def print_lol(the_list,level):%参数the_list,level
for each_item in the_list:
if isinstance(each_item,list):
print_lol(each_item,level+1)%重点level+1,每一次递归的过程中增加一个TAB。递归调用函数一定要注意函数参数的个数问题。
else:
for tap_stop in range(level):%控制TAB的个数
print("\t",end='') % "\t",end=''TAB
print(each_item)
>>> print_lol(movies,0)
The Holy Grail
1975
Terry Jones & Terry Gilliam
91
Graham Chapman
Michael Palin
John Cleese
Terry Gilliam
Eric Idle
Terry Jones
新要求:提供可选参数,并通过可选参数控制是否需要缩进
- 在复杂的嵌套过程中一定要注意缩进的格式`
- 定义缺省值,则这个参数就是可选的
- def print_lol(the_list,level):——>def print_lol(the_list,level=0): %定义level的缺省值
- def print_lol(the_list,indent=False,level=0): %通过indent控制是否需要缩进
>>> def print_lol(the_list,indent=False,level=0):
for each_item in the_list:
if isinstance(each_item,list):
print_lol(each_item,indent,level+1)
else:
if indent:
for tap_stop in range(level):
print("\t",end='')
print(each_item)
>>> print_lol(movies)
The Holy Grail
1975
Terry Jones & Terry Gilliam
91
Graham Chapman
Michael Palin
John Cleese
Terry Gilliam
Eric Idle
Terry Jones
>>> print_lol(movies,True)
The Holy Grail
1975
Terry Jones & Terry Gilliam
91
Graham Chapman
Michael Palin
John Cleese
Terry Gilliam
Eric Idle
Terry Jones
>>> print_lol(movies,True,1)
The Holy Grail
1975
Terry Jones & Terry Gilliam
91
Graham Chapman
Michael Palin
John Cleese
Terry Gilliam
Eric Idle
Terry Jones
模块
- 模块是最高级别的程序组织单元,它将程序代码和数据封装起来以便重用。从实际的角度来看,模块往往对应于Python程序文件(或是用外部语言如C、Java或C#编写而成的扩展)。
每一个文件都是一个模块,并且模块导入其他模块之后就可以使用导入模块的变量名。模块可以由两个语句和一个重要的内置函数进行处理。 - import
- from
- imp.reload
模块的重要性
- Python程序可以分解成模块、语句、表达式以及对象`
- 程序由模块构成。
- 模块包含语句。
- 语句包含表达式。
- 表达式建立并处理对象。