python中的简单登录程序

时间:2014-03-04 11:36:26

标签: python python-2.7

我是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

3 个答案:

答案 0 :(得分:5)

您使用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: "))

答案 1 :(得分:0)

试试这个。

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()

答案 2 :(得分:0)

好吧,我没有必要在check函数中添加id和pas参数,因为我已经在main函数中使用了它。我更喜欢使用自我方法和“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()