推导式
一、列表推导式
a=[1,2,3,4,5,6]
b=[i*i for i in a ]
print(b)
b=[i**2 for i in a if i%2==0 and i>2]
print(b)
a=[[1,2,3],[4,5,6],[7,8,9]]
b=[a[i][i] for i in range(len(a))]
print(b)
输出结果为:
二、字典推导式
a={"a":"b",1:2}
b={v:k for k,v in a.items()}
print(b)
a={k:v for k,v in zip("abc","123")}
print(a)
a={"a":1,"A":3,"b":4,"B":9,"c":10,"d":99}
x=["a","A","b","B","c"]
b={k.lower():a.get(k.lower(),0)+a.get(k.upper(),0) for k in a.keys() if k in x}
print(b)
输出结果为:
三、集合推导式
a=[1,2,3,4,5,6,1,3,4,2]
b={i*i for i in a}
print(b)
输出结果为:
常用模块
一、random模块
随机小数
1.random()随机产出大于0且小于1的小数
2.uniform(a,b)产生指定范围内的小数
随机整数
1.randint(a,b) 随机产生a,b范围内的整数,包含开头和结尾
2.randrange(start,end,【step】)
产生start到end范围内的整数,包含开头不包含结尾,可以指定步长
随机选择一个数据
1.random.choice(list)随机返回序列中的一个数据
打乱
1.shuffle() 打乱列表数据
验证码程序
def yzm():
code=""
for i in range(4):
sz=chr(random.randint(48,57))
xxzm=chr(random.randint(97,122))
dxzm=chr(random.randint(65,90))
c=random.choice([sz,xxzm,dxzm])
code+=c
return code
print(yzm())
二、time模块
1.time.sleep()
睡眠功能,让程序等待多少秒后再执行
2.时间戳
time.time()
时间戳表示的是从1997年1月1日00:00:00开始到现在的秒值,返回的是float类型
3.时间元组
time.localtime()
获取当前时间元组,可以在括号中传入时间戳,返回的就是指定的时间戳的时间元组
4.时间字符串格式化
time.strftime(“%Y-%m-%d %H:%M:%S”,时间元组 )
5.时间字符串转换为时间元组
time.strptime(时间字符串,字符串对应格式)
6.时间元组转换为时间戳
time.mktime()
7.UTC时间
time.gmtime()返回的是UTC时间比北京时间少8小时
银行卡解冻程序:
while True:
a='2019-07-24 17:04:00'
ap=time.strptime(a,"%Y-%m-%d %H:%M:%S") # 获取冻结时间的时间元组
at=time.mktime(ap) # 获取冻结时间的时间戳
b=time.time() # 获取当前时间的时间戳
c=b-at # 获取已过时间的秒数
d=7*24*3600 # 获取7天的秒数
sytime=d-c # 获取还剩多少时间的秒数
day = int(sytime // (3600*24)) # 剩余天数
hour = int(sytime % (3600 * 24) // 3600) # 剩余时间
minute =int( sytime % 3600 // 60) # 剩余分钟
sec = int(sytime % 60) # 剩余秒数
print("还有{}天{}小时{}分钟{}秒解冻".format(day,hour,minute,sec))
time.sleep(1)
输出结果为: