import
import翻成中文叫做进口
那在程式裡面我们把它当作载入
装东西进我们的程式
那我现在直接举一个例子
random
import random
就是我把random载入我的程式裡面
random是随机的意思
那你可以想像说
我们以前在讲这个x=5
那我们的世界就产生一个箱子嘛
它裡面装的是5对不对
名字叫x
那我们在创作一个y=10
那我们的世界是不是又产生一个箱子叫做y
然后裡面是装10
那我们的世界现在有两个变数 两个箱子
可是你想想看我们这样的话
我们的程式是不是都要从0开始
你要一个一个磁砖敲出来 敲打敲打然后创作出东西
我们才慢慢慢慢建构出东西
你不觉得这样不太可能吗
我们如果都是要自己创作
我们怎么可能建造出大楼对不对
我们是不是要用一些别人建造好的东西
这就是import的概念
我们要使用别人写好的功能
这种时候我们就载入/进口
那你看现在我import random进来之后呢
我们的程式就不再是从0开始了
我载入了一个好大的箱子
好大的箱子叫做random 随机
你想想看一个很大很大的包裹FedEx寄来
上面贴的标籤写random
然后裡面装了满满的工具 很多种工具我可以使用
那像random它的这个箱子叫随机
那我们就可以使用它的功能
例如说其中一个功能我们要使用的
也是我们唯一要使用的功能就是
产生随机数
那random这本书我要产生随机数
就是使用这本书的randint功能
import random
r = random.randint(1, 100)
我先存档
那我先存到桌面好了 我取叫 r.py
random是一个箱子
我把它载入进来
那我现在这个random
点 就是"的"的意思
random.randint
【.】 = 【的】
这个箱子里面有很多工具
那我现在要使用randint这个工具
所以我使用裡面其中一个工具
假设它是一个螺丝起子之类的
那它的这功能叫做randint
所以这是一个功能
以它的术语叫做函式 先不管 反正就是这个功能
randint的全名=random integer
random random就随机
integer int 整数
random int就随机整数
那我这裡给它1跟100就是开始值跟结束值
所以从1到100你产生一个随机数
我要给你一个start跟结尾
start=开始
end=结尾
好 那这全部处理完之后呢
产生出随机数之后呢
我把它存进r裡面 r是我自己取的 随便取
我使用random这个箱子 里面的randint
这个产生随机整数的功能
然后我的范围是1到100
产生完之后我存进r就这样
好 这样random你有一点概念了
我们可以载入别人的功能
你看我不可能自己从0开始来写一个很複杂的程式就为了产生随机数
我就为了要使用这么简单的功能
然后我自己从0开始 x=0 y=10怎么写出来 不可能嘛
这种功能肯定有人写好了嘛
那这种时候我们就要用import
那现在我们来见识一下它真的有产生随机整数 1到100的随机整数
我打开cmd
cd到桌面
那么我的档案叫r.py
就执行
没有印出东西 为什么
因为我根本没有把它印出来嘛
我要用print®
因为我们产生完随机整数之后 我们存进r裡面
所以这个r就是我们产生的随机整数
我把它印出来
存档
执行 产生3
再执行一次 这次变9
变11……
1跟100跟大家提醒一下
是有包括的
有包含的
所以它可能会产生出1
也可能会产生出100
(包括首尾)
第二阶段你的问题就是
random是怎么来的
random 这我刚刚说是一个箱子嘛
一个包裹 FedEx寄来的嘛对不对 上面贴了random
一般来讲你想想看 包裹要寄来
在程式裡面 是不是就是要下载
我上网去下载别人写好的程式 我才可以用别人的程式嘛
我就不用自己写 有些功能
我们 第一个我们要想到的应该是
download下载
可是为什么我们现在不用下载
就可以产生随机数
其实就是这个random Python在安装的时候 已经帮你安装好了
它是属于Python安装的过程中呢 它偷偷帮你安装好的东西
所以我们在安装Python的时候
它安装了一大堆箱子或是书
你可以想像成书 一本一本书
安装一本一本一本
其中一本叫做random
那也就是我们现在使用的
那这一大堆书呢 它在术语上面叫做library
library
就图书馆
为什么它叫图书馆
假设说有一个
你看图书馆 你看一个书柜嘛
然后呢 假设说我有三层好了
然后都有一本一本书 《三国演义》、《爱莉丝梦游仙境》
其中一本书是random
我们选了一本书出来
那这每一本书裡面都装著很多别人写好的功能
每一本书都非常的丰富
一个故事《三国演义》裡面有曹操 刘备什么 裡面非常多的内容
那我们要使用哪一本
我们就把那一本取出来就好
所以这就import random
我们把那本书取出来
然后我们要使用裡面的功能 就是产生随机整数
那这一大堆书装在一起就是一个图书馆
有一个专业的术语
叫做standard library
标准函式库
就是Python在安装的时候
帮你装好的书
因为这些书还满常用到的 所以它就先帮你安装起来 我们就不用上网下载了
如果你今天要使用一个
不是在标准函式库裡面的程式
例如说什么人工智慧的 分析的等等的 一些比较複杂的东西
例如说我要使用一个程式是
它可以连结到你的脸书的等等的
那这个不是在标准化函式库裡面的
我们就要上网下载
那今天因为random
它是标准化函式库裡面其中一本书
我们就不用下载 就可以直接载入
好 第二个问题你问我的就是
为什么要用import来载入
那你刚刚不是已经跟我说
它安装Python的时候偷偷安装好了吗
那我为什么不能直接使用呢
在程式码里面我为什么要先载入呢
就是它不想要你的程式在刚开始
在执行的时候呢
就帮你装了一堆你用不到的东西
它的设计的概念就是
我把你最常用的给你
print、input这些对不对
我们这些就不用载入就可以用
可是如果有些比较罕见的
譬如说产生随机数这种比较罕见的
那你要用你再跟我讲对不对
那我们就用import跟它讲说
请给我这本书 我要载入我的程式
它尽量让你的程式轻一点 重量轻一点
这个是从英文直翻light-weighted
那你如果要用的时候 你再慢慢装东西进来
它不要一次都把你 这八宝粥直接装起来
不过再来我在术语上面跟大家做一些解释
这个部分你听听就好
我觉得这些术语听起来会有点複杂麻烦
对初学者来讲听了这些术语 满有可能会混淆的
所以这是为什么刚刚尽量不提到
但是你还是可以听过一遍 我稍微解释一下就可以了
刚刚我们有提到standard library 标准化函式库
就是Python在安装的时候呢 它偷偷帮你在电脑裡面装好的一整个图书馆
有一堆常用的功能
你要用的时候你可以跟它讲
那其中一本是random
就是我们现在使用的这个
我们现在把它载入我们程式裡面
所以这你可以把它想像成一本书的书名
那standard library我们知道标准化函式库
random形容成一本书或是一个箱子
那在术语上面它叫做一个module
模组
所以你看
听到这种术语就怪怪的 就是会有点混淆你
模组最简单的定义
就是一个Python档案
像我们现在r.py是一个Python档
这样就是一个模组
Python的模组=Python一个档案
一个Python档就是一个Python的模组
那很多个模组
假设这每一个是一个模组
很多个模组呢
你可以装在一个文件夹里面
那这个就变成一个包裹了
package
package=中文叫做套件
所以package就是装著很多个模组的
package它只是一个资料夹而已
你就这样理解就可以了
这裡面每一个都是一个模组
那我们import的时候呢
可以把整个package整个套件 整个箱子裡面装了一堆模组 可以整个装进我们的程式裡面
我们也可以只装其中一个模组 我们也可以从这整个大箱子裡面 我只要这个就好 我就只装这个就好 其他我不要 我就只装这个
所以你只需要稍微理解模组跟套件的概念
套件就只是装著很多个模组而已 它只是一个资料夹
模组就只是一个Python档
所以这些名字有点取得太浮夸了
模组 package 套件
然后module模组什么 会有点混淆你
等一下 到底什么是模组 什么套件
所以听一听就好
你这个目前不用背起来
这个对你学基础的部分
没有什么帮助
所以你只要了解这个基本概念就好了
我们只要知道import是什么意思就好了
我们今天就是要
使用别人写好的功能
那今天为什么random这个东西
我们不用特别安装呢
只不过是因为它刚好是 Python安装的时候 偷偷安装好的东西 在标准函式库裡面的其中一本书