1.定义

模块:本质是.py结尾的python文件,从逻辑上组织python代码,可以是变量,函数,类,逻辑,目的是实现一个功能,test.py 对应模块名:test

包:从逻辑上组织模块的,本质就是一个目录,必须带有__init__.py文件,导入模块指的是导入这个init文件

2.导入方法

import module_name,module_name2

相当于将所有代码赋值给一个变量,调用的时候需要使用前缀module_name.xxx指定

from module_name import * 

把所有内容导入本地运行,使用的时候可以直接使用变量名、函数名,不需要前缀

from module_name import func as alise

将部分内容导入本地运行,同时使用别名避免冲突,比如某一个函数、变量

 3.import的本质(路径搜索 搜索路径)

  • 把python文件解释一遍
  • 把所有代码赋值给一个变量,
  • 导入包的本质就是解释这个包下面的__init.py__文件
  • import module_name -->module_name.py -->module_name.py的路径-->sys.path

4.导入优化

from module import func / as alise

将重复调用的模块导入到本地,避免重新查找

5.模块分类

a:标准库

b:开源模块

c:自定义模块

 

标准常用库模块:

模块time

协调世界时,又称世界统一时间、世界标准时间、国际协调时间。由于英文(CUT)和法文(TUC)的缩写不同,作为妥协,简称UTC

Epoch指的是一个特定的时间:1970-01-01 00:00:00 UTC

DST,夏令时,1表示是夏令时,0表示不是夏令时

表示方法有3种:

1.时间戳,以秒表示,从1970.1.1 00:00:00开始计秒

2.格式化时间字符串,以各种%格式年月日时分秒表现,也就是平时我们看到的YYYY-mm-DD HH:MM:SS格式

3.元组时间,将9个元素分别赋予固定变量表现,time.struct_time(tm_year=2017, tm_mon=12, tm_mday=5, tm_hour=9, tm_min=9, tm_sec=5, tm_wday=1, tm_yday=339, tm_isdst=0)

  • 时间变量
   timezone -- difference in seconds between UTC and local standard time
    altzone -- difference in  seconds between UTC and local DST time
    daylight -- whether local time should reflect DST
    tzname -- tuple of (standard time zone name, DST time zone name)
>>> time.timezone
-28800
与UTC标准时间相差秒数,早了8个小时 >>> time.altzone -28800
与夏令时相差秒数,没有使用夏令时相差8个小时 >>> time.daylight 0
没有使用夏令时
>>> time.tzname ('CST', 'CST')
标准时区,夏令时区
>>>
  •  时间方法:
   time() -- return current time in seconds since the Epoch as a float
    clock() -- return CPU time since process start as a float
    sleep() -- delay for a number of seconds given as a float
    gmtime() -- convert seconds since Epoch to UTC tuple
    localtime() -- convert seconds since Epoch to local time tuple
    asctime() -- convert time tuple to string
    ctime() -- convert time in seconds to string
    mktime() -- convert local time tuple to seconds since Epoch
    strftime() -- convert time tuple to string according to format specification
    strptime() -- parse string to time tuple according to format specification
    tzset() -- change the local timezone
>>> time.time()
1512436325.3465307
返回距离1970.1.1零秒的浮点型秒数
>>> time.clock()
0.025913
返回自CPU启动的浮点型时间
>>> time.sleep(1)
休眠1秒
>>> time.gmtime(time.time())
time.struct_time(tm_year=2017, tm_mon=12, tm_mday=5, tm_hour=1, tm_min=13, tm_sec=11, tm_wday=1, tm_yday=339, tm_isdst=0)
将时间戳转换成UTC元组,我们是UTC+8,比UTC快8个小时
>>> time.localtime()
time.struct_time(tm_year=2017, tm_mon=12, tm_mday=5, tm_hour=9, tm_min=14, tm_sec=23, tm_wday=1, tm_yday=339, tm_isdst=0)
将本地时间戳转换成本地元组时间
>>> time.asctime(time.localtime())
'Tue Dec  5 09:14:13 2017'
将元组时间转换成字符串时间
>>> time.ctime()
'Tue Dec  5 09:14:59 2017'
将时间戳转换成字符串时间
>>> time.mktime(time.localtime())
1512436704.0
将本地元组时间转换成UTC时间戳
>>> time.strftime('%Y-%m-%d',time.localtime())
'2017-12-05'
格式化时间,先格式,后时间,格式-元组,格式先后顺序无关
>>> time.strptime('2017-12-05','%Y-%d-%m')
time.struct_time(tm_year=2017, tm_mon=5, tm_mday=12, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=132, tm_isdst=-1)
时间解析,先时间,后解析,时间-元组,格式先后顺序有关,格式化格式对应字符串格式
  • 分类:

时间戳方法:time,clock,mktime

元组方法:gmtime,localtime,strptime

字符串方法:asctime,ctime,strftime

  • 时间元组含义
      year (including century, e.g. 1998)
      month (1-12)
      day (1-31)
      hours (0-23)
      minutes (0-59)
      seconds (0-59)
      weekday (0-6, Monday is 0)
      Julian day (day in the year, 1-366)
      DST (Daylight Savings Time) flag (-1, 0 or 1)
    If the DST flag is 0, the time is given in the regular time zone;
    if it is 1, the time is given in the DST time zone;
    if it is -1, mktime() should guess based on the date and time.
  •  时间转换

1.字符串->元组

>>> string_to_struct = time.strptime("2017/12/05","%Y/%m/%d")
>>> string_to_struct1 = time.strptime("2017/12/05 10:10:10","%Y/%m/%d %H:%M:%S")
>>> string_to_struct
time.struct_time(tm_year=2017, tm_mon=12, tm_mday=5, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=339, tm_isdst=-1)
>>> string_to_struct1
time.struct_time(tm_year=2017, tm_mon=12, tm_mday=5, tm_hour=10, tm_min=10, tm_sec=10, tm_wday=1, tm_yday=339, tm_isdst=-1)

2.元组->时间戳

>>> string_to_struct
time.struct_time(tm_year=2017, tm_mon=12, tm_mday=5, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=339, tm_isdst=-1)
>>> time.mktime(string_to_struct)
1512403200.0
>>> time.mktime(string_to_struct1)
1512439810.0

3.时间戳->元组

time.gmtime(time.time() )
time.struct_time(tm_year=2017, tm_mon=12, tm_mday=5, tm_hour=2, tm_min=24, tm_sec=22, tm_wday=1, tm_yday=339, tm_isdst=0)
>>> time.gmtime(time.time()-24*60*60)
time.struct_time(tm_year=2017, tm_mon=12, tm_mday=4, tm_hour=2, tm_min=25, tm_sec=55, tm_wday=0, tm_yday=338, tm_isdst=0)

4.元组->字符串:格式化元组

>>> time.gmtime()
time.struct_time(tm_year=2017, tm_mon=12, tm_mday=5, tm_hour=2, tm_min=27, tm_sec=57, tm_wday=1, tm_yday=339, tm_isdst=0)
>>> time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime())
'2017-12-05 02:28:10'

5.strftime与strptime

strftime('fomat',struct) =string  格式,元组=格式化字符串

strptime('string','format) = struct 格式化字符串,格式=元组

6.相互间转换路径

python3.x 基础五:模块

python3.x 基础五:模块

  •  格式化含义
%y 两位数的年份表示(00-99%Y 四位数的年份表示(000-9999%m 月份(01-12%d 月内中的一天(0-31%H 24小时制小时数(0-23%I 12小时制小时数(01-12%M 分钟数(00=59%S 秒(00-59%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身 
  •  日期时间加减
>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2017, 12, 5, 12, 8, 55, 706396)
>>> datetime.date.fromtimestamp(time.time())
datetime.date(2017, 12, 5)
>>> print(datetime.datetime.now() + datetime.timedelta(3))
2017-12-08 12:10:32.978267
默认是天数 >>> print(datetime.datetime.now() + datetime.timedelta(hours=3)) 2017-12-05 15:10:40.681483 >>> print(datetime.datetime.now() + datetime.timedelta(hours=+3)) 2017-12-05 15:10:49.099027
+也行 >>> print(datetime.datetime.now() + datetime.timedelta(minutes=30)) 2017-12-05 12:40:56.701895 >>> c_time = datetime.datetime.now() >>> c_time datetime.datetime(2017, 12, 5, 12, 11, 8, 369987) >>> c_time.replace(minute=3,hour=2) datetime.datetime(2017, 12, 5, 2, 3, 8, 369987) >>> c_time.replace(hour=2,minute=3) datetime.datetime(2017, 12, 5, 2, 3, 8, 369987) >>>

 模块random

choice(seq) method of Random instance
        Choose a random element from a non-empty sequence.

  • 非空序列返回一个随机元素
  • >>> random.choice(range(10))
    9

random(...) method of Random instance

random() -> x in the interval [0, 1).

  • 返回左闭右开,默认是0到1之间的浮点数
  • >>> random.random()
    0.41816400018068844
    >>> random.random()
    0.035185160469280996
    >>> random.random()
    0.9860034118082212
    View Code

相关文章: