Si el usuario llega al final del progtwig, quiero que se le pregunte si tiene alguna pregunta para preguntar si quieren volver a intentarlo. Si responden que sí quiero volver a ejecutar el progtwig.
import random print("The purpose of this exercise is to enter a number of coin values") print("that add up to a displayed target value.\n") print("Enter coins values as 1-penny, 5-nickel, 10-dime,and 25-quarter.") print("Hit return after the last entered coin value.") print("--------------------") total = 0 final_coin = random.randint(1, 99) print("Enter coins that add up to", final_coin, "cents, on per line") user_input = int(input("Enter first coin: ")) total = total + user_input if user_input != 1 and user_input!=5 and user_input!=10 and user_input!=25: print("invalid input") while total != final_coin: user_input = int(input("Enter next coin: ")) total = total + user_input if total > final_coin: print("Sorry - total amount exceeds", (final_coin)) if total < final_coin: print("Sorry - you only entered",(total)) if total== final_coin: print("correct")
Puede incluir todo el progtwig en otro bucle while que le pregunte al usuario si desea volver a intentarlo.
while True: # your entire program goes here try_again = int(input("Press 1 to try again, 0 to exit. ")) if try_again == 0: break # break out of the outer while loop
Solo una mejora incremental en la respuesta aceptada: utilizada como tal, cualquier entrada no válida del usuario (como una cadena vacía, la letra “g” o algo similar) causará una excepción en el punto donde está la función int () llamado.
Una solución simple para tal problema es usar un try / except- tratar de realizar una tarea / código y si funciona, excelente, pero por lo demás (excepto aquí es como otra cosa 🙂 haga esta otra cosa.
De los tres enfoques que uno podría probar, creo que el primero a continuación es el más fácil y no bloqueará su progtwig.
# Opt1: Just use the string value entered with one option to go again while True: # your entire program goes here try_again = input("Press 1 to try again, any other key to exit. ") if try_again != "1": break # break out of the outer while loop # Opt2: if using int(), safeguard against bad user input while True: # your entire program goes here try_again = input("Press 1 to try again, 0 to exit. ") try: try_again = int(try_again) # non-numeric input from user could otherwise crash at this point if try_again == 0: break # break out of this while loop except: print("Non number entered") # Opt3: Loop until the user enters one of two valid options while True: # your entire program goes here try_again = "" # Loop until users opts to go again or quit while (try_again != "1") or (try_again != "0"): try_again = input("Press 1 to try again, 0 to exit. ") if try_again in ["1", "0"]: continue # a valid entry found else: print("Invalid input- Press 1 to try again, 0 to exit.) # at this point, try_again must be "0" or "1" if try_again == "0": break