Home > Enterprise >  While != "specific string" loop mishap
While != "specific string" loop mishap

Time:05-06

I'm trying to make a task a little more efficient. I'm going to continue to research/edit while moving forward.

What the code currently does is ask for your first/last name it then outputs a username & password. Up to this point it works fine if there is a more efficient way to rewrite this also appreciated.

The only thing I still need to fix is looping entries(First_name and Last_name) so I can have multiple users added with a \n\n for easy reading/separation of each user. preferably with a exit command such such as "done"

I'm also going to be looking into how to create a new file that this information is stored in but this is the section I'm going to try to figure out.

First_name = input("Enter your First name: ")
Last_name= input("Enter your last name: ")


Username = str(First_name)   str(Last_name)
Password = Username   str('1!')


print("Username: ", Username.upper())
print("Password: ", Password)

In terms of trying to solve the issue.

I did try to create something in the ball park of..

First_name = input("Enter your First name: ")
Last_name= input("Enter your last name: ")

while First_name != "done":
    Last_name= input("Enter your last name: ")
    First_name = input("Enter your First name: ")
    Last_name= input("Enter your last name: ")
    Username = str(First_name)   str(Last_name)
    Password = Username   str('1!')
    print("Username: ", Username.upper())
    print("Password: ", Password)

this just repeated the first two lines without printing the Username/password. It also appeared to acknowledge when I typed done but slightly off from desired. Below I included how the code ran

Enter your First name: first
Enter your last name: last
Enter your last name: last
Enter your First name: done
Enter your last name: last
Username:  DONELAST
Password:  donelast1!

I get why its first, last, last, first last. I dont get how to make the while loop using "while Fist_name !='done': " without putting lines 1 and 2 before the loop. I tried removing the inputs at line 5 and 6 but then it just looped the username and password.

CodePudding user response:

You can use a while loop and break it when the first name is done.

while True:
    first_name = input("Enter your first name (done to exit): ")
    if first_name.lower() == "done":
        print("Done!")
        break
    last_name = input("Enter your last name: ")
    Username = str(first_name)   str(last_name)
    Password = Username   str('1!')
    print("Username: ", Username.upper())
    print("Password: ", Password)
    print("\n")

Output:

Enter your first name (done to exit): John
Enter your last name: Doe
Username:  JOHNDOE
Password:  JohnDoe1!


Enter your first name (done to exit): Alice
Enter your last name: Court
Username:  ALICECOURT
Password:  AliceCourt1!


Enter your first name (done to exit): done
Done!

CodePudding user response:

Just set your variables to an empty string before the loop starts. Since an empty string is not equal to done your code will enter the loop and prompt the user:

First_Name = ''
Last_Name = ''
while First_name != "done":
    Last_name= input("Enter your last name: ")
    First_name = input("Enter your First name: ")    
    Username = str(First_name)   str(Last_name)
    Password = Username   str('1!')
    print("Username: ", Username.upper())
    print("Password: ", Password)
  • Related