python中的简单登录程序

2024-05-19 08:59:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我用python编写了一个登录程序,没有任何GUI。 我知道这是最简单的一个,但我不明白这个问题。

class login:
    def __init__(self,id,pas):
        self.id="admin"
        self.pas="admin"

    def check(id,pas):
        print self.id
        print lod.id
        if(self.id==log.id and self.pas==log.pas):
            print "Login success!"


log=login("","")
log.check(raw_input("Enter Login ID:"),
        input("Enter password: "))

print "Login Page" 

错误: 输入登录ID:admin 输入密码:admin

Traceback (most recent call last):
  File "C:/Python27/login.py", line 15, in <module>
    input("Enter password: "))
  File "<string>", line 1, in <module>
NameError: name 'admin' is not defined

Tags: selflogidinputadmindefchecklogin
3条回答

您使用了input()而不是raw_input()作为密码。

input()相当于eval(raw_input());如果键入admin作为密码,则将其解释为Python代码。admin然后被解释为变量名,并且由于该名称在代码中不存在,因此会引发NameError

使用:

log.check(raw_input("Enter Login ID:"),
          raw_input("Enter password: "))

相反。

接下来,您的check()方法将无法工作,因为您忘记了self参数,并试图引用不存在的名称lod。下面的方法会更好:

class login:
    def __init__(self, id, pas):
        self.id = id
        self.pas = pas

    def check(self, id, pas):
        print self.id
        if self.id == id and self.pas == pas:
            print "Login success!"

log = login("admin", "admin")
log.check(raw_input("Enter Login ID:"),
          raw_input("Enter password: "))

试试这个。

class Login:
    def __init__(self, id, password):
        self.id = id
        self.password = password
        self.error = "Enter a valid username and password"
    def check(self):
        if (self.id == log_id and self.password == log_pass):
            print("Login successful")
        else:
            print(self.error)

log = Login("admin",  "admin")
log_id = input("Enter your user ID: ")
log_pass = input("Enter password: ")
log.check()

好吧,我不需要在check函数中添加id和pas参数,因为我已经在主函数中有了它。我更喜欢称self方法和用于身份验证的“if”

class Login:
    error = None
    def __init__(self, uid, passw):
        self.uid = "admin"
        self.passw = "admin"
        Login.error = "Enter a valid user id and password"

    def authenticate(self):
        if (self.uid == logid and self.passw == logpass):
            print ("Login successful")
        else:
            print (Login.error)
log = Login("", "")
logid = input("Enter your user ID: ")
logpass = input("Enter your password: ")


log.authenticate()

相关问题 更多 >

    热门问题