Python3基础-time、random模块

1、time模块

时间相关的操作,时间有三种表示方式:

  • 时间戳               1970年1月1日之后的秒,即:time.time()
  • 格式化的字符串    2014-11-11 11:11,    即:time.strftime('%Y-%m-%d')
  • 结构化时间          元组包含了:年、日、星期等... time.struct_time    即:time.localtime()
import time

#time()
print("获取当前时间的时间戳:",time.time())    #获取当前时间的时间戳

# mktime(t) :将一个struct_time转换成时间戳
print("mktime()==",time.mktime(time.localtime())) #接收struct_time对象作为参数,返回用秒数来表示时间的浮点数。

#time.localtime([secs])  将一个时间戳转换为当前时区的struct_time。secs参数未提供,则以当前时间为准
print("time.localtime()==",time.localtime()) #获取当前时间的对象
t=time.localtime() #获取当地地时间
print(t.tm_year,t.tm_mon,t.tm_mday)

#time.gmtime()-》将一个时间戳转换为UTC时区(0时区)的struct_time。
print("time.gmtime()==",time.gmtime())

#time.strptime()把一个格式化时间字符串转化为struct_time
print("time.strptime()==",time.strptime('2019/10/28','%Y/%m/%d'))
print("time.strptime()==",time.strptime('2019-10-28 17:40:44','%Y-%m-%d %X'))

#time.strftime()将struct_time转换为字符串时间
print(time.strftime('%Y-%m-%d')) #默认当前时间)
print(time.strftime('%Y-%m-%d %X',time.localtime()))

#time.asctime()把一个表示时间的元组或者struct_time表示为这种形式:'Sun Jun 20 23:21:05 1993'。
# 如果没有参数,将会将time.localtime()作为参数传入。
print("(time.asctime()==",time.asctime())

# 6 ctime([secs]) : 把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为
# None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。
print(time.ctime())  # Sun Sep 11 00:46:38 2016

#在这个函数中,format默认为:"%a %b %d %H:%M:%S %Y"
# 线程推迟指定的时间运行,单位为秒
print(time.sleep(5))

import datetime
'''
datetime.date:表示日期的类。常用的属性有year, month, day
datetime.time:表示时间的类。常用的属性有hour, minute, second, microsecond
datetime.datetime:表示日期时间
datetime.timedelta:表示时间间隔,即两个时间点之间的长度
timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
strftime("%Y-%m-%d")
'''
import datetime
print(datetime.datetime.now())
print(datetime.datetime.now() - datetime.timedelta(days=4))
import  time
import  sys
def view_bar(num, total):
    rate = float(num) / float(total)
    rate_num = int(rate * 100)
    r = '\r%d%%' % (rate_num, )
    sys.stdout.write(r)
    sys.stdout.flush()


if __name__ == '__main__':
    for i in range(0, 101):
        time.sleep(0.1)
        view_bar(i, 100)
demo-进度条

 

2、random 模块

random.random()函数是这个模块中最常用的方法了,它会生成一个随机的浮点数,范围是在0.0~1.0之间。

random.uniform()正好弥补了上面函数的不足,它可以设定浮点数的范围,一个是上限,一个是下限。

random.randint()随机生一个整数int类型,可以指定这个整数的范围,同样有上限和下限值

random.choice()可以从任何序列,比如list列表中,选取一个随机的元素返回,可以用于字符串、列表、元组等。

random.shuffle()如果你想将一个序列中的元素,随机打乱的话可以用这个函数方法。

random.sample()可以从指定的序列中,随机的截取指定长度的片断,不作原地修改

 

import  random

import random

print(random.random())  # (0,1)----float 返回随机生成的一个实数,它在[0,1)范围内。

print(random.randint(1, 3))  # [1,3]

print(random.randrange(1, 3))  # [1,3)

print(random.choice([1, '23', [4, 5]]))  # 返回一个列表,元组或字符串的随机项。

print(random.sample([1, '23', [4, 5]], 2))  # [[4, 5], '23']

print(random.uniform(0, 3))  # 返回(0,3)的一个浮点数

item=[1,3,5,7,9]
random.shuffle(item)
print(item)

#python 随机生成包含字母数字的5位验证码
def Vcode():
    ret=""
    for i in range(5):
        num = random.randint(0,9) #随机从0-9读取一个数字  范围[0-9]
        alf = chr(random.randint(65,90))  #a-z 65-90     小写字母
        Alf = chr(random.randint(97,122)) #A-Z 97-122  大写字母
        ret_one=str(random.choice([num,alf,Alf]))
        ret += ret_one
    return ret


vcode=Vcode()
print(vcode)

 

posted @ 2019-10-28 18:17  槑槑DE  阅读(101)  评论(0编辑  收藏  举报