登录程序中的密码(Python)

登录程序中的密码(Python),python,Python,我是python新手,我编写了简单的登录脚本。 我不明白代码有什么问题: 1.)我使用了getpass.getpass(prompt=“Enter password:”),但它在运行时显示密码,同时也显示警告。如何忽视这一点 2.)如何使用try-except捕获错误登录 class login: print "Login Page" def __init__(self,id,pas): self.id="admin" self.pas="adm

我是python新手,我编写了简单的登录脚本。 我不明白代码有什么问题: 1.)我使用了getpass.getpass(prompt=“Enter password:”),但它在运行时显示密码,同时也显示警告。如何忽视这一点

2.)如何使用try-except捕获错误登录

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

    def check(self,id,pas):
        if(self.id==log.id and self.pas==log.pas):
            print "Login success!"
        else:
            print "who r u???"


log=login("","")
import getpass
log.check(raw_input("Enter Login ID:"),getpass.getpass(prompt="Enter password: "))
输出:

    Login Page
Enter Login ID:ad

Warning (from warnings module):
  File "C:\Python27\lib\getpass.py", line 92
    return fallback_getpass(prompt, stream)
GetPassWarning: Can not control echo on the terminal.
Warning: Password input may be echoed.
Enter password: ad
who r u???

在Windows上工作正常,请尝试以下操作:

class login:
    print "Login Page"

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

    def check(self, id, pas):

        if(self.id == id and self.pas == pas):
            print ("Login success!")
        else:
            print ("who r u???")


if __name__ == '__main__':
    log = login("", "")
    id1 = raw_input("Enter Login ID: ")
    pas1 = raw_input("Enter password: ")
    log.check(id1, pas1)

您是在linux还是windows中运行?它在我的Linux中运行良好,但检查函数中有一个bug。我认为if语句中的条件应该是if(self.id==id和self.pas==pas):您所说的“除了捕获错误登录之外如何使用try?”是什么意思。看来你们已经在用if-else检查了。@mrcl我正在Windows上运行它找到答案了吗?或者你试过使用空闲以外的东西吗?@Lafexlos是的,我找到了答案。我需要做的就是用id和pass resp替换self.id和self.pass。