HeadFirstPython第二章

函数模块

函数转化为模块:

"""这是"nester.py"模块,提供了一个print_movies的函数,这个函数的作用打印列表,其中有可能包含(也可能不包含)嵌套列表。"""
def print_movies(the_list):
        """这个函数取一个位置参数,名为the_list,这可以是任何Python列表(也可以包含嵌套列表的列表)。所指定的列表中的每个数据项会(递归地)输出到屏幕上,各数据项各占一行"""
	for each_item in the_list:
		if isinstance(each_item,list):
			print_movies(each_item)
		else:
			print(each_item)
将该文件保存为nester.py,然后按F5,python shell会重启,然后定义movies列表,调用print_movies可以递归输出列表中的所有数据。

准备发布:

1、为模块创建一个文件夹,将nester.py模块文件复制到该文件夹,该文件夹命名为nester。

2、在新文件夹中创建一个setup.py文件,编辑这个文件:

from distutils.core import setup
setup(
        name='nester',
        version='1.0.0',
        py_modules=['nester'],
        author='zzy',
        author_email='[email protected]',
        url='http://www.zzy.com',
        description='A simple printer of nested lists',
        
    )
3、构建一个发布,在cmd窗口下执行python setup.py sdist。

4、将发布安装到Python,仍然在cmd窗口中执行python setup.py install。

导入模块

import nester

调用函数

nester.print_movies(movies)
通过额外的参数控制行为,有些人可能需要在输出时加上缩进,另一些人则不需要改变函数。

"""这是"nester.py"模块,提供了一个print_movies的函数,这个函数的作用打印列表,其中有可能包含(也可能不包含)嵌套列表。"""
def print_movies(the_list,indent=False,level=0):
        """这个函数取一个位置参数,名为the_list,这可以是任何Python列表(也可以包含嵌套列表的列表)。所指定的列表中的每个数据项会(递归地)输出到屏幕上,各数据项各占一行"""
        for each_item in the_list:
                if isinstance(each_item,list):
                        print_movies(each_item,indent,level+1)
                else:
                        if indent:
                                for tab_stop in range(level):
                                        print("\t"),
                        print(each_item)
有缩进的

>>> print_movies(movies,True)
The Holy Grail
1975
Terry Jones & Terry Gilliam
91
	Graham Chapman
		Michael Palin
		John Cleese
		Terry Gilliam
		Eric Idle
		Terry Jones
没有缩进的

>>> print_movies(movies,False)
The Holy Grail
1975
Terry Jones & Terry Gilliam
91
Graham Chapman
Michael Palin
John Cleese
Terry Gilliam
Eric Idle
Terry Jones
缩进5个tab

>>> print_movies(movies,True,5)
					The Holy Grail
					1975
					Terry Jones & Terry Gilliam
					91
						Graham Chapman
							Michael Palin
							John Cleese
							Terry Gilliam
							Eric Idle
							Terry Jones




你可能感兴趣的:(Python)