Comment Python sort-il d'une fonction et quitte-t-il le programme principal ?


Sortir de la fonction : vous pouvez quitter la fonction en effectuant un retour, une pause et une continuation. La plage de sortie va de grande à petite. Vous pouvez la comprendre en regardant le code ci-dessous.


return : Retournez directement à la fonction, et tout le code dans le corps de la fonction (y compris le corps de la boucle) ne sera pas exécuté à nouveau. Un exemple est le code suivant : (Le résultat de l'opération est : [123] ==> est une liste )

#!/bin/python
#-*- coding -*-
def arr_type(arr):
    if type(arr) != list:
        # f'{}' 这种方式类似于之前版本的 .format()方法,更为简洁,不过此方法仅在 Python 3.6 以及以后的版本中可用 ,是 Python3.6 新引入的一种字符串格式化方法
        print(f'{arr}==>不是列表')
        return
    else:
        print(f'{arr}==>是列表')

arr = [123]
arr_type(arr)
# arr = ([123,123],1)
# arr_type(arr)

break : sortez de toute la boucle actuelle et continuez l'exécution jusqu'au code externe. Un exemple est le code suivant : (Le résultat de l'opération est : 11 2)

#!/bin/python
#-*- coding -*-
def arr_map(list_arr):
    for arr in list_arr:
        if arr == 1:
            break # 条件满足,退出本层循环
        print(arr)

list_arr = [11,2,1,8,9]
arr_map(list_arr)

continuer : sortez de cette boucle et continuez à exécuter la boucle à partir de l'itération suivante. Une fois la boucle interne exécutée, le code externe continue de s'exécuter. Un exemple est le code suivant : (Le résultat de l'opération est : 11 2 8 9)

#!/bin/python
#-*- coding -*-
def arr_map(list_arr):
    for arr in list_arr:
        if arr == 1:
            continue # 条件满足,退出本次循环(非本层),继续下一个循环
        print(arr)

list_arr = [11,2,1,8,9]
arr_map(list_arr)

Quittez le programme principal : utilisez sys.exit() si nécessaire, ou utilisez directement exit() pour quitter le programme principal.


sys.exit() : Il n'est pas nécessaire de prendre en compte l'influence de facteurs tels que la plate-forme. C'est généralement la méthode préférée pour quitter un programme Python.

Vous devez importer le module sys intégré de Python import sys, par exemple, le code suivant : (Le résultat en cours d'exécution est : 0 1 2)

#!/bin/python
#-*- coding -*-

import sys
def map_range():
    for i in range(10):
        if i == 3:
            sys.exit()
        print(i)

map_range()

exit() : écrivez simplement ce code directement sans importer le module. Un exemple est le code suivant : (Le résultat en cours d'exécution est : 0 1 2)

#!/bin/python
#-*- coding -*-

def map_range():
    for i in range(10):
        if i == 3:
            exit()
        print(i)

map_range()

PS : En développant l'information, quelle est la différence entre les deux méthodes pour quitter le programme principal ?

1. sys.exit() lèvera une exception : SystemExit. Si cette exception n'est pas interceptée, l'interpréteur Python se fermera. Si du code intercepte cette exception, le code sera quand même exécuté. La capture de cette exception peut effectuer un travail de nettoyage supplémentaire. 0 signifie une sortie normale, d'autres valeurs (1-127) signifient une sortie anormale et des événements d'exception peuvent être générés pour la capture.

2. exit() devrait être le même que exit() dans d'autres langages tels que le langage C.

3、exit(0) et exit(1)

exit(0) : Quitter sans erreur 
exit(1) : Quitter avec erreur Le 
code de sortie indique à l'interpréteur (ou au système d'exploitation )

Guess you like

Origin blog.csdn.net/STR_Liang/article/details/112967275