美文网首页
无标题文章

无标题文章

作者: interjose | 来源:发表于2016-09-26 18:45 被阅读0次

    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使用,从而迭代固定次数

    模块的建立与储存

    1. 建立好.py源程序
    2. 为模块创建一个文件夹,将.py源程序放入
    3. 在新文件夹中建立一个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',
        )
    
    1. 构建发布
      • 打开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程序可以分解成模块、语句、表达式以及对象`
      1. 程序由模块构成。
      2. 模块包含语句。
      3. 语句包含表达式。
      4. 表达式建立并处理对象。

    相关文章

      网友评论

          本文标题:无标题文章

          本文链接:https://www.haomeiwen.com/subject/uabqyttx.html