L’uscita di un programma da un If/ELSE, con Python

Sto tentando di uscire da un programma senza usare sys.exit()
All’utente viene chiesto se si desidera continuare e se loro ingresso “Sì” così un messaggio viene stampato e il programma continua a funzionare. Se l’input altro un messaggio dicendo che hanno scelto di uscire è stampato e quindi il programma è destinato a uscire.

def keep_going():

    answer = raw_input("Do you wish to continue?")

    if answer == "yes":
        print "You have chosen to continue on"
    else:
        print "You have chosen to quit this program"

Quello che sto lottando con è quello di aggiungere ALTRO a restituire qualcosa al mio principale che causa l’uscita del programma e come fare per scrivere che in codice.

  • Se posso chiedere, cosa c’è di sbagliato con l’utilizzo di sys.exit()?
  • L’assegnazione breve stabilisce che non ci ha permesso di usarlo, purtroppo. Invece mi è stato detto di restituire qualcosa alla principale che mi porterà alla fine del set di istruzioni per consentire l’uscita del programma. Non so come, è possibile chiamare una funzione all’interno di un’istruzione IF? Per esempio, se ho creato una funzione chiamata uscire e collocato alla fine del mio programma, sono in grado di chiamare ad esempio. ELSE: print :Si è scelto di chiudere il programma” Chiamata in uscita ??
  • Se una qualsiasi delle risposte qui aiutato, si dovrebbe votare cliccando sulla freccia a sinistra di ogni risposta. Se una qualsiasi delle risposte risolto il tuo problema, bisogna selezionarlo facendo clic sul segno di spunta accanto ad essa. Questo aiuterà i futuri visitatori che hanno lo stesso problema.

 

3 Replies
  1. 0

    Se sei tanto appassionato non si utilizza sys.exit() si potrebbe usare direttamente raise SystemExit. Beh, questa eccezione è tecnicamente sollevato quando si chiama sys.exit() in modo esplicito. In questo modo non hai bisogno di import sys a tutti.

    def keep_going():
    
      answer = raw_input("Do you wish to continue?")
    
      if (answer == "yes"):
           print ("You have chosen to continue on")
      else:
        print "You have chosen to quit this program"
        raise SystemExit

    Questo risposta vi darà alternativo modi possibili.

  2. 0

    Provare questo:

    def main():
        while keep_going():
            keep_going()
    
    def keep_going():
    
        answer = raw_input("Do you wish to continue?")
    
        if answer == "yes":
            print "You have chosen to continue on"
            return True
        else:
            print "You have chosen to quit this program"
            return False
    
    if __name__ == "__main__":
        main()

    Il programma continua a chiamare keep_going() fintanto che restituisce true, che è quando un utente risponde "yes"

    Ancor prima soluzione sarebbe chiamare keep_going() dopo il “sì” condizione:

    def keep_going():
    
        answer = raw_input("Do you wish to continue?")
    
        if answer == "yes":
            print "You have chosen to continue on"
            keep_going()
        else:
            print "You have chosen to quit this program"
    • mentre andare avanti, continuare ad andare avanti? 😉
  3. 0

    Solo, restituire qualcosa, e se è tornato, quindi lasciate che il vostro principale funzione di uscita, sia per quando si arriva alla fine, utilizzando un return istruzione, o chiamando il sys.exit()/raise SystemExit.

    Come un esempio, io sono qui che ritorna una stringa (uno diverso in base a ciò che l’utente ha risposto):

    def keep_going():
        answer = raw_input("Do you wish to continue?")
        if answer == "yes":
            print "You have chosen to continue on"
            return "keep going"
        else:
            print "You have chosen to quit this program"
            return "please exit"

    Ora, in main, posso verificare quale di queste stringhe keep_going() restituiti:

    def main():
        while keep_going() != 'please exit':
            # your code here
    
    if __name__ == "__main__":
        main()

    Mentre le stringhe di lavoro per questo scopo, gli altri valori sono più comunemente utilizzati per tale compito. Se keep_going() restituito True (invece di "keep going") o False (invece di "please exit"), quindi main potrebbe essere scritto come

    def main():
        while keep_going():
            # your code here

    Questa legge, inoltre, abbastanza naturalmente (“mentre continuate a fare il vostro codice”). Si noti che in questo caso sto non confrontando il valore di ritorno di qualcosa visto che True e False sono truthy variabili – e Python ramificazione strutture di controllo (come if e while) sapere come funzionano, cioè non c’è bisogno di scrivere keep_going() == True, e infatti è considerato non divinatori per farlo.

    • L’assegnazione breve stabilisce che non ci ha permesso di usarlo, purtroppo. Invece mi è stato detto di restituire qualcosa alla principale che mi porterà alla fine del set di istruzioni per consentire l’uscita del programma. Non so come, è possibile chiamare una funzione all’interno di un’istruzione IF? Per esempio, se ho creato una funzione chiamata uscire e collocato alla fine del mio programma, sono in grado di chiamare ad esempio. ELSE: print :Si è scelto di chiudere il programma” Chiamata in uscita ? Grazie per la risposta, anche
    • Ho aggiornato la mia risposta, anche se ci si sente come si potrebbe avere una più fondamentale scollegare qui.. Se ancora non scegliere per voi, quindi si prega di modificare la tua domanda di includere il tuo main() funzione.

Lascia un commento