奶芙吐司 发表于 2021-4-10 23:04:15

利用GUI界面生成六位验证码

各位大神,孩纸就靠你们了!!!{:10_254:}
编程:利用GUI界面实现生成验证码六位的程序。
要求:6位验证码应该可以有大写字母小写字母和数字;数字和字母出现的概率比是2:1;大写字母和小写字母的出现概率比是1:1;界面要美观自然,控件的大小颜色还有字体字号要有所变化。

昨非 发表于 2021-4-10 23:06:02

?这不是问问题的好办法
直接发项目,你指望大家给你做作业吗{:10_277:}

小伤口 发表于 2021-4-10 23:07:36

你还是花钱去找别人写吧哈哈{:10_250:}
这个白嫖不了

奶芙吐司 发表于 2021-4-10 23:50:11

昨非 发表于 2021-4-10 23:06
?这不是问问题的好办法
直接发项目,你指望大家给你做作业吗

from tkinter import *
from random import *
def compute():
    yzm=[]
    for i in range(6):
      sz=str(randint(0,9))
      zm=chr(randint(65,90))
      yz=chr(randint(97,122))
      yzm.append(choice())
    lal.config(text=yzm)
win=Tk()
win.title("生成验证码")
win.geometry("300x200")
lal=Label(win,text="验证码的位置")
lal.config(font=("微软雅黑",20))
lal.config(bg="blue")
lal.pack()
bul=Button(win,text="生成验证码")
bul.config(command=compute)
bul.config(activebackground="green")
bul.pack(side=BOTTOM)
win.mainloop()
不好意思,因为是第一次用论坛所以不太懂规则,上面的是我做的,但是我不知道怎么让数字和字母概率为2:1,查了半天书也不会

小伤口 发表于 2021-4-11 00:32:30

本帖最后由 小伤口 于 2021-4-11 00:35 编辑

from tkinter import *
from random import *
def compute():
    yzm=[]
    for i in range(2):
      sz=str(randint(0,9))
   
      yzm.append(sz)
    for i in range(2):
      zm=chr(randint(65,90))
      yzm.append(zm)
      
      
    for i in range(2):
      yz=chr(randint(97,122))
      yzm.append(yz)

    shuffle(yzm)#打乱顺序
    lal.config(text=yzm)
win=Tk()
win.title("生成验证码")
win.geometry("300x200")
lal=Label(win,text="验证码的位置")
lal.config(font=("微软雅黑",20))
lal.config(bg="blue")
lal.pack()
bul=Button(win,text="生成验证码")
bul.config(command=compute)
bul.config(activebackground="green")
bul.pack(side=BOTTOM)
win.mainloop()


既然要数字和字母出现的概率比是2:1;大写字母和小写字母的出现概率比是1:1
那么分开写就行然后打乱列表顺序就好啦~
我还以为还要去验证 验证码,如果只是生成验证码那还好

Daniel_Zhang 发表于 2021-4-11 01:00:30

别管什么 2:1 还是 1:1

不就是 6 个字符嘛

总的来讲就是生成 4 个数字, 2 个字母

2 个字母里面, 1 个大写 1 个小写

生成完了以后,放到 list1 里面

list1 用 random.shuffle(list1) 去打乱顺序,然后输出就可以了
页: [1]
查看完整版本: 利用GUI界面生成六位验证码