python随机产生手机号和邮箱号

1、写个一函数,这个函数的功能是,传入一个数字,产生N条手机号,产生的手机号不能重复。
[150,189,188,170,132,150,186]
def phone(500):
phone.txt
2、写一个函数,这个函数的功能是,传入一个数字,产生N条邮箱,产生的手机号不能重复。
邮箱前面的长度是6-12之间,产生的邮箱必须包含大写字母、小写字母、数字和特殊字符
[163.com,qq.com,sina.com,126.com]

1、

def random_PhoneNumber(N):
import random
l = []
for i in range(N):
s=[150,189,188,170,132,150,186]
h=random.choice(s)
eight=random.randint(10000000,99999999)
p="{}{}".format(h,eight)
if p not in l:
l.append(p)
else:
i -= 1
m=set(l)
phone = '\n'.join(l)
with open('phone.txt', 'w+') as f:
f.writelines(phone)
return len(m)
print(random_PhoneNumber(500))

2、

def random_email(N):
import string
import random
m = []
l = []
l.append(string.digits)
l.append(string.ascii_letters)
l.append(string.punctuation)
l=''.join(l)
i=0
while i < N:
s = ['@163.com','@qq.com','@sina.com','@126.com']
h = random.choice(s)
rang = random.randint(6,12)
randomNumber = "".join(random.choice(l) for j in range(rang))
email = set(randomNumber)
lowletters = set(string.ascii_lowercase)
upperletters = set(string.ascii_uppercase)
digits = set(string.digits)
punctuation = set(string.punctuation)
if email&lowletters and email&digits and email&punctuation and email&upperletters:
p="{}{}".format(randomNumber,h)
if p not in m:
m.append(p)
i += 1
n=set(m)
phone = '\n'.join(m)
with open('email.txt', 'w+') as f:
f.writelines(phone)
return len(n)
print(random_email(500))

 

转载于:https://www.cnblogs.com/arraon/p/10029856.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是完整的登录和注册界面的代码,其中包括了你提到的所有要求。需要注意的是,这里只是一个简单的示例,实际项目中可能需要更加完善的验证和安全性措施。 ```python import tkinter as tk import random import re # 用户名和密码的字典,实际使用时可以从数据库中读取 USERS = { "admin": "admin", "user1": "123456", "user2": "abcdef" } # 生成6位随机验证码 def generate_verification_code(): code = "" for i in range(6): code += str(random.choice(range(10))) if random.choice(range(2)) == 0 else chr(random.choice(range(65, 91))) return code # 登录函数 def login(): username = user_name.get() password = password_var.get() code = verification_code.get() if not USERS.get(username): tk.messagebox.showerror("登录错误", "用户名不存在!") elif USERS[username] != password: tk.messagebox.showerror("登录错误", "密码错误!") elif code != verification_code_var: tk.messagebox.showerror("登录错误", "验证码错误!") else: window.destroy() # 销毁登录窗口 show_main_window() # 显示主界面 # 显示主界面 def show_main_window(): main_window = tk.Tk() main_window.title("图书管理系统") main_window.geometry("400x200") # 创建菜单栏 menubar = tk.Menu(main_window) # 创建一级菜单 system_menu = tk.Menu(menubar, tearoff=0) book_management_menu = tk.Menu(menubar, tearoff=0) reader_management_menu = tk.Menu(menubar, tearoff=0) borrow_return_menu = tk.Menu(menubar, tearoff=0) reservation_menu = tk.Menu(menubar, tearoff=0) help_menu = tk.Menu(menubar, tearoff=0) # 将一级菜单添加到菜单栏中 menubar.add_cascade(label="系统", menu=system_menu) menubar.add_cascade(label="图书管理", menu=book_management_menu) menubar.add_cascade(label="读者管理", menu=reader_management_menu) menubar.add_cascade(label="借还书管理", menu=borrow_return_menu) menubar.add_cascade(label="预约管理", menu=reservation_menu) menubar.add_cascade(label="帮助", menu=help_menu) # 创建二级菜单 help_menu.add_command(label="联系我们") help_menu.add_command(label="版本", command=lambda: tk.messagebox.showinfo("版本信息", "当前版本为 v1.0")) # 将菜单栏添加到窗口中 main_window.config(menu=menubar) main_window.mainloop() # 注册函数 def register(): def do_register(): username = username_var.get() password = password_var.get() email = email_var.get() phone = phone_var.get() gender = gender_var.get() # 验证用户名是否符合规则 if not re.match(r"^[a-zA-Z0-9]{6,10}$", username): tk.messagebox.showerror("注册错误", "用户名必须由6-10位字母或数字组成!") return # 验证密码是否符合规则 if not re.match(r"^[a-zA-Z0-9+*~-]{8,12}$", password): tk.messagebox.showerror("注册错误", "密码必须由8-12位字母、数字或特殊符(+、-、*、~)组成!") return # 验证邮箱是否符合规则 if not re.match(r"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$", email): tk.messagebox.showerror("注册错误", "邮箱格式不正确!") return # 验证手机号是否符合规则 if not re.match(r"^\d{11}$", phone): tk.messagebox.showerror("注册错误", "手机号必须为11位数字!") return # 这里可以将用户信息插入到数据库中 tk.messagebox.showinfo("注册成功", "注册成功!") register_window.destroy() register_window = tk.Tk() register_window.title("注册页面") register_window.geometry("300x250") # 添加标签和输入框 username_var = tk.StringVar() password_var = tk.StringVar() email_var = tk.StringVar() phone_var = tk.StringVar() gender_var = tk.StringVar() tk.Label(register_window, text="用户名:").place(x=50, y=30) tk.Entry(register_window, textvariable=username_var).place(x=110, y=30) tk.Label(register_window, text="密码:").place(x=50, y=70) tk.Entry(register_window, textvariable=password_var, show="*").place(x=110, y=70) tk.Label(register_window, text="邮箱:").place(x=50, y=110) tk.Entry(register_window, textvariable=email_var).place(x=110, y=110) tk.Label(register_window, text="手机号:").place(x=50, y=150) tk.Entry(register_window, textvariable=phone_var).place(x=110, y=150) tk.Label(register_window, text="性别:").place(x=50, y=190) tk.Radiobutton(register_window, text="男", variable=gender_var, value="男").place(x=110, y=190) tk.Radiobutton(register_window, text="女", variable=gender_var, value="女").place(x=160, y=190) # 添加注册按钮 tk.Button(register_window, text="注册", command=do_register).place(x=120, y=220) register_window.mainloop() # 创建登录窗口 window = tk.Tk() window.title("登录页面") window.geometry("300x200") # 添加标签和输入框 user_name = tk.StringVar() password_var = tk.StringVar() verification_code_var = generate_verification_code() verification_code = tk.StringVar() verification_code.set(verification_code_var) tk.Label(window, text="用户名:").place(x=50, y=30) tk.Entry(window, textvariable=user_name).place(x=110, y=30) tk.Label(window, text="密码:").place(x=50, y=70) tk.Entry(window, textvariable=password_var, show="*").place(x=110, y=70) tk.Label(window, text="验证码:").place(x=50, y=110) tk.Entry(window, textvariable=verification_code).place(x=110, y=110) tk.Label(window, text=verification_code_var).place(x=200, y=110) # 添加登录和注册按钮 tk.Button(window, text="登录", command=login).place(x=50, y=150) tk.Button(window, text="注册", command=register).place(x=150, y=150) window.mainloop() ``` 这个代码中实现了登录界面和注册界面的所有要求,包括了验证码的生成和验证、用户名和密码的验证、菜单栏的创建和弹窗提示信息的显示等。需要注意的是,注册时的输入框验证只是一个简单的示例,实际项目中可能需要更加完善的验证和安全性措施。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值