Python 如何检查一个文档中的一行是否应用于同一行,但在另一个文档中
我以前的问题在某些地方通过使用类而不是函数得到了解决。但仍然存在一个问题。如果一个文档中的一行应用于同一行,但在另一个文档中,如何检查?我已经试过了,它什么也没做,也没有给我错误代码Python 如何检查一个文档中的一行是否应用于同一行,但在另一个文档中,python,function,tkinter,Python,Function,Tkinter,我以前的问题在某些地方通过使用类而不是函数得到了解决。但仍然存在一个问题。如果一个文档中的一行应用于同一行,但在另一个文档中,如何检查?我已经试过了,它什么也没做,也没有给我错误代码 由于调用函数时未传递这两个变量regEnterpass,regEnteruser 由于我在平板电脑上,所以无法进行测试,但以下操作是否有效?通过创建一个类来存储这两个变量,并在调用时使用它们 更新:您可以读取init中的文本文件并将其存储为字典 class Logging1(object): def __
由于调用函数时未传递这两个变量
regEnterpass,regEnteruser
由于我在平板电脑上,所以无法进行测试,但以下操作是否有效?通过创建一个类来存储这两个变量,并在调用时使用它们
更新:您可以读取init中的文本文件并将其存储为字典
class Logging1(object):
def __init__(self, enteruser, enterpass):
self.enteruser = enteruser
self.enterpass = enterpass
## open usernames.txt and get usernames
with open("usernames.txt", "r") as users_file:
users = [user for user in users_file]
## open password.txt and get passwords
with open("passwords.txt", "r") as password_file:
passwords = [password for password in password_file]
## combine and store them in a dictionary
self.users_dict = dict(zip(users, passwords))
def __call__(self):
entered_user = self.enteruser.get() ## get entered username
if self.users_dict.has_key(entered_user): ## valid username
entered_pw = self.enterpass.get() ## get entered password
stored_pw = self.users_dict[entered_user]
if entered_pw == stored_pw: ## correct username and pw
logged = Label(root, text="Successful login!")
logged.grid(row=5, column=1)
else:
pass ## incorrect password
else: pass ## not a valid username
def register():
regUsername = Label(root, text="Set username: ")
regUsername.grid(row=0, column=0)
regEnteruser = Entry(root)
regEnteruser.grid(row=0, column=1)
regPassword = Label(root, text="Set password: ")
regPassword.grid(row=1, column=0)
regEnterpass = Entry(root)
regEnterpass.grid(row=1, column=1)
registering1 = Logging1(regEnterpass, regEnteruser) ## create Registering1 object
buttonreg = Button(root, text="Register", padx="30", pady="5", command=registering1)
buttonreg.grid(row=2, column=1)
return regEnterpass and regEnteruser
“这段代码可能有很多错误,因为我是一个乞丐”,这是正确的,Stackoverflow是一个针对特定编程问题的问答平台。这个问题离题了。您应该使用调试器逐行检查代码,分析每个问题,并针对无法解决的每个问题提出特定问题。提示:
username1和passwords2
没有达到预期效果。使用打开文件,打开(…)为…:
buttonreg=Button(root,text=“Register”,padx=“30”,pady=“5”,command=registering1)
无参数调用函数registering1
。这解决了我的主要问题,非常感谢。我不想使用类,但它们比人们想象的有用得多。这项工作?顺便说一句,我不会在txt文档中存储密码,这只是一个黑客补丁,可以让您的代码按照当前设置的方式工作,不确定您是否每次都想打开文本文档谢谢您的时间,这帮了我很多忙!
class Logging1(object):
def __init__(self, enteruser, enterpass):
self.enteruser = enteruser
self.enterpass = enterpass
## open usernames.txt and get usernames
with open("usernames.txt", "r") as users_file:
users = [user for user in users_file]
## open password.txt and get passwords
with open("passwords.txt", "r") as password_file:
passwords = [password for password in password_file]
## combine and store them in a dictionary
self.users_dict = dict(zip(users, passwords))
def __call__(self):
entered_user = self.enteruser.get() ## get entered username
if self.users_dict.has_key(entered_user): ## valid username
entered_pw = self.enterpass.get() ## get entered password
stored_pw = self.users_dict[entered_user]
if entered_pw == stored_pw: ## correct username and pw
logged = Label(root, text="Successful login!")
logged.grid(row=5, column=1)
else:
pass ## incorrect password
else: pass ## not a valid username
def register():
regUsername = Label(root, text="Set username: ")
regUsername.grid(row=0, column=0)
regEnteruser = Entry(root)
regEnteruser.grid(row=0, column=1)
regPassword = Label(root, text="Set password: ")
regPassword.grid(row=1, column=0)
regEnterpass = Entry(root)
regEnterpass.grid(row=1, column=1)
registering1 = Logging1(regEnterpass, regEnteruser) ## create Registering1 object
buttonreg = Button(root, text="Register", padx="30", pady="5", command=registering1)
buttonreg.grid(row=2, column=1)
return regEnterpass and regEnteruser