1.随机生成银行卡号的字典
1.随机生成100个卡号;卡号以6102009开头, 后面3位依次是 (001, 002, 003, 100),
2.生成关于银行卡号的字典, 默认每个卡号的初始密码为"redhat";
3.输出卡号和密码信息, 格式如下:
卡号 密码
6102009001 000000
s = []
for i in range(100):
s1 = '6101009%.3d' %(i+1)
s.append(s1)
s2={}.fromkeys(s,'redhat')
print('银行卡号\t\t\t密码')
for key, value, in s2.items():
print('%s\t\t\t%s' %(key, s2[key]))
print('%s\t\t\t%s' % (key, value))
2.模拟轮盘抽奖
轮盘分为三部分: 一等奖, 二等奖和三等奖;
轮盘转的时候是随机的,
如果范围在[0,0.08)之间,代表一等奖,
如果范围在[0.08,0.3)之间,代表2等奖,
如果范围在[0, 1.0)之间,代表3等奖,
模拟本次活动1000人参加, 模拟游戏时需要准备各等级奖品的个数
import random
rewardDict = {
'一等奖':(0,0.08),
'二等奖':(0.08,0.3),
'三等奖':(0.3,1.0)
}
def rewardFun():
"""用户得奖等级"""
#生成一个0~1之间的随机数
num = random.random()
#判断随机转盘转的是几等奖
for k,v in rewardDict.items():
if v[0] <= num < v[1]:
return k
resultDict = {}
for i in range(1000):
res = rewardFun()
if res not in resultDict:
resultDict[res] = 1
else:
resultDict[res] += 1
for k,v in resultDict.items():
print(k,v)
3.按要求生成MAC地址
要求:生成100个MAC地址并写入文件中,MAC地址前6位(16进制)为01-AF-3B
01-AF-3B
01-AF-3B-xx
01-AF-3B-xx-xx
01-AF-3B-xx-xx-xx
import string
import random
# print(string.hexdigits)
def creat_mac():
MAC= '01-AF-3B'
# 生成16进制的数
hex_num = string.hexdigits
for i in range(3):
# 从16进制字符串中随机选出两个数字来(返回值是列表)
n = random.sample(hex_num,2)
# 拼接列表中的内容,将小写字母转换成大写
sn ='-' + ''.join(n).upper()
MAC += sn
return MAC
# 主函数:随机生成100个MAC地址
def main():
# 以写的方式打开文件
with open('mac.txt','w') as f:
for i in range(100):
mac = creat_mac()
print(mac)
# 每生成一个MAC地址,存入文件
f.write(mac + '\n')
main()