Python学习笔记 Day 5
模块
定义
模块:用来从逻辑上组织Pthon代码(变量,函数,类,逻辑,实现一个功能),本质是.py结尾的Python文件
包(package):本质是一个目录(必须带有一个__init__.py文件)
导入方法
import sys ,os,module_test_1
#导入单多个
from module_test_1 import *
#引入模块下全部代码,
#当后部有冲突的函数时,import内的旧函数的地址会被新的覆盖
from module_test_1 import logger() as a
a.longger()#如此可以避免楼上的情况
from folder import module
#从???路径引入模块
import本质
实质是把,py文件解释了一遍,导入包(package)实质是执行包里的__init__.py的文件
import module_name---->module.py----->module.py的路径----->sys.path----->当Import的.py文件不在当前文件的系统路径,要用sys.path.append()加进当前文件路径到系统路径。
import 包时,因为只引入__init__.py文件,故要用在包内其他的.py文件模块,要在__init__.py要import 上,然后在其他地方可用“包名.模块名.函数名”引用
a=os.path.dirname(os.path.abspath(""))
sys.path.append(a)
import module
#实质:把模块的代码解释了一遍,并把结果给了模块名变量,module=all code;
from module_test_1 import name
#导入的是一个函数或变量,使用时不用加引子module_test_1
print name#直接使用
导入优化
from module import test
#此种方法可以不用每次都从路径找,当多处引用时,可以加快运行
模块分类
A:标准库
- time,datetime,random,os,sys
(1)、time
时间格式有:
时间戳,元组(Tuple),格式化字符串
附上格式化字符串的代码
%Y Year with century as a decimal number.
%m Month as a decimal number [01,12].
%d Day of the month as a decimal number [01,31].
%H Hour (24-hour clock) as a decimal number [00,23].
%M Minute as a decimal number [00,59].
%S Second as a decimal number [00,61].
%z Time zone offset from UTC.
%a Locale's abbreviated weekday name.
%A Locale's full weekday name.
%b Locale's abbreviated month name.
%B Locale's full month name.
%c Locale's appropriate date and time representation.
%I Hour (12-hour clock) as a decimal number [01,12].
%p Locale's equivalent of either AM or PM.
import time ,datetime
print (time.time())#时间戳,(1970纪元后经过的浮点秒数)
print (time.localtime())#当前时间
print (time.timezone)#当前地区的时间戳(中国,东八区,UTC+8)
time.sleep(3)#睡眠几秒
time.gmtime(1582723967)
#把时间戳换元组形式,0时区的,无参数默认0时区当前时间戳
#strftime("格式","元组,即struct_time")--->格式化的字符串
#strptime("格式化的字符串","一一对应的格式")--->元组
运行如下:
1582723967.062141
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=26,
tm_hour=21, tm_min=32, tm_sec=47, tm_wday=2, tm_yday=57,
tm_isdst=0)
#tm_wday=2,一周中的第几天(MON=0),tm_yday=57,一年中的第几天,tm_isdst=0,是否为夏令时
-28800
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=26, tm_hour=13, tm_min=32, tm_sec=47, tm_wday=2, tm_yday=57, tm_isdst=0)
运用:
import time ,datetime
x=time.localtime(1582723967)#时间戳转元组,还有gmtime()。
print(x.tm_year)
m=time.mktime(x)#元组转格式化的字符串
print (m)
j=time.strftime("%Y...%m=%d:%H-%M-%S",time.localtime())
#元组转格式化的字符串,%?后对应找后边的数据
print(j)
k=time.strptime("2020...02=26:22-23-29","%Y...%m=%d:%H-%M-%S")
#格式化的字符串转元组
print(k)
b=time.asctime(time.gmtime(1823456789))
#时间元组转格式化字符串
c=time.ctime(1823456789)
#时间戳转格式化字符串
print(b)
print(c)
运行如下:
2020
1582723967.0
2020...02=26:22-43-10
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=26, tm_hour=22, tm_min=23, tm_sec=29, tm_wday=2, tm_yday=57, tm_isdst=-1)
Wed Oct 13 19:46:29 2027
Thu Oct 14 03:46:29 2027
(2)、datetime
是Time的高级封装
a=datetime.datetime.now()+datetime.timedelta(3)
#当前时期前几天
print(a)
b=datetime.datetime.now()+datetime.timedelta(-3)
#当前时期后几天
print(b)
c=datetime.datetime.now()+datetime.timedelta(hours=-3)
#当前时间往前/后几小时,分,秒
print(c)
运行如下 :
2020-03-01 14:09:37.709680
2020-02-24 14:09:37.709680
2020-02-27 11:09:37.709680
(3)、random
使用方法:
import time ,datetime,random
print (random.random())
#打印随机值
print(random.randint(1,3))
#打印随机1-3值,有3,不同Range(3),这个无3
print(random.randrange(0,3))
#打印随机1-3值,有3,不同Range(3)