Maison > développement back-end > Tutoriel Python > Débogage Python ; print() et assertions (exemple d'analyse 2)

Débogage Python ; print() et assertions (exemple d'analyse 2)

乌拉乌拉~
Libérer: 2018-08-23 13:38:04
original
1777 Les gens l'ont consulté

Dans l'article suivant, nous découvrirons le débogage en python. Comprenez quelques méthodes de débogage python et sachez quel rôle le débogage python peut jouer dans la programmation python.

Pourquoi le débogage est nécessaire

La probabilité que le programme puisse être écrit une fois et exécuté normalement est très faible, fondamentalement pas plus de 1 %. Il y a toujours divers bugs qui doivent être corrigés. Certains bugs sont très simples. Vous pouvez le savoir en regardant le message d'erreur. Certains bugs sont très complexes. Nous devons donc savoir quelles variables ont des valeurs correctes et quelles variables ont des valeurs incorrectes lorsqu'une erreur se produit. un ensemble complet de moyens pour déboguer le programme afin de corriger le bug. Alors comment déboguer python ? La réponse sera donnée ci-dessous.

La première méthode est simple, directe, grossière et efficace, qui consiste à utiliser print() pour imprimer les variables qui peuvent poser problème :

def foo(s):
    n = int(s)
    print('>>> n = %d' % n)
    return 10 / n
def main():
    foo('0')
main()
Copier après la connexion

Sortie après exécution Recherchez la valeur de la variable imprimée dans :

$ python err.py
>>> n = 0
Traceback (most recent call last):
  ...
ZeroDivisionError: integer division or modulo by zero
Copier après la connexion

Le plus gros inconvénient de l'utilisation de print() est que vous devrez la supprimer à l'avenir. Pensez au fait que print() est partout dans le monde. programme, et les résultats en cours d'exécution contiendront également de nombreuses informations indésirables. Nous avons donc une deuxième méthode.

La deuxième méthode est la suivante : partout où print() est utilisée pour faciliter la visualisation, l'assertion peut être utilisée à la place :

def foo(s):
    n = int(s)   
     assert n != 0, 'n is zero!'
    return 10 / n
    
    def main():
    foo('0')
Copier après la connexion

assert Cela signifie que l'expression n ! = 0 doit être vrai, sinon, selon la logique de fonctionnement du programme, le code suivant tournera définitivement mal.

Si l'assertion échoue, l'instruction assert elle-même générera une AssertionError :

$ python err.py
Traceback (most recent call last):
  ...
AssertionError: n is zero!
Copier après la connexion

Si le programme est plein d'assertions, ce n'est pas mieux que print(). Cependant, vous pouvez utiliser le paramètre -O pour désactiver assert lors du démarrage de l'interpréteur Python :

$ python -O err.py
Traceback (most recent call last):
  ...
ZeroDivisionError: division by zero
Copier après la connexion

Après l'avoir désactivé, vous pouvez afficher toutes les instructions assert comme des passes.

Ce qui précède est tout le contenu décrit dans cet article. Cet article présente principalement les connaissances pertinentes du débogage python. J'espère que vous pourrez utiliser les informations pour comprendre le contenu ci-dessus. J'espère que ce que j'ai décrit dans cet article vous sera utile et vous facilitera l'apprentissage de Python.

Pour plus de connaissances connexes, veuillez visiter la colonne Tutoriel Python du site Web php chinois.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal