基本使用
python内置的有random 模块,可以生成随机的数字。
基本的使用方式,跟其他 open ,print 不太一样,需要 import 导入。
import random
# 生成一个 0-1 之间的随机小数
n = random.random()
print(f"随机小数 {n}")
# 生成随机的1-10 之间的整数
n1 = random.randint(1,10)
print(f"10以内的随机数字:{n1}")
# 生成随机的1-10 之间的随机小数
print(n*n1)
- random() 生成随机的小数
- randint(1,10) 1-10 之间随机整数。
生成随机手机号
生成130 -139 号段的手机号
import random
# 生成130 -139 号段的手机号
phone = random.randint(13000000000,13999999999)
print(phone)
生成多个号段的手机号
比如支持的手机号号段
pre_phone= ["130","131","132","133","134","135","136","137","138","139",
"170","172","179",
"150","151","155","156",
"188",
"199"]
分析
确定前三位
手机号的前三位已经确定,可以从 pre_phone 列表中随机取一个值。
借助 len() 获取列表的长度。
使用random 生成一个随机的索引,通过索引值获取前缀。
import random
pre_phone= ["130","131","132","133","134","135","136","137","138","139",
"170","172","179",
"150","151","155","156",
"188",
"199","190"]
# len统计 list 的长度
count = len(pre_phone) # 19
print(f"列表中总共有{count}个值")
# 随机去取一个号段, 可以通过随机索引
index = random.randint(0,count-1) #生成随机的索引值, 索引值最大不能为19,
print(f"随机抽取一个索引 {index}")
print(f"对应的值为{pre_phone[index]}")
随机生成后8位
前三位可以通过随机的方式获取,后8位数字 也可以通过随机的方式来获取。
使用 for 循环 循环 8次,每次生成0-9 之间的一个数字。
import random
phone_8 = ""
for i in range(8): # 循环8次
n = random.randint(0,9) # 每次循环生成一个0-9随机数字
phone_8 = phone_8+ str(n) # 字符串进行拼接
#循环执行完毕
print(f"后8位{phone_8}")
生成的数据组合
将前3位和后8位 拼接 在一起就形成了11位的电话。
import random
pre_phone= ["130","131","132","133","134","135","136","137","138","139",
"170","172","179",
"150","151","155","156",
"188",
"199"]
# len统计 list 的长度
count = len(pre_phone) # 19
print(f"列表中总共有{count}个值")
# 随机去取一个号段, 可以通过随机索引
index = random.randint(0,count-1) #生成随机的索引值, 索引值最大不能为19,
print(f"随机抽取一个索引 {index}")
print(f"对应的前3位为{pre_phone[index]}")
# 将前三位数据 保存到变量中
phone_3 = pre_phone[index]
# 后8位
phone_8 = ""
for i in range(8): # 循环8次
n = random.randint(0,9) # 每次循环生成一个0-9随机数字
phone_8 = phone_8+ str(n) # 字符串进行拼接
#循环执行完毕
print(f"后8位{phone_8}")
# 将字符串拼接在一起
phone = phone_3+phone_8
print(f"生成随机电话号码: {phone}")
扩展
随机生成 n 个手机号 并写入到文件中
import random
# 随机生成n个值
n = random.randint(1,10000)
# 定义空的列表,专门用来存放生成的手机号
all_phone = []
# 循环 n次
for i in range(n):
# 每次循环,生成一个随机的手机号
phone = random.randint(13000000000,13999999999)
# 将生成的随即号码放在列表中
all_phone.append(phone)
# 循环结束,查看生成的所有手机号。
print(all_phone)
# 将生成所有手机号码 存放到文件中
with open('data.txt',mode='w',encoding='utf8') as f:
# 循环所有的手机号码
for p in all_phone:
# 写入文件
f.write(f'{p}\n')
import random
n = random.randint(1,100)
all_phone = []
for i in range(n):
phone = random.randint(13000000000,13999999999)
all_phone.append(phone)
# 随机密码的个数
m = random.randint(1,100)
# 定义空的列表存放生成的密码
all_passwd = []
# 循环m次
for i in range(m):
# 每次生成一个密码
passwd = random.randint(100000,999999)
# 将密码保存到列表中
all_passwd.append(passwd)
print(all_phone)
# 查看所有的密码
print(all_passwd)
with open('data.txt',mode='w',encoding='utf8') as f:
for p in all_phone:
# 循环每个密码
for p2 in all_passwd:
# 写入到文件中
f.write(f'{p},{p2}\n')