美文网首页
Python学习28:模块(Module)之内置模块

Python学习28:模块(Module)之内置模块

作者: 简洁的书写 | 来源:发表于2024-09-07 22:00 被阅读0次

       拧一颗螺丝,只会用到螺丝刀;但是修一台汽车,需要一整套汽修的工具。函数就像螺丝刀,可以帮助我们解决一类问题。当我们遇到很多问题时,难道要东拼西凑各种函数来解决吗?其实,对于很多有关联的问题,Python会把它们封装在一个叫做模块的东西里面。

       简单来说,函数是对代码的封装;类是对属性和方法的封装。而模块是对一堆函数、类和一些代码的封装。

       模块(Module)模块是已经写好的Python文件,以.py结尾。模块可以包含函数、类和一些代码,它们之间的功能是相互关联的。如果把模块比作工具箱,那么函数、类就是里面的螺丝刀、锤子等工具。

       Python中的模块,大致分为内置模块、第三方模块和自定义模块三种。内置模块是Python自带的,它的通用性比较好;而第三方模块由个人或组织开发,个性化高;而自定义模块是用户自己编写,满足特定需求的。

      无论是什么模块,都需要先导入再使用。模块有常用的两种导入方式:import和from…import。这两种导入方式之间有一些差异。

      模块好比工具箱,里面有很多函数和类的工具。使用关键词import直接导入模块,就相当于导入了整个工具箱。

     import:导入datetime模块,使用模块中的类datetime的now()方法,获取了当前的日期时间。

 # 导入模块 datetime
import datetime
# 使用模块datetime中的类datetime的now方法获取当前日期时间,赋值给nowTime
nowTime = datetime.datetime.now()
print(nowTime)

    代码解释

import:关键字import,中文意思是“导入”,表明要在这里导入模块。
模块名:一个名为datetime的模块,用于处理日期和时间。
模块中的类:now前面的datetime是一个类,表明在调用datetime模块里的datetime类。datetime类是一个日期时间类,里面提供了一些获取日期时间的方法与属性。注意,很多模块内都有和模块同名的类,注意别混淆了。
datetime类中的方法:一个方法,表明要调用的now()方法属于datetime类。该方法,用于获取当前的日期时间。
语法格式:导入"工具箱"的缺点,就是需要先从工具箱内拿出合适的工具。因为类属于模块,方法属于类。所以,调用模块中类的方法时,需要从大到小层层调用。采用句点表示法的格式:模块名.类名.方法名()。示例中,表示使用datetime模块中datetime类的now()方法。datetime.datetime.now()

     获取了当前时间后,还能通过各种属性,来获取对应的年月日时分秒。依次使用对应的英文:year、month、day、hour、minute、second。

# 导入模块datetime

import datetime

# 使用模块datetime中的类datetime的now方法获取当前日期时间,赋值给nowTime

nowTime = datetime.datetime.now()

nowYear = nowTime.year

nowMonth = nowTime.month

nowDay = nowTime.day

print(nowTime)

print(f"现在是{nowYear}年{nowMonth}月{nowDay}日。")

       在很多时候,很难用完工具箱的全部工具。所以在处理问题前,可以先找到合适的工具,再去处理它。也就是说,对于功能强大的模块,我们只需要导入要使用的函数或者类就行了。此时,就需要用到from...import语句。

   from...import:从datetime模块中,导入了类datetime,并使用该类的now()方法,获取了当前的日期时间,并输出。

# 从模块datetime中,导入类datetime

from  datetime  import  datetime

# 使用类datetime的now方法获取当前日期时间,赋值给nowTime

nowTime=datetime.now()

print(nowTime)

两个关键字:from...import,表示从模块中导入一个指定的函数或类。示例中,表示从datetime模块中,导入了datetime类。

模块名:关键字from后的datetime是模块,表示要从模块datetime中导入类或函数。

一个类:关键字import后的datetime是一个类,表示是从datetime模块里导入了datetime类。

语法格式:因为from...import,相当于从工具箱拿出了工具。

所以,当调用模块中的类时,无需附加模块名作为前缀,直接使用类名作为前缀即可,即类名.方法名()。

示例中,表示使用了datetime类的now()方法。

使用import导入模块,是导入整个模块,在调用时需要模块前缀。

而使用from…import导入模块时,是导入模块的类或函数,在调用时可以直接使用函数或类的方法。

使用模块时,可以根据自己的需要选择合适的导入方式。

个常用的内置模块 -- 随机模块

随机模块(random)导入random模块,使用模块中uniform函数,生成了一个0到1随机数并输出。

# 导入模块 random(使用import的方式,导入整个随机模块random。)

import random

# 使用模块random中的uniform函数生成随机数,并赋值给randomNum

randomNum = random.uniform(0,1)

print(randomNum)

导入模块:使用import的方式,导入整个随机模块random。
使用模块中的函数:因为导入了整个模块,所以使用其中的函数时,需要模块名作为前缀,即模块名.函数名()的格式。示例中,uniform函数用于产生指定范围随机浮点数。比如,random.uniform(0,1)表示生成0到1的随机浮点数。

random模块

random模块内不仅有生成随机浮点数的函数,还有生成随机整数,实现随机抽取等一系列函数。

图中展示了random模块中这几个常用的函数。下面简单介绍下randint和choice函数的用法。

randint函数

random模块的randint函数,可以产生指定范围的随机整数。整数的范围,由randint函数中的参数决定。

#示例,random.randint(1,7)表示生成1到7的随机整数,包括整数1和7。
import random
print(random.randint(1,7))

题目:骰子大战

通过关键字import导入random模块。

分两次使用该模块下的randint()函数,生成1到6之间的随机整数。

第一次,将结果赋值给变量player,作为玩家的点数;

第二次,将结果赋值给变量computer,作为电脑的点数。

最后通过if-elif-else语句判断玩家和电脑的输赢:

如果,player大于computer,则输出"玩家胜利,电脑弱爆了"

如果,player等于computer,则输出"平局,再来一盘"

否则,输出"电脑胜利,决战到天亮!"

# TODO 导入模块 random

import random

# TODO 生成1到6的随机整数,赋值给player

player = random.randint(1,6)

# TODO 生成1到6的随机整数,赋值给computer

computer = random.randint(1,6)

print(f"玩家丢出{player}点")

print(f"电脑丢出{computer}点")

# TODO 通过if-elif-else语句判断玩家和电脑的输赢

if player > computer:

    print("玩家胜利,电脑弱爆了")

elif player == computer:

    print("平局,再来一盘")

else:

    print("电脑胜利,决战到天亮")

choice函数

random模块的choice函数,可以从序列中随机选取一个元素。

示例中,random.choice(option)表示从列表option中,随机选取一个元素。

计算平均值

statistics是Python内置的一个数学统计模块。该模块的mean()函数,可以返回一个列表的平均值,只需将列表传入到括号中即可。

首先使用import导入statistics模块;

然后定义一个列表numList = [10, 99, 78, 50];

最后使用mean()函数,计算该列表的平均值,并输出。

注意,只导入模块时,使用模块内的函数采用句点表示法,即模块名.函数名()的格式。

# TODO 导入statistics模块

import statistics

# TODO 定义列表numList

numList = [10,99,78,50]

# TODO 计算列表的平均值,并输出

print(statistics.mean(numList))

上面的代码改成用from......import......来完成,代码如下:

# TODO 从模块statistics中导入mean函数

from statistics import mean

# TODO 定义列表numList

numList = [10,99,78,50]

# TODO 计算列表元素的平均值,并输出

print(mean(numList))

相关文章

网友评论

      本文标题:Python学习28:模块(Module)之内置模块

      本文链接:https://www.haomeiwen.com/subject/ptbjljtx.html