来玩更大的积木——父与子的编程之旅 学习笔记(13)2018-08-17

第十五章 模块

本章我们继续精简笔记~

15.1~3 什么是模块、为什么使用模块、与函数的区别

(1)模块(module)就是包含在一个更大程序中的一部分代码。

(2)模块的好处有:使文件更小、更易读;需要使用相同功能的时候不用再次从头写;最重要的是,模块化意味着我们可以使用不同的组合来完成不同的任务。

(3)模块与函数的区别:

    函数就像一块块积木,模块就像一个个积木桶。

15.4 如何创建模块

创建模块非常简单,如下面这个例子,将这个文件命名为“my_module.py”并保存:

这样就创建好了my_module这个模块了!

小结:要创建一个模块,只需保存好相应的py文件。

15.5 如何使用模块

我们在同一文件夹的另一个程序中使用my_module:

(1)首先,我们使用import关键词告诉Python要使用的模块名:

my_module是外部文件,所以需要import

(2)运行后却发现报错,程序不能识别c_to_f方法:

但我们的确定义了这方法,并且import了呀?

(3)怎么办?这是因为我们定义函数的时候,需要更加准确。解决方法之一是将上面报错的代码,改为:

fahrenheit = my_module.c_to_f(celsius)

这样便能正常工作了。

15.6 命名空间

(1)什么是命名空间?

我们先看一个例子:假如第一中学的一年1班有个人叫张三,2班也有个人叫张三。我们在1班,当我们说“我们班的张三”的时候,知道指的不是2班的那个人;如果我们想说另一个人,就会表述为“2班的那个张三”。换种说法,在1班的这个空间里,只有一个张三(1号),所以1班就是张三(1号)的命名空间;同理,2班是张三(2号)的命名空间。

所以,当一中的校长要叫张三同学时,ta不能直呼其名,而必须加上命名空间的前缀,如“一班的张三”;或者ta也可以来到命名空间(1班)里,直接叫张三出来,这样就不存在混淆。

一般来说,程序员会把较小的命名空间(如一间教室)叫做局部命名空间;将较大的命名空间(如整间学校)叫做全局命名空间

(2)如何导入命名空间?

我们再看第二个例子:一中没有人叫李四,但这校长偏要找一个叫“李四”的人过来。这时,二中由于有交流活动,一年一班的同学合并进来,里面恰好有个人叫李四,这时候校长便可找到李四了。

二中的一年一班就像另一个命名空间,导入了模块,就相当于导入了命名空间,里面所有的变量、函数及对象,都可以被访问了。

用Python来理解上述行为是这样的:

1.    首先导入二中一班的模块,顺便把命名空间也导入:import ErzhongYinianyiban

2.    执行校长呼叫程序:call_to_office(ErzhongYinianyiban.Lisi)

(3)用from导入命名空间

另外,我们还有一种方法,成为“校长亲自到班级叫同学的方法”,或者简单记为from方法,例子如下:

from ErzhongYinianyiban import Lisi

⬆️感觉挺像自然语言的。要是想叫上全部的学生,可以用*代替李四的位置:

from ErzhongYinianyiban import *

但用星号时要注意,假如二中一班跟一中有学生同名,那就麻烦啦。

目前为止,命名空间这一块我们理解就好了,比较深入的知识还待日后掌握~

15.7 标准模块

学到这里,还有个重大的好消息——Python提供了许多标准模块,它们组合成了标准库。有些标准模块是预装好的,有些开源的模块需要自己下载。下面我们来学习几个标准模块:

(1)time

time模块可以获取计算机的时钟信息,里面的sleep方法可以为程序增加延迟,如:

sleep前的函数要加上time.,否则命名空间不对

或者我们可以使用from方法:

这时候不需要在sleep前加time.

(2)随机数

random模块用于生成随机数,在游戏和仿真中非常有用。下面在交互模式中使用random模块:

注意randint方法前的命名空间,刚刚没注意,报错了

注意到上面是产生整数,我们可以使用random.random()方法产生0~1的小数。如果我们需要0~10或0~100的随机小数,可以在后面乘以相应的倍数:


你学到了什么?

(1)什么是模块、如何创建模块和在另一程序中使用模块

(2)什么是命名空间、局部和全局命名空间

(3)如何把其他模块的变量包含到自己的命名空间中


练习题

(1)编写一个模块,包含把十三章的“大写字母打印名字”函数,然后导入模块并调用函数。

异常简单~注意文件夹位置和命名就行了

(2)编写一个小程序,让c_to_f导入到主程序的命名空间里,从而可以写

fahrenheit = c_to_f(celsius),而不用写

fahrenheit = my_module.c_to_f(celsius):

解答:要导入函数到主程序的命名空间里,可以使用from的两种方法:

1️⃣from my_module import c_to_f

2️⃣from my_module import *

(3)编写一个小程序,隔三秒钟生成1到10之间的10个随机小数列表,并打印出来:

程序代码
运行结果

小结

经过函数、对象等大boss的“洗礼”,这一章显得简单许多,不过难关还在后头,毕竟模块更多的作用是将前面的大boss打包好,这一章只是学习模块的一些特性。继续加油吧~

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

推荐阅读更多精彩内容

  • 无论是在日常生活还是工作,学习中,我们经常会和”计划”打交道。经常会听到说,要做什么事情,必须先有计划,即使是临时...
    仲秋雨路阅读 391评论 0 0
  • 毕业一年,换了四份工作,资产基本靠支付宝流转(新时代信用卡)。 由刚毕业的我想做什么,转变到我能做什么,再到我想做...
    炎黄子孙_ac51阅读 292评论 0 0
  • 好像快要立秋了吧 夜里的风已经稍带寒意 雨也是凉的不像话 白天慵懒的猫到了晚上却异常活跃 总会寻着灯光来到我的窗前...
    ww420阅读 317评论 0 0