模块的概念介绍

什么是模块:

模块是一个包含有一系列数据、函数、类等组成的程序组

模块是一个文件,模块文件名通常以.py结尾.

作用:

让一些相关的数据,函数,类等有逻辑的组织在一起,使逻辑结构更加清晰

模块中的数据,函数,类等可提供给其它模块或程序使用

模块的分类:

  • 1、内建模块(builtins) 在解析器的内可以直接使用:map()

  • 2、标准库模块, 安装Python时已安装且可以直接使用os,time

  • 3、第三方模块(通常开源),需要自己安装

  • 4、用户自己编写的模块(可以作为其它人的第三方模块)

模块的导入语句

import 语句

语法:

import 模块名1 [as 模块新名1], 模块名2 [as 模块新名2], ....

示例:

#导入数学模块
import math
#导入时间模块
import time

>>> import math
>>> import time,random

注意:没有反应,则说明导入成功了,我们通过import可以导入该模块的所有属性

如何查看该模块的信息呢?注意:前提是模块已导入的前提下

  • dir(obj) 函数返回模块所有属性的字符串列表
  • help(obj) 可以查看模块相关的文档字符串

作用:

将某模块整体导入到当前模块内

用法 :

模块.属性名(函数名可以是函数 也是可是变量)

例如 :

help(math)
DESCRIPTION说明
    This module is always available.  It provides access to the
    mathematical functions defined by the C standard.

这个函数总是可用的,它提供了一些数学函数的定义 通过C语言

import math
>>> math.factorial(5)
120
>>> math.factorial(4)
24

DATA
e = 2.718281828459045 自然对数的底,我们要知道世界只有两个常数是无限不循环的,一个是自然对数的底,e,另外一个就是pi
nan = nan
pi = 3.141592653589793
tau = 6.283185307179586

认识 e和pi的扣下1,不认识扣2

练习:
1.输入一个正方形的周长,输出正方形的面积
2.输入 一个圆的半径,输出圆的面积
3.输入 一个正方形的面积,打印这个正方形的周长
要求:
用math模块内的函数实现 ,提示:pow:返回x的y次方,即x**y
math.sqrt 面积的平方根 ,math.pi 圆周率

import math
# 1.输入一个正方形的周长,输出正方形的面积
length = float(input('请输入正方形的周长:'))
area = math.pow(length/4,2)
print('正方形的面积是:',area)
# 2.输入 一个圆的半径,输出圆的面积
r = float(input('请输入一个圆的半径:'))
area = math.pow(r,2)*math.pi
print('圆的面积是:',area)
# 3.输入 一个正方形的面积,打印这个正方形的周长
area = float(input("请输入一个正方形的面积:"))
#  面积的平方根
length = math.sqrt(area)*4
print('正方形的周长是:',length)

8.3 import导入的几种方式
8.3.1 import导入几种方式介绍

导入关键字 导入对象 导入后的使用
import 模块 模块.功能import sys, sys.path
from模块import功能 功能 功能from sys import path
from模块import * 功能 功能这里同样是导入了所有功能
from模块import功能,功能 功能 功能可以导入多个功能
as 给导入的模块或者功能起别名
from os import path
from datetime import *
from time import time ,localtime
from os import path as pas

注意:
在Python2版本中目录不可以直接被导入,但是3可以。
Python2目录下有__init__.py文件才可以被导入,并且__init__.py导入后自动执行

8.4关于if __name__== '__main__'
主要是用来判断当前文件是否被直接执行。
一个py文件中的代码除了被直接执行,还可能被Import到其他文件中去执行,如果有些代码不方便在被import时执行,就可以把这些代码放在if__name__=='__main__'下来了。这样只有当文件被直接执行时,这些代码才会被读取。

8.4.1 本脚本
__name__属性
此属性用来记录模块的自身名字
作用:
1.记录模块名
2.用来判断是否为主模块(最先运行的模块)
说明 :
当此模块不是主模块时,此属性绑定模块名

每个python模块都包含内置的变量__name__,当运行模块被执行的时候,__name__等于文件名(包含了后缀.py);如果import到其他模块中,则__name__等于模块名称(不包含后缀.py)。而“__main__”等于当前执行文件的名称(包含了后缀.py)。进而当模块被直接执行时,__name__ == 'main'结果为真。

注意我们说__name__属性就是用来判断自己是不是主模块,是不是主先运行的,就是这么一个作用

在我们脚本创建之初,Python会默认加载一些内建的变量,__name__就是其中一个
当我们脚本自己执行,也就是直接执行这个脚本的时候__name__的值是__main__

print(__name__)

运行结果:

__main__

8.4.2 Python中有趣的导入

1、

>>> import __hello__
Hello World...

2、经典的 Python 之禅

3、“反重力”漫画

>>>import antigravity 
antigravity [ˌæntiˈgrævɪti]:反重力

1.三合一

  1. 将学生管理系统分为四个模块
    M --> model.py 数据模块
    V --> ui.py 界面模块
    C --> bll.py 业务逻辑模块
    将调用View的代码--> main.py 入口模块
  2. 阅读代码 shopping_oo.py
    体会:面向过程与面向对象的区别
    4 写程序: 输入出生日期(年月日)
    1.算出你已经出生多少天?
    2.算出 你出生那天是星期几?
声明:如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。None#python87.com