A propos des procédures électives, en effet, un peu occupé récemment, aucune chance d'os d'examen, module pickle en deux parties, le stockage de données dictionnaire et la lecture devient un problème, savoir à peu près le principe, mais l'opération spécifique peut encore avoir à revenir en arrière et prendre un autre regard, maintenant à l'avance pour commencer à apprendre de nouvelles connaissances, bien que le sentiment aujourd'hui des méthodes associées de str oublier est propre, mais je PyCharm.
Aujourd'hui, le contenu principal est de se sentir anormal, en fait, un peu comme le début vient d'apprendre, est relativement simple.
Une exception est le programme de génération de signal d'erreur est en cours d'exécution (lorsque l'erreur de programme se produit, une exception, si le programme ne gère pas, il va jeter l'exception, exécuter le programme sera terminé aussi), en python, déclenchements intempestifs exceptions sont les suivantes:
Les erreurs sont divisées en deux types:
1. erreurs de syntaxe, PyCharm de base vous aidera à montrer, ne pas commettre
2. Les erreurs logiques, pas facile à voir, quelle que soit PyCharm, l'interpréteur Python est seulement l'amour, mais attendre jusqu'à ce que le temps est vraiment en cours d'exécution
# TypeError: type int n'est pas l'itération pour I en 3. : Passe # un ValueError NUM = INPUT ( " >>: " ) # entrée Bonjour int (NUM) # NameError AAA # IndexError L = [ ' Egon ' , ' AA ' ] L [ . 3 ] # un KeyError DIC = { ' nom ' : ' Egon ' } DIC [ ' âge ' ] #AttributeError classe Foo: Passe foo.x # la ZeroDivisionError: Impossible de terminer le calcul . RES1 = 1/ 0 RES2 . = + 1 ' STR ' 2. Les erreurs logiques
Les éléments suivants sont la plupart importante d'aujourd'hui:
Différentes anomalies en python peuvent être de différents types (classes et le type unifié de python, à savoir le type de catégorie) pour identifier un indicateur d'anomalie mal
Les éléments suivants sont couramment utilisés exception:
AttributeError aucune tentative d'accès à un arbre d'objets, tels que foo.x, mais foo n'attribue pas les X- entrée IOError / anomalies de sortie, essentiellement ne peut pas ouvrir le fichier ImportError pas du module d' importation ou de l' emballage, essentiellement une question ou le nom chemin est erroné erreur de syntaxe IndentationError (sous - classe), le code n'a pas été correctement aligné IndexError index indice hors des limites de séquence, par exemple lorsque seulement trois éléments de x, tente d'accéder à x [ 5. ] une tentative d'KeyError pour accéder au dictionnaire n'existe pas dans la liaison du KeyboardInterrupt Ctrl + C est pressée NameError utiliser une variable n'a pas été donné un objet SyntaxError code Python est illégal, le code ne (pense personnellement qu'il est une erreur de syntaxe, de mauvais) compile pas TypeError type d'objet entrant ne se conforme pas aux exigences de la tentative UnboundLocalError d'accéder à une variable locale n'a pas été réglée , essentiellement en raison d'une autre variable globale du même nom, conduit à penser que vous accédez à ce appel entrant ValueError ne vous attendez pas à une valeur, même si la valeur du type est correcte des anomalies communes
Plus anormale (ou à un libre par un faux nouveau):
ArithmeticError
AssertionError
AttributeError
BaseException
BufferError
BytesWarning
DeprecationWarning
EnvironmentError
EOFError
Exception
FloatingPointError
FutureWarning
GeneratorExit
ImportError
ImportWarning
IndentationError
IndexError
IOError
KeyboardInterrupt
KeyError
LookupError
MemoryError
NameError
NotImplementedError
OSError
OverflowError
PendingDeprecationWarning
ReferenceError
RuntimeError
RuntimeWarning
StandardError
StopIteration
SyntaxError
SyntaxWarning
SystemError
SystemExit
TabError
TypeError
UnboundLocalError
UnicodeDecodeError
UnicodeEncodeError
UnicodeError
UnicodeTranslateError
UnicodeWarning
UserWarning
ValueError
Avertissement
ZeroDivisionError
更多异常
Afin d'assurer la robustesse et le programme de tolérance aux pannes, ce programme ne se bloque pas quand il rencontre une erreur, nous devons faire face à des exceptions,
Si la condition d'erreur est prévisible, nous devons traiter les cas suivants: la prévention avant l'erreur
Avant l'opération ont également eu:
= 10 AGE du tout vrai: age = INPUT ( ' >>: ' ) .strip () SI age.isdigit (): # seulement quand une chaîne est un nombre entier de l' âge, le code suivant ne sera pas une erreur, la condition est prédire l' âge = int (Age) SI Âge == de AGE: Imprimer ( ' vous OBTENU ' ) PAUSE
Si la condition d'erreur est imprévisible, vous devez utiliser try ... except: traitement après une erreur
# La syntaxe de base de l'essai : bloc de code à détecter à l' exception des types d'exception: l'essai en cas de détection d' anomalie, la logique de la mise en œuvre de cette position # exemple l'essai : F = (Open « a.txt » ) G = (line.strip () pour la ligne en F) Imprimer (Next (G)) Imprimer (Next (G)) Imprimer (Next (G)) Imprimer (Next (G)) Imprimer (Next (G)) l'exception du StopIteration: f.close ()
# 1 classe d'exception ne peut être utilisé pour gérer les exceptions spécifiques, si vous ne pouvez pas traiter à l' exception non spécifiée. S1 = ' Bonjour ' l'essai : int (S1) l'exception IndexError AS E: # exception uncaught, le programme donné directement Imprimer E # 2 multibranche S1 = ' Bonjour ' l'essai : int (S1) l'exception IndexError AS E: Imprimer (E ) l'exception d' un KeyError AS E: Print (E) l'exception d' un ValueError AS E: Print (E) # . 3 exception d'exception universelle S1 = ' Bonjour ' l'essai : int (s1) l'exception Exception AS E: Print (E) # 4 anomalies multisuccursales et universel anormale # 4.1 si vous voulez que l'effet, peu importe ce qui est anormal, nous avons unifié mis au rebut, ou d' utiliser pour traiter avec eux la même logique de code, montrez ainsi en gras pour le faire, il n'y a qu'un seul assez d'exception. # 4.2 si vous voulez que l' effet, pour différentes exceptions dont nous avons besoin de personnaliser une logique différente de traitement, il serait nécessaire d'utiliser une multi-branche. # 5 peut être un multi-branche plus tard , une exception S1 = ' Bonjour ' l'essai : int (S1) l'exception IndexError AS E: Print (E) l'exception d' un KeyError AS E: Print (E) l'exception d' un ValueError AS E: Print (E) l'exception Exception E AS: Imprimer (E) # 6 autres d'anomalie S1 = ' Bonjour ' l'essai : int (S1) l'exception IndexError AS E: Print (E) l'exception d' un KeyError AS E: Print (E) l'exception d' un ValueError AS E: Print (E) # l'exception Exception AS E: # Imprimer (E) l'autre : Imprimer ( « dans un bloc de code try est exécuté sans exception I » ) a finalement : Imprimer ( « si anormale ou non, le module sera exécuté, effectue habituellement de nettoyage » ) # 7 déclencheur actif anormal essayer: L'augmentation TypeError ( ' erreur de type ' ) l'exception Exception AS E: Imprimer (E) # 8 coutume exception. Classe EgonException (BaseException): DEF le __init__ (Self, MSG): self.msg = MSG DEF __str__ (auto): retour auto un .msg l'essai : l'augmentation EgonException ( ' erreur de type ' ) l'exception EgonException AS E: Print (E) # . 9 affirme: assert état assert . 1. 1 == le Assertion 1 == 2 # 10 try..except résume
Anormaux avantages de capture:
1: gestion des erreurs et le vrai travail séparé
2: code plus facile à organiser, plus clairs et des tâches complexes plus faciles à mettre en œuvre;
3: Sans aucun doute, plus sûr, et ne sera pas pour un contrôle mineur du programme de façon inattendue accident a;
Principalement des connaissances théoriques, cette dernière utilisation est la clé, comme je veux passer en revue les modules pickle et os, voilà.