跟着NOAI考纲学Python,学完就能考,第12课

跟着NOAI考纲学Python,学完就能考,第12课

本文核心观点
NOAI 自学 Python 系列第 12 课:import 模块导入、math/random/os 标准库、安装与使用 pip 第三方库。

跟着NOAI考纲学Python,学完就能考,第12课

每天一个知识点,带你自学NOAI,加入我们吧~

前面学的print、len、range这些都是Python自带的函数,不用额外操作就能直接用。但Python还有很多功能是"打包好的工具箱",需要你先说一声"我要用"——这就是模块。一句import,就能打开一个新工具箱。

import导入模块

import 把模块导进来,然后用 模块名.函数() 调用:

import math

print(math.sqrt(16))
print(math.pi)

4.0
3.141592653589793

拆开看:

import math — 把math模块导进来

math.sqrt(16) — 调用math模块里的sqrt函数,算16的平方根

math.pi — 这不是函数,是math模块里存的一个常量,圆周率

import就像去图书馆借书——书(模块)一直在那里,但你得先借过来(import),才能翻开用。

math模块

math模块提供各种数学函数,NOAI考试里经常用到:

import math

print(math.sqrt(25))    # 平方根
print(math.pow(210))   # 2的10次方
print(math.ceil(3.2))   # 向上取整
print(math.floor(3.8))  # 向下取整

5.0
1024.0
4
3

ceil 是天花板,往上取;floor 是地板,往下取。记住这两个英文单词就不会混。

random模块

random模块用来生成随机数,写游戏、模拟实验的时候特别有用:

import random

# 随机整数,1到10之间(包含1和10)
print(random.randint(110))

# 从列表里随机挑一个
fruits = ["苹果""香蕉""橘子"]
print(random.choice(fruits))

7
香蕉

每次运行结果可能不一样——因为是随机的。

shuffle 可以把列表打乱顺序(注意,这个方法直接修改原列表):

import random

cards = [12345]
random.shuffle(cards)
print(cards)

[3, 1, 5, 2, 4]

from...import

每次都写 math.sqrt() 嫌长?可以用 from...import 直接把函数"拿出来":

from math import sqrtpi

print(sqrt(16))  # 不用写math.了
print(pi)

4.0
3.141592653589793

区别就一条:import math 之后要写 math.sqrt()from math import sqrt 之后直接写 sqrt() 就行。

给模块取别名

还可以用 as 给模块取个短名字:

import math as m

print(m.sqrt(9))
print(m.pi)

3.0
3.141592653589793

取别名后,原来的名字 math 就不能用了,只能用 m。这个写法在后面学更复杂的模块时会经常见到。

易错点

错误1忘了import就直接用 — 直接写 sqrt(16) 会报 NameError,必须先 import mathfrom math import sqrt

错误2import了模块但忘了加模块名 — import math 之后写 sqrt(16) 而不是 math.sqrt(16),照样报 NameError。要么加前缀,要么一开始就用 from math import sqrt

动手试试

自己先想,想完了香农平台上写代码跑一遍验证。

练习1:预测输出

下面这段代码运行后,屏幕上会输出什么?

import math

print(math.ceil(4.1))
print(math.floor(4.9))
print(math.ceil(5.0))

提示:ceil是天花板往上,floor是地板往下。整数呢?

练习2:找bug

下面这段代码想算9的平方根,但报错了。哪里有问题?

import math

result = sqrt(9)
print(result)

提示:回头看看"易错点"第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基础」→「模块」,从第一道题开始写。

下一篇讲排序——怎么把一堆乱七八糟的数据按大小排好?手动排一次你就明白排序算法的原理了。

微信二维码

扫码备注【NOAI】加交流群