【Python编程实践1/3】模块

本文介绍了Python中模块的概念,区分了import和from...import两种导入方式,并通过datetime和random模块实例展示如何使用。重点讲解了如何导入和利用内置模块的函数,如random模块的randint和choice函数。
摘要由CSDN通过智能技术生成

目录

目标

模块

import

​编辑

代码小结

题目

from...import

随机模块

代码小结

randint函数

骰子大战

choice函数

总结


目标

        拧一颗螺丝,只会用到螺丝刀;但是修一台汽车,需要一整套汽修的工具。函数就像螺丝刀,可以帮助我们解决一类问题。那么当我们遇到很多问题时,难道要东拼西凑各种函数来解决吗?

        其实,对于很多有关联的问题,Python已经提供了标准的解决方案。这些解决方案,都被封装在了一个叫做模块的东西里面。今天,我们先来了解模块的两种导入方式,并介绍一些常见模块的使用方法

模块

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

        定义:模块是已经写好的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的模块,用于处理日期和时间。

模块中的类

一个类,表明我们在调用datetime模块里的datetime类。datetime类是一个日期时间类,里面提供了一些获取日期时间的方法与属性。注意,很多模块内都有和模块同名的类,注意别混淆了。

datetime类中的方法

一个方法,表明我们要调用的now()方法属于datetime类。该方法,用于获取当前的日期时间

语法格式

导入"工具箱"的缺点,就是需要先从工具箱内拿出合适的工具。因为,类属于模块,方法属于类。所以,调用模块中类的方法时,需要从大到小层层调用。采用句点表示法的格式:模块名.类名.方法名()。示例中,表示使用datetime模块datetime类now()方法。

代码小结

导入模块后,使用模块中的类的方法时,就可以使用这样的格式

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

        示例中,使用.year属性获取了当前日期的年份;使用.month属性获取了当前日期的月份。

题目

获取当前的年份

通过导入 datetime模块,使用 datetime类的now方法,获取当前日期。最后通过year属性,获取当前日期的年份,并格式化输出内容。格式化输出示例:现在是xxxx年。

参考代码

# 导入模块 datetime
import datetime
# 获取当前日期时间,赋值给nowTime
nowTime = datetime.datetime.now()
# 获取当前日期的年份,赋值给nowYear
nowYear = nowTime.year
# 格式化输出:现在是xxxx年
print(f"现在是{nowYear}年")

运行结果

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导入模块时,是导入模块的类或函数,在调用时可以直接使用函数或类的方法。以后,我们要使用模块时,可以根据自己的需要选择合适的导入方式。

随机模块

        前面,我们以处理日期时间的datetime模块为例,讲解了模块的两种导入方式。下面,我们再介绍一个常用的内置模块 -- 随机模块

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

# 导入模块 random
import random
# 使用模块random中的uniform函数生成随机数,并赋值给randomNum
randomNum = random.uniform(0,1)
print(randomNum)

导入模块

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

使用模块中的函数

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

代码小结

当我们要导入模块并使用模块的函数时,就可以使用这样的格式:

        random模块内不仅有生成随机浮点数的函数,还有生成随机整数,实现随机抽取等一系列函数。图中展示了random模块中这几个常用的函数。

        下面,我们再来简单介绍下randintchoice函数的用法。

randint函数

        random模块的randint函数,可以产生指定范围的随机整数。整数的范围,由randint函数中的参数决定。示例中,random.randint(1,7)表示生成1到7的随机整数,包括整数1和7。

骰子大战

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

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

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

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

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

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

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

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

参考代码

# 导入模块 random
import random
# 生成1到6的随机整数,赋值给player
player = random.randint(1,6)
# 生成1到6的随机整数,赋值给computer
computer = random.randint(1,6)

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

# 通过if-elif-else语句判断玩家和电脑的输赢
if player > computer:
    print("玩家胜利,电脑弱爆了")
elif player == computer:
    print("平局,再来一盘")
else:
    print("电脑胜利,决战到天亮!")

运行结果1结果不止1种

运行结果2结果不止1种

choice函数

        random模块的choice函数,可以从序列中随机选取一个元素。示例中,random.choice(option)表示从列表option中,随机选取一个元素。

        其实,无论是内置模块,还是第三方模块,导入的方式都是一样的。今天,我们使用的内置模块,是Python自带的,具有较高的通用性。

        下次,我们将进一步学习由个人组织开发,个性化较高的第三方模块

总结

  • 29
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

栗子编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值