Python模块的介绍

一、什么叫模块

1.1、模块

1、模块英文为Modules

2、在Python中一个扩展名为.py的文件就是一个模块

1.2、函数与模块的关系

一个模块中可以包含N多个函数

1.3、使用模块的好处

1、方便其它程序和脚本的导入并使用

2、避免函数名和变量名冲突

3、提高代码的可维护性

4、提高代码的可重用性

二、自定义模块

2.1、创建模块

新建一个.py文件,名称尽量不要与Python自带的标准模块名称相同

2.2、导入模块语法

import 模块名称 [as 别名]
from 模块名称 import 函数/变量/类

2.3、示例

import math  #关于数学运算
print(id(math))
print(type(math))
print(math)
print(math.pi)
print('----------------------------------------')
print(dir(math))
print(math.pow(2,3),type(math.pow(2,3)))
print(math.ceil(9.001))
print(math.floor(9.9999))
from  math import  pi
from math import  pow
print(pi)
print(pow(2,3))
#print(math.pow(2,3))

2.4、 在demo中导入calc自定义模块使用

1、将对应目录修改为Sources Root

 

 2、cale.py

def add(a,b):
    return a+b
def div(a,b):
    return a/b

3、demo1.py

import calc
print(calc.add(10,20))
print(calc.div(10,4))

demo2.py

from  calc import add
print(add(10,20))

 三、以主程序的形式执行

3.1、以主程序形式运行

在每个模块的定义中都包括一个记录模块名称的变量__name__,程序可以检查该变量,以确定他

们在哪个模块中执行。如果一个模块不是被导入到其它程序中执行,那么它可能在解释器的顶级模

块中执行。顶级模块的__name__变量的值为__main__

if __name__ == '__main__':
    pass

3.2、示例cale 

1、将对应目录修改为Sources Root

2、cale.py

def add(a,b):
    return a+b

if __name__ == '__main__':
    print(add(10,20))    #只有当点击运行calc2时,才会执行运算

3、demo1.py

import  calc
print(calc2.add(100,200))

四、python中的包

4.1、Python中的包

包是一个分层次的目录结构,它将一组功能相近的模块组织在一个目录下

4.2、作用:

代码规范

避免模块名称冲突

4.3、包与目录的区别

包含__init__.py文件的目录称为包

目录里通常不包含__init__.py文件

4.4、包的导入语法

import 包名.模块名

4.5、示例

 1、module_a.py

a=10

 2、demo.py

#在demo8的模块中导入 pageage1包
import pageage1.module_A as ma     #ma是pageage1.module_A这个模块的别名
#print(pageage1.module_A.a)
print(ma.a)

4.6、导入带有包的模块时注意事项

import pageage1
import  calc
#使用import方式进行导入时,只能跟包名或模块名

from pageage1 import  module_A
from pageage1.module_A import  a
#使用from ...import可以导入包,模块,函数,变量.

4.7、Python中常用的内置模块

import  sys
import time
import urllib.request
import  math
print(sys.getsizeof(24))
print(sys.getsizeof(45))
print(sys.getsizeof(True))
print(sys.getsizeof(False))
print(time.time())
print(time.localtime(time.time()))
print(urllib.request.urlopen('http://www.baidu.com').read())
print(math.pi)

五、第三方模块的安装及使用

5.1、第三方模块的安装

pip install 模块名

5.2、一键永久解决pip install package 失败问题

见其他小编的其他文章文章----一键永久解决pip install package 失败问题

5.3、第三方模块的使用

import 模块名称 [as 别名]
from 模块名称 import 函数/变量/类 
import  schedule
import  time

def job():
    print('哈哈 -------')

schedule.every(3).seconds.do(job)
while True:
    schedule.run_pending()
    time.sleep(1)

 六、第三方模块的使用案例

6.1、模拟高铁售票系统

需求:假设高铁一节车厢的座位数有6行,每行5列,每个座位初始显示“有票”,用户输入座位位置(如,4,3)后,按回车,则该座位显示为“已售”,使用到第三方模块prettytable。

import prettytable as pt
 
 
def Show_ticket(row_numb):
    tb = pt.PrettyTable()  # 创建一个表格
    # 设置标题
    tb.field_names = ['行号', '座位1', '座位2', '座位3', '座位4', '座位5']
    # 遍历有票
    for i in range(1, row_numb + 1):
        lst = [f'第{i}行', '有票', '有票', '有票', '有票', '有票']
        tb.add_row(lst)
    print(tb)
 
 
# 订票
def Order_ticket(row_num, row, column):
    tb = pt.PrettyTable()
    tb.field_names = ['行号', '座位1', '座位2', '座位3', '座位4', '座位5']
    for i in range(1, row_num + 1):
        if int(row) == i:
            lst = [f'第{i}行', '有票', '有票', '有票', '有票', '有票']
            lst[int(column)] = '已售'
            tb.add_row(lst)
        else:
            lst = [f'第{i}行', '有票', '有票', '有票', '有票', '有票']
            tb.add_row(lst)
    print(tb)
 
if __name__ == '__main__':
    row_num = 6
    Show_ticket(row_num)
 
    # 开始售票
    choose_num = input('请输入您选择的坐席:如4,3表示第4排第3列:')
    row, column = choose_num.split(',')
    Order_ticket(row_num, row, column)

6.2、推算几天后的日期

需求:编写一个程序,输入开始日期和间隔天数,可以推算出结束日期,使用内置的datetime模块。

import datetime
def input_date():
    inputdate=input('请输入开始日期:(20080808)后按回车:')
    # 去掉了开头和结尾的所有空白字符(包括空格、制表符、换行符等)
    indate=indate.strip()
    datestr=inputdate[0:4]+'-'+inputdate[4:6]+'-'+inputdate[6:]
    dt=datetime.datetime.strptime(datestr,'%Y-%m-%d')
    return dt
 
if __name__=='__main__':
    # print(input_date())
    date=input_date()
    in_num=eval(input('请输入间隔天数:'))
    date=date+datetime.timedelta(days=in_num)
    print('您推算的日期是:',date)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值