代码块

模块
什么是模块?
模块能干什么?
1.文件化管理 提高了可读性,避免重复代码
2.拿来就用(避免反复造轮子) Python中类库特别多

定义一个模块
一个文件就是一个模块 (模块就是一个工具箱 工具:函数)

import 导入 拿test工具箱

impor时会做三件事:
1.将test.py文件中所有代码取到当前文件
2.当前文件开辟空间
3.等待被调用
import导入同一个文件模块时只执行一次

import导入同一个模块名时,只执行一次
import test #导入 拿test工具箱
import test #导入 拿test工具箱
import test #导入 拿test工具箱

import test
test.t1()
test.t2()
test.t3() 拿大指定的工具

import test #只能将整个工具箱拿出来
a = test.t1
b = test.t2
a()
b()

import test as t #工具箱名字过长可以其别名
t.t1()

import test #导入模块不能加后缀名

飘红线不代表报错

from test import t1 as t 从test工具箱中将t1这个工具拿出来命名为t

def t1():
print("高级工程师")
t1()
t()

import 和 from的区别:
1.from只能执行导入的工具
2.import能够执行整个模块中的所有的功能
3.from容易将当前文件中定义的功能覆盖
4.from 比 import灵活

import 只能导入当前文件下的模块
import 后边不能加点操作

from day15 import ttt
from day15.ttt import func
func()

import和from 使用的都是相对路径

import sys #python解释交互接口
print(sys.path)
sys.path.append("C:\Users\oldboy\Desktop")
print(sys.path)

模块导入顺序:
sys.path.append(r"C:\Users\oldboy\Desktop")
内存 > 内置 > 第三方> 自定义

sys.path.insert(0,r"C:\Users\oldboy\Desktop")

内存 > 自定义 > 内置 > 第三方

模块的两种方法:if__name__=="__mail"
1.当做模块被导入 import from
2.当做脚本被执行

import test

只有py文件当做模块被导入时,字节码才会进行保留

以后你们导入模块会产生的坑

1.注意自己定义模块的名字
import abcd
abcd.func()

2.注意自己的思路-------- 循环导入时建议 导入模式放在需要的地方

from test import b

a = 10

print(b)

import test,c,abcd 不建议这样导入

test.t1()

print(c.ac)

abcd.func()

import test

import c

import abcd # 建议这样导入

import from

from test import * # 拿整个工具箱

t1()

t2()

print(tt)

通过__all__ 控制要导入的内容 文件顶端__all__=["需要的文件工具"]

time模块:
import time 内置模块--标准库
print(time.time())#时间戳 浮点数 秒
time.sleep(3) #秒
将时间戳转化为结构化时间
print(time.localtime(time.time())) #命名元祖
print(time.localtime())[0])

print(time.localtime(time.time())).tm_year)
将结构化时间转化成字符串

time1 = time.localtime()
print(time.strftime("%Y-%m-%d %H:%M:%S",time1))

将字符串转化成结构化时间
str_time = "2018-10-1 10:11:12"
time1 = time.strptime(str_time,"%Y-%m-%d %H:%M:%S")

将结构化时间转换成时间戳
print(time.mktime(time_j))

str_time = "2016-10-1 10:11:12"
time_int = time.time() - time.mktime(time.strptime(str_time,"%Y-%m-%d %H:%M:%S"))
print(time.localtime(time_int))

总结:
time.time() 时间戳
time.sleep() 睡眠
time.localtime() 时间戳转结构化
time.strftime() 结构化转字符串
time.strptime() 字符串转结构化
time.mktime() 结构化转时间戳
%Y 年
%m 月
%d 日
%H 时间
%M 分钟
%S 秒

from datetime import datetime,timedelta
print(datetime.now()) #获取当前时间

print((2018,10,1,10,11,12) - datetime(2011,11,1,20,10,10)))
指定时间

将对象转换成时间戳
d = datetime.now()
print(d.timestamp())

将时间戳转换成对象
import time
f_t = time.time()
print(datetime.fromtimetamp(f_t))

将对象转换成字符串
s = "2018-12-31 10:11:12"
print(datetime.strptime(s,"%Y-%m-%d %H:%M:%S"))

可以进行加减运算

from datetime import datetime,timedelta

print(datetime.now() - timedelta(days=1))

print(datetime.now() - timedelta(hours=1))

import random

print(random.randint(1,50))

选择1-50之间随机的整数

print(random.random())

0-1 之间随机小数,不包含1

print(random.uniform(1,10))

1- 10 之间随机小数,不包含10

print(random.choice((1,2,3,4,5,7)))

#从容器中随机选择一个

print(random.choices((1,2,3,4,5,7),k=3))

从容器中随机选择3个元素,以列表的形式方式,会出现重复元素

print(random.sample((1,2,3,4,5,7),k=3))

从容器中随机选择3个元素,以列表的形式方式,不会出现重复元素

print(random.randrange(1,10,2)) # 随机的奇数或随机的偶数

lst = [1,2,3,4,5,6,7]

random.shuffle(lst)

# 洗牌 将有序的数据打散

print(lst)

posted @ 2019-08-22 23:53  熊华  阅读(148)  评论(0编辑  收藏  举报