孤独的追梦者 2022-05-10 22:36 采纳率: 90%
浏览 46
已结题

在自定义函数中调用自定义函数,引发局部变量值自发改变的问题

问题:每次我点确定是会运行fun函数,fun函数里面我只想引用creatAuthCode里上一次运行的结果,但是每次运行fun函数 ,creatAuthCode函数也跟着运行,导致creatAuthCode每次输出的值都不一样,因此fun函数每次应用额函数也不一样,我只想做一个简单的登录带验证码数字的界面,并且当密码 账号 验证码输入正确 才显示登录成功。

from tkinter import *
import tkinter as tk
import random
#定义函数,功能为生成数字组成的6位随机验证码
def creatAuthCode():
    str1 = ""
    for i in range(2):
        ch = chr(random.randrange(ord('0'), ord('9') + 1))
        str1 += ch
    print(str1)
    txt.set(str1)
x= creatAuthCode    
#定义函数,判断输入是否正确
def fun():
    d1 = text1.get()
    d2 = text2.get()
    if d1=="1"and d2=="1" and code==creatAuthCode():
        w="登陆成功!"
    elif( d1==""or d2=="") :
        w="请输入正确的格式"
    else:
        w="输入错误!"  
    t.insert('insert',w)

#创建根窗口
root=Tk()
root.title("登录界面")
#root.resizable(False,False)
root.geometry("400x400")


#设置用户账号输入框
ID=Label(root,text="账号:")
ID.grid(row=0,column=1)
text1=Entry(root)
text1.grid(row=0,column=2)

#设置用户密码码输入框
password=Label(root,text="密码:")
password.grid(row=1,column=1)
text2=Entry(root)
text2.grid(row=1,column=2)

#设置验证码输入框
code=Label(root,text="验证码:")
code.grid(row=2,column=1)
code=Entry(root)
code.grid(row=2,column=2)



#设置获取验证码的按钮
txt=StringVar()
txt.set("点击")
codestr=Button(root,textvariable=txt,command=creatAuthCode,fg="red")
codestr.grid(row=2,column=3)


#设置登录按钮
c=tk.Button(root,text="确定",font=('宋体',20),command=fun)
c.place(relx=0.5,rely=0.8,anchor=CENTER)

#显示框
t=tk.Text(root,font=('Arial',20),height=1,width=20)
t.grid(row=4,column=2)

root.mainloop()




  • 写回答

2条回答 默认 最新

  • 溪风沐雪 2022-05-10 22:43
    关注

    我想说的是你是否可以通过插入代码块的方式提供代码,这么贴进来不仅调格式费劲,代码也可能会错,没法调试啊

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月18日
  • 已采纳回答 5月10日
  • 修改了问题 5月10日
  • 创建了问题 5月10日

悬赏问题

  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
  • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
  • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?
  • ¥15 QQ邮箱过期怎么恢复?
  • ¥15 登录他人的vue项目显示服务器错误
  • ¥15 (标签-android|关键词-app)
  • ¥15 comsol仿真压阻传感器