#1.random模块介绍
>>> import random
#随机小数
>>> random.random() #(0,1)之间小数
0.2664338663654585
>>> random.uniform(1,3) #(1,3)之间的小数
1.4270147180533838
#随机整数
>>> random.randint(1,5) # [1,5]
>>> random.randrange(1,10,2) # [1,10)的奇数
#随机选择一个返回
>>> random.choice([1,'23',[4,5]]) # #1or23or[4,5]
#随机选择多个返回,返回的个数为函数的第二个参数
>>> random.sample([1,'23',[4,5]],2) # #列表元素任意2个组合
[[4, 5], '23']
#打乱列表顺序
>>> item=[1,3,5,7,9]
>>> random.shuffle(item) # 打乱次序
>>> item
[5, 1, 3, 7, 9]
>>> random.shuffle(item)
>>> item
[5, 9, 7, 1, 3]
#实例: 运用random模块生成验证码
import random
def func1 (n=6,m=True):#随机生成4到6位数字或者字母+数字验证码
code=""
for i in range(n):
num=str(random.randint(0,9))
if m:
upper=chr(random.randint(65,90))
lower=chr(random.randint(97,122))
num=random.choice([num,upper,lower])
code+=num
return code
#调用函数
print(func1())
print(func1(4,False))
#实例 给n个人 发money大小的红包
#方法一
import random
def hongbao(money,n):#money 为钱数 n为分几份
money=money*100 #转换成分
m=random.sample(range(1,money),n-1) #随机取n-1个点
m.insert(0,0) #把0加入列表索引0的位置
m.append(money) #把money加入列表
m.sort() #把m排序
for r in range(n):
yield (m[r + 1] - m[r])/100
for i in hongbao(200,10):
print(i)
#方法二 根据概率
import random
def Bonus(person,money): # 5,200
dict_person_money = {}
for i in range(person):
num = random.randint(1,100) # 99 99 99 99 99
dict_person_money["Person%s"%(i+1)] = num # person1:99
num_sum = 0
for i in dict_person_money:
num_sum += dict_person_money[i] # 5 * 99 = 495
for i in dict_person_money: # 99/495 1/5 * 200 = 40
x =round(dict_person_money[i]/num_sum*money,2)
dict_person_money[i] = '$%s'%x
return dict_person_money
result = Bonus(10,1)
print(result)
#2 time模块介绍
import time
#时间戳—>结构化时间
time.localtime()#time.localtime()中不填值默认为是当前时间
time.gmtime()#time.gmtime()是显示伦敦时间与localtime()差8小时
#结构化时间->字符串时间
time.strftime("%Y-%m-%d %X")
time.strftime("%Y-%m-%d %X",time.localtime())
#字符串时间->结构化时间
time.strptime("2018-8-20","%Y-%m-%d")
#结构化时间->时间戳
time.mktime(time.localtime())
#时间戳->字符串时间
time.ctime(15000000)
time.ctime()#time.ctime()中不填值默认为是当前时间
#结构化时间->字符串时间
time.asctime(time.localtime())
time.asctime()#time.asctime()中不填值默认为是当前时间