从零开始学Python---模块与包

Python中的模块从逻辑上来说就是一组功能的组合,实质上一个模块就是一个包含了python定义和声明的文件,文件类型是.py类型的,通过import来加载,主要包括以下几种:
a.使用python编写的代码(.py文件);
  b.已被编译为共享库或DLL的C或C++扩展;
  c.包好一组模块的包
  d.使用C编写并链接到python解释器的内置模块;
我们在使用模块之前必须先把它加载进来,使用import和from加载模块,在相同的代码文件中,使用包的时候导入一次即可,导入一次后Python便将它保存在内存之中。

(1)自定义模块

我们可以自定义模块,如:

def f1(n):
    y = 1
    for i in range(1,n+1):
        y = y * i
    return y
# 创建阶乘函数f1(n)

def f2(lst,x):
    while x in lst:
        lst.remove(x)
    return lst
# 创建列表删值函数f2(lst,x)

def f3(a,d,n):
    an = a
    s = 0
    for i in range(n-1):
        an = an + d
        s = s + an
    return s
# 创建等差数列求和函数f3(a,d,n)

我们创建了一个模块,其中包含函数f1,f2和f3,将其命名为testmodel2,并保存为py文件。下面我们引入这个模块

import testmodel2#引入自定义模块

print(testmodel2.f1(5))
print(testmodel2.f2([2,3,4,5,5,5,6,6,4,4,4,4],4))
print(testmodel2.f3(10,2,10))
# 直接用import调用模块,.f1()调用模块函数(方法)

输出结果:
在这里插入图片描述
在创建模块之后并引入时,我们要注意模块的路径问题,主要通过以下方法解决:

import pandas  #引入pandas模块,这个模块后期会讲
print(pandas.__file__)
# 查看现有包所在路径,将自己创建的包存入改路径

import sys
sys.path.append('路径名')
# 加载sys包,把新建的testmodel所在路径添加上

有时候模块的命名可能比较繁琐,我们可以简化模块名:

# 简化模块名:import...as...

import testmodel2 as tm2

一个模块可能包含相当多的内容,我们可以引入其中的一部分:

# 调用部分模块语句:From…import 语句

from testmodel2 import f2

print(f2([2,3,4,5,5,5,6,6,4,4,4,4],4))
#print(f3(10,2,10))
# 单独导入模块的部分功能,但无法使用其他未导入模块功能

输出结果:
在这里插入图片描述

(2)Python标准模块—random随机数

random模块是python做数据分析时非常经典的一个函数,使用简单,比较高效,我们来看几个具体的例子:
(a)使用random()函数生成【0-1)之间的随机小数

import random#引入random模块

x = random.random()
y = random.random()
print(x,y*10)#x的范围仍旧是0-1,y的范围是0-10
# random.random()随机生成一个[0:1)的随机数

输出结果:
在这里插入图片描述
(b)使用randint()函数生成随机整数

m = random.randint(0,10)
print(m)
# random.randint()随机生成一个[0:10]的整数

(c)使用choice()函数随机选取元素

st1 = random.choice(list(range(10)))
st2 = random.choice('abcdnehgjla')
print(st1,st2)
# random.choice()随机获取()中的一个元素,()种必须是一个有序类型

输出结果:
在这里插入图片描述
(d)使用sample()函数获取指定序列

lst = list(range(20))
sli = random.sample(lst,5)
print(lst)#打印生成的序列
print(sli)#打印随机选取的序列
# random.sample(a,b)随机获取a中指定b长度的片段,不会改变原序列

输出结果:
在这里插入图片描述
(e)使用shuffle()函数将列表中的顺序打乱

lst = [1,3,5,7,9,11,13]
random.shuffle(lst)
print(lst)
# random.shuffle(list)将一个列表内的元素打乱

输出结果:
在这里插入图片描述
(3)Python标准模块–time模块
时间模块这一部分操作起来比较简单,我们就不一一细说了,来看一个比较具体的例子:

import time#加载时间模块

for i in range(2):
    print('hello')
    time.sleep(1)
# time.sleep()程序休息()秒

print(time.ctime())
print(type(time.ctime()))
# 将当前时间转换为一个字符串

print(time.localtime())#获取当地时间
print(type(time.localtime()))
# 将当前时间转为当前时区的struct_time
# wday 0-6表示周日到周六
# ydat 1-366 一年中的第几天
# isdst 是否为夏令时,默认为-1

print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()))
# time.strftime(a,b)
# a为格式化字符串格式
# b为时间戳,一般用localtime()

输出结果:

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值