Python模块

本文介绍了Python模块的创建、使用步骤及内置模块的运用。模块是Python代码组织的基本单元,通过`__name__`属性实现模块的测试与程序入口。在导入模块时,首次会执行模块内容,之后仅提供引用。重点讨论了random、sys和time三个内置模块的功能,如time模块的日期和时间操作,包括时间戳、时间元组和时间格式化等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、介绍

二、创建模块

1.最好在模块中写这些内容

2.__name__:

内置属性      写好了的,可以拿过来用

__name__的作用:

三、使用模块的步骤

1.步骤

2.注意

3.模块的导入方式

四、Python的几个内置模块

1.random模块

2.sys模块

3.time模块

(1)时间:

(2)一些操作:

(3)格式化时间字符串



一、介绍

每一个.py文件(脚本文件)


二、创建模块

1.最好在模块中写这些内容

模块中的属性值
函数单独的功能
相似得功能组合
模块的测试代码

临时使用,导入时不会执行

if __name__='__mian__':

     ....代码1....

     ....代码2....

     ....

  model01.py

print('哈哈哈')
name = 'fx'


def say_hello():
    print('hello')


print('嘿嘿嘿')
print('xxxxx')

model02.py

def test():
    print('model02 test')


_age = 10
name = 'zs'

num = 20
__all__ = ['test', 'num']

 

2.__name__:

内置属性      写好了的,可以拿过来用

(1)当脚本运行的时候,等于'__main__'

(2)当模块运行的时候,等于模块名

model03.py

'''
__name__:内置属性   写好了的,可以拿过来直接使用
       当脚本运行的时候,等于__main__
'''
name = 'ht'
print(__name__)  # __main__


def sum_num(num1, num2):
    ret = num1 + num2
    return ret



import model03

print(model03.name)
# model03
# ht

__name__的作用:

(1)可以当测试代码

name = 'ht'
print(__name__)


def sum_num(num1, num2):
    ret = num1 + num2
    return ret


if __name__ == '__main__':
    print('xxx')  # xxx
if __name__ == '__main__':
    ret = sum_num(2, 5)
    print(ret)  # 7

(2)可以当程序的入口

def test():
    print('xxx1')


def test1():
    print('xxx2')


def test2():
    print('xxx3')


# test()
# test1()
# test2()

# 测试代码可以当做程序的入口
if __name__ == '__main__':
    test()
    test1()
    test2()

三、使用模块的步骤

1.步骤

1.导入模块import 模块名
2.使用模块模块名.变量名或函数名

 

2.注意

(1)第一次导入模块的时候,模块会从上往下执行一遍

(2)模块可以导入很多次,就不会再执行模块中的内容

# 第一次导入模块的时候,模块会从上往下执行一遍
import model01

model01.say_hello()
# 哈哈哈
# 嘿嘿嘿
# xxxxx
# hello
# 又导入一次模块,不会再执行
import model01

name1 = model01.name
print(name1)
# fx

3.模块的导入方式

import 模块名  as 别名如果模块的名称太长,我们可以给这个模块起一个别名
import model01,model02........一行可以导入多个模块
from 模块名 import 变量名或函数名

局部导入方式(从某个模块中导入某个功能)

就近原则:

离调用函数近的那个执行

from 模块名 import 变量名,函数名......支持多行导入
from 模块名 import 变量名或函数名 as 别名通过别名调用所有函数

from 模块名 import *

 

 

 

 

Python不推荐使用

*表示所有内容·

因为 * 你不知道你导入的什么名字,很有可能会覆盖掉你已经定义过的名字,而且可读性非常差

__all__=['','','']

__all__属性:只针对      from 模块名 import *

格式:

建立几个模块的代码:

 

import model01 as m

m.say_hello()
# 哈哈哈
# 嘿嘿嘿
# xxxxx
# hello
# 二.导入多个模块
import model01, model02

model01.say_hello()
model02.test()
# hello
# model02 test
# from.....import
# from 模块名 import 变量名或函数名
# 只能使用test函数,不能使用其他
from model02 import test

test()
# model02 test
# 就近原则:离调用函数近的那个执行
import model02


def test():
    print('demo')


test()  # demo
# 调用自己的,不会调用model02中的
# from 模块名 import 变量名,函数名.....
from model02 import test, num

test()
print(num)  # 20
# 通过别名调用函数
from model02 import test as t

t()  # model02 test

# from ... import *
num = 30
from model02 import *

test()  # model02 test
print(num)  # 20

import model01
import model02
import model01, model02
import model01 as m
import model02 as s

print(m.name)  # fx
print(s.num)  # 20

# __all__:只用在   from 模块名 import *
from model02 import *

print(num)  # 20
# print(_age)  # 因为_age不在__all__里面,所以不能使用
# print(name)#因为name不在__all__里面,所以不能使用

四、Python的几个内置模块

1.random模块

random()产生一个大于等于0且小于1的小数[0.0,1.0)
uniform(a,b)产生指定范围的随机小数 
randint(a,b)产生指定范围的随机整数[a,b]
randrange(开始,停止,步长)产生指定范围的随机数

[a,b)

左闭右开

choice(seq)序列可以为列表和字符串,随机返回序列中的元素 
shuffle()列表      洗牌,把列表打乱,再输出 
'''
一、随机小数
1.random():产生一个大于0且小于1的小数   [0.0,1.0)
2.uniform(a,b):产生指定范围内的随机小数
3.randint(a,b):产生指定范围内的随机整数  a<=N<=b   两个端点值都包含   [a,b]
4.randrange(开始,停止,步长):   左闭右开   [a,b)
5.choice(seq): (列表,字符串)  随机返回序列中的元素
6.shuffle():  (列表)   洗牌  把列表打乱   再输出
  此方法没有返回值
'''
import random

ret = random.random()
print(ret)
ret = random.uniform(1, 4)
print(ret)
ret = random.randint(1, 3)  # 1,2,3
print(ret)
ret = random.randrange(1, 6, 2)  # 1,3,5
print(ret)
lst = ['a', 'b', 'c']
ret = random.choice(lst)
print(ret)
# 6.shuffle():洗牌  把列表打乱   再输出
lst = ['a', 'b', 'c']
random.shuffle(lst)
print(lst)

2.sys模块

version返回解释器的版本号
path返回模块搜索路径

argv

接收命令行下的参数,参数以列表的形式保存

第一个参数是文件的名称

第二个参数开始才是文件要传的值

打印到命令行
import sys

# 返回解释器版本号
print(sys.version)  # 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)]
# 返回模块搜索路径
print(sys.path)
#['D:\\python\\day11', 'D:\\python\\day11', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\python36.zip', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\DLLs', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\lib', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages', 'C:\\Program Files\\JetBrains\\PyCharm 2018.2.2\\helpers\\pycharm_matplotlib_backend']
# 接收命令行(Terminal)下的参数,参数以列表的形式保存
import sys


# 接收命令行(Terminal)下的参数,参数以列表的形式保存
# 第一个参数是文件的名称
# 从第二个参数开始才是文件传的值
ret = sys.argv
ret1 = ret[0]  # 接收文件名称
ret2 = ret[1]  # 接收用户名
ret3 = ret[2]  # 接收密码
print(ret1)
print(ret2)
print(ret3)
if ret2 == 'zs' and ret3 == '123':
    print('登录成功')
else:
    print('登录失败')
# 打印到命令行

3.time模块

(1)时间:

时间戳timestamp表示从1970年00:00:00开始到现在的秒数,返回的是float类型计算机能识别的时间
时间元组strct_time

元组里面有9个元素:年 月 日 时 分 秒 一周的第几天 一年的第几天

夏令时(-1,0,1)

夏令时是人为规定的时间,把时间调早一个小时,让人们早起早睡,

中国已经把夏令时给废弃了,默认为0

用来操作时间的
格式化的时间字符串Format String'1999-12-6'人能看的懂得人能看的懂得


(2)一些操作:

  • 睡眠时间  sleep()
  • 时间戳  time()
  • 时间元组  
  • 本地时间   localtime()
import time

# 睡眠时间
print('程序开始了...')
time.sleep(2)  # 睡5秒
print('程序结束了...')
# 时间戳
ret = time.time()
print(ret / (365 * 24 * 60 * 60))  # 每次运行的时间都不一样
# 时间元组
ret = time.localtime()  # 本地时间
print(ret)

(3)格式化时间字符串

模板:1999-01-11   23:12:12  1999/11/11

%y:年   99

%Y:年   1999

%m:月

%d:日

%H:时

%W:分

%S:秒

%x :当前的日期     月/日/年

%X:当前的时间   00:00:00

import time


# 时间格式化字符串

# 模板:1999-01-11 23:12:12  1999/11/11
#  %y:年  99
#  %Y:年  1999
#  %m: 月  01
#  %d: 日  12
#  %H:时   %M   %S
ret = time.strftime('%Y-%m-%d %H:%M:%S')  # 当前的时间元组,传递的是时间元组
print(ret)
ret = time.strftime('%Y-%m_%d %x')  # %x:当前日期  月/日/年
print(ret)
ret = time.strftime('%Y-%m_%d %X')  # %X:当前时间   时/分/秒
print(ret)

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值