0

Previous and related q: How to make a script automatically restart itself?

Is also possible to set a specific word to let the code restart? Like at the end of my last print function add a kind of loop that allows the user to play again.

i.e. Do you want to play again? "Type "play again" to restart"

I am asking because it is useful to restart the process if the user made wrong or bad decisions.

edit:

#creating password generator #Password Generator Project import random letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'] numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] symbols = ['!', '#', '$', '%', '&', '(', ')', '*', '+'] print("Welcome to the PyPassword Generator!") nr_letters = int(input("How many letters would you like in your password?\n")) nr_symbols = int(input(f"How many symbols would you like?\n")) nr_numbers = int(input(f"How many numbers would you like?\n")) #Eazy Level - Order not randomised: #e.g. 4 letter, 2 symbol, 2 number = JduE&!91 #print(f'{nr_letters}+{nr_numbers}+{nr_symbols}') password = "" for char in range(1, nr_letters +1): password +=random.choice(letters) for char in range(1, nr_numbers +1): password += random.choice(numbers) for char in range(1, nr_symbols +1): password += random.choice(symbols) print(password) #Hard Level - Order of characters randomised: #e.g. 4 letter, 2 symbol, 2 number = g^2jk8&P passrandom = random.choice(password) print(passrandom) 

So in the end I would like to insert a function like Would y like to generate a new password?

Thanks

5
  • You enclose the whole code in a "while True:" loop from which you can "break" out if necessary. You can use "if" to test for a condition to break or not. Additionally "continue" can be helpful. Commented Sep 15, 2021 at 11:33
  • Wrap your code into a function. Ask the user the question at the end of the function, check the answer and call the function again to restart, or return from function to quit. Commented Sep 15, 2021 at 11:33
  • ok - wrapped functions - I'm gonna google it. thanks you, senpai :) Commented Sep 15, 2021 at 11:37
  • @albert Calling a function in itself is a bad idea if you don't understand what exactly happens then ("recursion", local variables, stack overflow). Commented Sep 15, 2021 at 11:37
  • @MichaelButscher it's just a simple code. nothing at the expert level. I would like to just reset the game, like the f5 button, or do not let the user refresh the page. Commented Sep 15, 2021 at 11:41

1 Answer 1

0

I supposed you can use threading to solve this problem but here you can give to conditions to restart your program. So I try to develop your concept in my way. Code is given below,

import threading event_t=threading.Event() def event(): print("Event is waitting...") event_t.wait() print("Event is now working...") x=input('Are you play again?:') if x=="y": event() elif x=="n": return t1 = threading.Thread(target=event) t1.start() 
Sign up to request clarification or add additional context in comments.

1 Comment

Hi Dilshan! Interesting..Thanks for your reply! Just a question, I can do the same thing without that library? thank you!!!