创建模块
每一个以.py作为结尾的python文件都是一个模块
不要与系统中已经存在的模块名重名
模块文件去掉后面的.py扩展名即为模块名
模块的导入
为什么要导入模块 简化代码 提高效率 1.import random
2. from random import randint
3 import random as rd 别名
Return返回值
return 表示函数的终 值 默认加 return None
模块的加载
一个模块只会被加载一次
导入模块的特性
当模块直接执行时__name__等于__main__
当模块被其他模块执行时__name__ 就是该模块的名字
防止在被其他文件导入时显示多余的程序主体部分。
随机密码string模块
string.digits生成所有数字
string.ascii_letters 生成所有大小写字母
def suijishu(n=8):
import random,string
sum=""
for i in range(n):
suiji = random.choice(string.digits+string.ascii_letters)
sum +=suiji
return sum
if __name__ == '__main__':
print(suijishu(5))
Time模块
时间戳 从1970年1月 1日到此时此刻所经历的秒数 结构化时间 (struct_time)
由9个元素组成 结构化时间中的属性含义:
tm_year:年, tm_mon:月, tm_mday:日, tm_hour:时, tm_min:分, tm_sec:秒, tm_wday:星期(0-6,周日为0), tm_yday:今年第几天, tm_isdst:是否夏令时
返回结构化的函数有gmtime(),localtime(),strptime()
1.time.localtime([secs]):将一个时间戳转换为当前时区的结构化时间struct_time
2. time.gmtime([secs]):和localtime()方法类似,gmtime()方法是将一个时间戳转换为UTC时区(0时区)的struct_time。
3. time.time():返回当前时间的时间戳
4. time.mktime(t):将一个struct_time转化为时间戳。
5. time.sleep(secs):线程推迟指定的时间运行。单位为秒。
6.time.strftime(format[, t]):把一个代表时间的元组或者struct_time(如由time.localtime()和time.gmtime()返回)转化为格式化的时间字符串 如果为指定t ,将传传入localtime()
7.time.strptime(string[, format]):把一个格式化时间字符串转化为struct_time。实际上它和strftime()是逆操作。
时间样式
%Y年%m月%d日%H时%M分%S秒%Z时区的名字
%w一个星期中的第几天 (0-6)0是星期日
只有结构化时间可以相互比较,越靠后的时间越大
一 、案列:一段时间段的日志否和要求的去取出来
import time
t9=time.strptime("2030-01-02 09:00:00","%Y-%m-%d %H:%M:%S")
print(t9)
t12=time.strptime("2030-01-02 12:00:00","%Y-%m-%d %H:%M:%S")
print(t9)
with open('/opt/myweb.log',mode="r") as fobj:
for line in fobj.readlines():
t=time.strptime(line[:19],'%Y-%m-%d %H:%M:%S')
if t9<= t <=t12:
print(line,end="")
-
链式赋值
a=b=20 底层是两个 内存的存储空间c=d=[1,2,3]
c.append(123)
c,d都变了 共用一组内存可变的类型
2.变量的多元赋值
变量的个数与值的个数相等
e,f=”hello”,100
g,h=”13″ #这个右边为可迭代对象
x,y=[123,456]
3.交换两个变量的值
a,b=10, 20
a,b=b,a
print(a,b)此时发现已经改变
内建函数
list()把可迭代对象转换为列表
str()把obj对象转换为字符串
tuple()把一个可迭代对象转换成一个元组对象