每天一个知识点,带你自学NOAI,加入我们吧~
前面学的print、len、range这些都是Python自带的函数,不用额外操作就能直接用。但Python还有很多功能是"打包好的工具箱",需要你先说一声"我要用"——这就是模块。一句import,就能打开一个新工具箱。
import导入模块
用 import 把模块导进来,然后用 模块名.函数() 调用:
importmathprint(math.sqrt(16))print(math.pi) |
4.03.141592653589793
拆开看:
•import math — 把math模块导进来
•math.sqrt(16) — 调用math模块里的sqrt函数,算16的平方根
•math.pi — 这不是函数,是math模块里存的一个常量,圆周率
import就像去图书馆借书——书(模块)一直在那里,但你得先借过来(import),才能翻开用。
math模块
math模块提供各种数学函数,NOAI考试里经常用到:
importmathprint(math.sqrt(25)) # 平方根print(math.pow(2, 10)) # 2的10次方print(math.ceil(3.2)) # 向上取整print(math.floor(3.8)) # 向下取整 |
5.01024.043
ceil 是天花板,往上取;floor 是地板,往下取。记住这两个英文单词就不会混。
random模块
random模块用来生成随机数,写游戏、模拟实验的时候特别有用:
importrandom# 随机整数,1到10之间(包含1和10)print(random.randint(1, 10))# 从列表里随机挑一个fruits = ["苹果", "香蕉", "橘子"]print(random.choice(fruits)) |
7香蕉
每次运行结果可能不一样——因为是随机的。
shuffle 可以把列表打乱顺序(注意,这个方法直接修改原列表):
importrandomcards = [1, 2, 3, 4, 5]random.shuffle(cards)print(cards) |
[3, 1, 5, 2, 4]
from...import
每次都写 math.sqrt() 嫌长?可以用 from...import 直接把函数"拿出来":
frommathimportsqrt, piprint(sqrt(16)) # 不用写math.了print(pi) |
4.03.141592653589793
区别就一条:import math 之后要写 math.sqrt(),from math import sqrt 之后直接写 sqrt() 就行。
给模块取别名
还可以用 as 给模块取个短名字:
importmathasmprint(m.sqrt(9))print(m.pi) |
3.03.141592653589793
取别名后,原来的名字 math 就不能用了,只能用 m。这个写法在后面学更复杂的模块时会经常见到。
易错点
错误1忘了import就直接用 — 直接写 sqrt(16) 会报 NameError,必须先 import math 或 from math import sqrt。
错误2import了模块但忘了加模块名 — import math 之后写 sqrt(16) 而不是 math.sqrt(16),照样报 NameError。要么加前缀,要么一开始就用 from math import sqrt。
动手试试
自己先想,想完了去香农平台上写代码跑一遍验证。
练习1:预测输出 下面这段代码运行后,屏幕上会输出什么?
提示:ceil是天花板往上,floor是地板往下。整数呢? |
练习2:找bug 下面这段代码想算9的平方根,但报错了。哪里有问题?
提示:回头看看"易错点"第2条。 |
练习3:写代码 用random模块模拟掷两个骰子10次,每次打印两个骰子的点数和总点数。格式:骰子1: 3, 骰子2: 5, 总计: 8 提示:for循环 + randint(1, 6),可以用f-string拼输出。 |
去平台上手写代码
学会模块,Python的能力一下子扩大了很多。回顾一下:
•import 模块名 — 导入模块,用 模块名.函数() 调用
•from 模块 import 函数 — 直接导入函数,不用加前缀
•import 模块 as 别名 — 给模块取短名字
•math — 数学计算:sqrt、pow、ceil、floor、pi
•random — 随机数:randint、choice、shuffle
这篇文章讲的是香农NOAI学习平台"Python基础"模块的第十二课。平台上有更多的练习题,写完代码点运行,对不对立刻就知道。
香农NOAI学习平台地址:shannon.arpa.school微信扫码登录就能用,免费。找到「Python基础」→「模块」,从第一道题开始写。
下一篇讲排序——怎么把一堆乱七八糟的数据按大小排好?手动排一次你就明白排序算法的原理了。

