无标题文章

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. 表达式建立并处理对象。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,744评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,505评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,105评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,242评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,269评论 6 389
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,215评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,096评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,939评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,354评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,573评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,745评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,448评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,048评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,683评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,838评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,776评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,652评论 2 354

推荐阅读更多精彩内容