【Python】中的模块


一、模块

在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一下Python中的模块。

说的通俗点:模块就好比是工具包,要想使用这个工具包中的工具(就好比函数),就需要导入这个模块

1.1 import

在Python中用关键字import来引入某个模块,比如要引用模块math,就可以在文件最开始的地方用import math来引入。

形如:

import module1,mudule2...

当解释器遇到import语句,如果模块在当前的搜索路径就会被导入。
在调用math模块中的函数时,必须这样引用:
  模块名.函数名

# 一次性导入多个包
import math,pandas,numpy,abc

1.2 from 模块名 import 函数名1,函数名2…

有时候我们只需要用到模块中的某个函数,只需要引入该函数即可,此时可以用下面方法实现:

#从整个math包里面只导入这四个函数
from math import sin,cos,tan,degrees

如果想一次性引入math中所有的东西,还可以通过from math import *来实现:

from math import * # * 代表匹配 ,代表所有函数都导进来

如果存在这样一种情况:在多个模块中含有相同名称的函数,这时我们运用这种方法,解释器无法知道到底要调用哪个函数。所以如果像上述这样引入模块的时候,调用函数必须加上模块名
也就是说通过这种方式引入的时候,调用函数时只能给出函数名,不能给出模块名,但是当两个模块中含有相同名称函数的时候,后面一次引入会覆盖前一次引入。也就是说假如模块A中有函数function( ),在模块B中也有函数function( ),如果引入A中的function在先、B中的function在后,那么当调用function函数的时候,是去执行模块B中的function函数。
此时用import 导入会比较好一些

1.3 as

模块名称太长了,不方便输入,可以设置一个别名

import math as m
#后面用到math函数时只需要前缀m.即可

import matplotlib.pyplot as plt
plt.plot([1,2,3])

二、常用模块

2.1 datetime时间模块

from datetime import datetime
# 这里注意, 如果使用的是语法import datetime
# 则导入整个datetime包, 要使用datetime.datetime才能够使用
datetime.now()
>>datetime.datetime(2022, 10, 31, 17, 58, 41, 437841)

2.1.1 取出时间中的某一部分

from datetime import datetime 
t = datetime.now()
t.year
>>2022
t.month
>>10
t.day
>>31
t.hour
>>18

2.1.2 datetime与时间戳

电脑中的时间由cpu储存, 所以一般叫做cpu时间.
cpu时间是计算从1970年1月1日0点0分到目前这个时间点所经历的的秒数

from datetime import datetime 
datetime.now().timestamp()
>>1667210548.682235

2.1.3 时间戳和datetime转换

那么时间戳和datetime之间如何转换呢?
把一个datetime类型转换为timestamp需要调用timestamp()方法

# 时间戳转换成时间
from datetime import datetime 
datetime.fromtimestamp(166780)
>>datetime.datetime(1970, 1, 3, 6, 19, 40)

2.1.4 str转换为datetime

很多时候,用户输入的日期和时间是字符串,要处理日期和时间,首先必须把str转换为datetime。转换方法是通过datetime.strptime()实现,需要一个日期和时间的格式化字符串:

from datetime import datetime 
datetime.strptime(<时间字符串>,<你输入格式>)
datetime.strptime('2008:12:01 3:24:12','%Y:%m:%d %H:%M:%S')
>>datetime.datetime(2008, 12, 1, 3, 24, 12)

2.2 time时间模块

import time
for i in range(5):
    print(i)
    time.sleep(2) # 每次休息2秒钟
>>0
1
2
3
4
time.asctime() # 获取当前时间
>>'Mon Oct 31 18:11:59 2022'
time.time() # 获取当前时间戳
>>1667211135.6733208

time模块应用

计算一段代码执行时间

import time
# 在运行之前,记录一个开始时间
start_time = time.time()
num = 0
for i in range(1,100000001):
    num+=i
print(num)
# 运行之后,用当前时间,减去刚来记下来的开始时间
print(time.time() - start_time , 's')
>>5000000050000000
13.426235437393188 s

jupyter自带统计时间功能

%%time
num = 0
for i in range(1,100000001):
    num+=i
print(num)
>>5000000050000000
Wall time: 13.1 s

2.3 random模块

import random
random.seed(1)  #随机数种子,用同一个随机数种子生成的随机数是一样的
print(random.randint(1,5))          # 返回(1-5)随机整型数据
>>2
random.random() #随机生成0到1的小数
random.randint(1,5)#随机生成1到5的整数(闭区间)

例:生成随机验证码

#26个英文字母和10个数字随机组合成四位数的验证码
#先定义一个空字符串
import random
s=''
for i in range(4):
    n=random.randint(1,36)
    if n <= 10:
        t= str(random.randint(0,9)) #随机生成一个数字
    else:
        t= chr(random.randint(65,90))#随机生成一个字母
    s+=t
print(s)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值