文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python实例--随机密码生成器

2023-01-31 07:12

关注

      最近在学习python,抽空看了看图形化模块wx,顺手写了个随机密码生成器,程序运行界面如下图:(注:在Ubuntu下运行结果)

 

源代码如下:

 

  1. import wx 
  2. import string 
  3. import random 
  4.  
  5. class Frame(wx.Frame): 
  6.     def __init__(self,parent,id): 
  7.         wx.Frame.__init__(self,parent,id,'随机密码生成器',size=(430,285)) 
  8.         panel = wx.Panel(self) 
  9.         font=wx.Font(9,wx.MODERN, wx.NORMAL, wx.NORMAL) 
  10.         wx.StaticBox(panel, -1, '参数选项', (5,10), (300,80)) 
  11.         wx.StaticText(panel,-1,'密码长度',(30,30)) 
  12.         self.usertext = wx.TextCtrl(panel,-1,'8',(100,30),(40,20)) 
  13.         self.usertext.SetFont(font) 
  14.         wx.StaticText(panel,-1,'密码数量',(150,30)) 
  15.         self.usertext1 = wx.TextCtrl(panel,-1,'1',(220,30),(40,20)) 
  16.         self.usertext1.SetFont(font) 
  17.         self.select1 = wx.CheckBox(panel, -1, '字母', (30,60)) 
  18.         self.select1.SetValue(True) 
  19.         self.select2 = wx.CheckBox(panel, -1, '数字', (100,60)) 
  20.         self.select2.SetValue(True) 
  21.         self.select3 = wx.CheckBox(panel, -1, '特殊字符', (170,60)) 
  22.         self.select3.SetValue(False) 
  23.         self.button1 = wx.Button(panel, label='生成', pos=(320, 30), size=(80, 25)) 
  24.         self.button2 = wx.Button(panel, label='清空', pos=(320, 60), size=(80, 25)) 
  25.         self.usertext2 = wx.TextCtrl(panel,-1,'',(30,100),(350,150),style=wx.TE_MULTILINE|wx.HSCROLL|wx.TE_READONLY) 
  26.         self.usertext2.SetFont(font) 
  27.         self.Bind(wx.EVT_BUTTON, self.show, self.button1) 
  28.         self.Bind(wx.EVT_BUTTON, self.clear, self.button2)  
  29.                  
  30.     def show(self,event): 
  31.         value1 = self.usertext.GetValue() 
  32.         value2 = self.usertext1.GetValue() 
  33.         value3 = self.select1.GetValue() 
  34.         value4 = self.select2.GetValue() 
  35.         value5 = self.select3.GetValue() 
  36.         yy = '~!@#$%^&*(),<>?' 
  37.         uu='' 
  38.         bob = [] 
  39.          
  40.         if not value1 or not value2: 
  41.             wx.MessageBox('请输入密码长度和密码数量','错误') 
  42.         if value3 : 
  43.             uu = uu+string.ascii_letters 
  44.         if value4 : 
  45.             uu = uu+string.digits 
  46.         if value5 : 
  47.             uu = uu+yy 
  48.         if not uu : 
  49.             wx.MessageBox('请选择密码类型','错误') 
  50.         else : 
  51.             for i in range(int(value2)): 
  52.                 tt = ''.join(random.sample(list(uu),int(value1))) 
  53.                 bob.append(tt)                         
  54.                 self.usertext2.SetValue('\n'.join(bob)) 
  55.  
  56.     def clear(self,event): 
  57.         self.usertext2.Clear() 
  58.  
  59. if __name__ == '__main__': 
  60.     app = wx.PySimpleApp() 
  61.     frame = Frame(parent=None, id=-1) 
  62.     frame.Show() 
  63.     app.MainLoop() 

 

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯