模块:用一坨代码实现了某个功能的代码集合。
类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合。而对于一个复杂的功能,可能需要多个函数才能完成(函数又可以在不同的.py文件中),n个.py文件组成的代码集合就成为模块。
如:os是系统相关的模块;file是文件操作相关的模块。
模块分为三种:自定义模块、内置标准模块(又称标准库)、开源模块
time&datetime模块
#!/usr/bin/env python #-*- coding:utf-8 -*- #Author: Tony Cabel import time,datetime print(time.clock()) #返回处理器时间,3.3开始已废弃 , 改成了time.process_time() # 测量处理器运算时间,不包括sleep时间,不稳定,mac上测不出来 print(time.altzone/3600) #打印时区 print(time.asctime()) #返回时间格式"Mon Feb 20 15:01:02 2017", t=time.localtime() #返回本地时间 的struct time对象格式 print(time.localtime(time.time()+3*3600)) #本地时间后三个小时的时间 print(t) print(t.tm_year,t.tm_yday) print(time.time()) #时间戳,从1970年一月一日至今的秒数 print(time.gmtime()) #返回UTC时间 print(time.ctime()) #返回Fri Aug 19 12:38:29 2016 格式, t2=time.strptime("2017-2-20 11:30","%Y-%m-%d %H:%M") #将 日期字符串 转成 struct时间对象格式 t2_stamp=time.mktime(t2) #将struct时间对象转成时间戳 print(t2) t3=time.localtime(t2_stamp) #将本地时间戳转换成struct_time格式 t3_str=time.strftime("%Y-%m-%d-%H-%M.log",t3) #将utc struct_time格式转成指定的字符串格式 print(t3_str) t4=datetime.datetime.now() #返回当前时间,格式:2017-02-20 15:01:02.487076 print(t4) t4_fr=t4-datetime.timedelta(days=3) #返回三天前的这个时候的时间,也可以小时分钟秒 print(t4_fr) print(t4.replace(year=2016,month=3,hour=12)) #将当前时间进行任意替换
时间转换路径:
Directive | Meaning | Notes |
---|---|---|
%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. | |
%d |
Day of the month as a decimal number [01,31]. | |
%H |
Hour (24-hour clock) as a decimal number [00,23]. | |
%I |
Hour (12-hour clock) as a decimal number [01,12]. | |
%j |
Day of the year as a decimal number [001,366]. | |
%m |
Month as a decimal number [01,12]. | |
%M |
Minute as a decimal number [00,59]. | |
%p |
Locale’s equivalent of either AM or PM. | (1) |
%S |
Second as a decimal number [00,61]. | (2) |
%U |
Week number of the year (Sunday as the first day of the week) as a decimal number [00,53]. All days in a new year preceding the first Sunday are considered to be in week 0. | (3) |
%w |
Weekday as a decimal number [0(Sunday),6]. | |
%W |
Week number of the year (Monday as the first day of the week) as a decimal number [00,53]. All days in a new year preceding the first Monday are considered to be in week 0. | (3) |
%x |
Locale’s appropriate date representation. | |
%X |
Locale’s appropriate time representation. | |
%y |
Year without century as a decimal number [00,99]. | |
%Y |
Year with century as a decimal number. | |
%z |
Time zone offset indicating a positive or negative time difference from UTC/GMT of the form +HHMM or -HHMM, where H represents decimal hour digits and M represents decimal minute digits [-23:59, +23:59]. | |
%Z |
Time zone name (no characters if no time zone exists). | |
%% |
A literal '%' character. |
random模块
import random print(random.random()) #打印一个随机小数,小数点后十六位 print(random.randint(1,3)) #随机打印一个从1到3的数,包括3 print(random.randrange(1,10)) #在range范围内打印一个随机数 import string src=string.ascii_letters+string.digits #生成随机密码的一种方式 print(''.join(random.sample(src,6))) checkcode='' #另一种生成随机验证码方式 for i in range(6): current=random.randint(0,6) if current != i: temp=chr(random.randint(65,90)) else: temp=random.randint(0,9) checkcode+=str(temp) print(checkcode)
备注:用random.sample不会生成重复的字符,也就是说第一种方式生成的验证码中不会有重复的字符,而第二种方式生成的可能会有重复的字符。