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

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

问题:每次我点确定是会运行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 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥30 用arduino开发esp32控制ps2手柄一直报错
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 求chat4.0解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题