当前位置: 代码迷 >> python >> 如何创建一个检查Python可用性的登录程序?
  详细解决方案

如何创建一个检查Python可用性的登录程序?

热度:107   发布时间:2023-06-21 10:58:27.0

我正在为我在学校正在从事的一个小项目登录,正在练习文件处理等等。 在大多数情况下,它运行良好,但是在尝试创建新用户时遇到了麻烦。 新用户需要具有原始的用户名和密码才能创建,否则,应告诉他们选择不可用。 出于某种原因,它可以与文件中的第一个用户名和密码配合使用,并使用户重试。 但是,当我尝试使用自己不知道的名字创建新用户时,它会让我受益。

def signUp():
    username = str(input("\nPlease enter your new username "))
    file = open ("usernames.txt","r")
    for x in file:
        if username in x:
            print ("\nThat username is already in use, please try another")
            signUp()
        else:
            print ("Your username is now ",username)
    file.close()

    password = input("\nPlease create a password ")
    file = open ("passwords.txt","r")
    for x in file:
        if password in x:
            print ("\nThat password is already in use, please try another")
            signUp()
        else:
            print ("Your password is now ", password," Don't forget it")
    file.close()   

    file = open ("usernames.txt","a")
    file.write (username)
    file.write ("\n")
    file.close()

    file = open ("passwords.txt","a")
    file.write (password)
    file.write ("\n")
    file.close()

    print ("\nYour login details have been saved")
    print ("Please login")
    logIn()

在用户名文件中,其名称为:

亚历克斯

乔希

密码文件具有:

123qwe

ewq321

该代码适用于Alex和123qwe并阻止它们重复执行,但不适用于Josh或ewq321。 目前,我不寻求任何其他改进。 稍后我将对其进行完善。 现在,我只需要帮助解决这个小问题。 我知道我的解释有些混乱,因此可能有助于复制我已经完成的工作并进行尝试。 显然,这不是全部代码,因此可能并不完美。

问题出在两个循环中,恰好在else子句中。 您的代码检查是否只有第一个用户名已经存在,这是因为您在循环中引入了else,并且如果用户名已经存在,则还需要使用return退出程序。

这是新代码:

def signUp():
    username = str(input("\nPlease enter your new username "))
    file = open ("usernames.txt","r")
    for x in file:
        if username in x:
            print ("\nThat username is already in use, please try another")
            signUp()
            return

    print ("Your username is now ",username)
    file.close()

    password = input("\nPlease create a password ")
    file = open ("passwords.txt","r")
    for x in file:
        if password in x:
            print ("\nThat password is already in use, please try another")
            signUp()
            return

    print ("Your password is now ", password," Don't forget it")
    file.close()   

    file = open ("usernames.txt","a")
    file.write (username)
    file.write ("\n")
    file.close()

    file = open ("passwords.txt","a")
    file.write (password)
    file.write ("\n")
    file.close()

    print ("\nYour login details have been saved")