Comme le dit le proverbe, il y a des circonstances imprévues. Lorsque nous écrivons des programmes, la navigation n'est pas toujours fluide. Certaines situations anormales se produisent souvent. Par exemple, lorsque nous allons sortir pour regarder un film, nous sortons d'abord, puis marchons. au cinéma, puis fini de regarder. Nous sommes allés faire du shopping après avoir regardé un film et sommes rentrés chez nous à pied. Cependant, après avoir regardé le film, nous avons constaté qu'il pleuvait dehors, à ce moment-là, nous avons dû annuler notre projet de shopping et rentrer chez nous. . La pluie ici est une situation anormale, nous avons donc conçu le programme Il est temps d'ajouter cette solution de gestion des exceptions.
Examinons d'abord un problème d'exception.Le code est le suivant :
number=int(input('Veuillez entrer un nombre :'))if15/number>=3:print('ok')else:print('mauvais')
Résultat de sortie :
Veuillez entrer un numéro : 3ok Veuillez entrer un numéro : 15wrong Veuillez entrer un numéro : 0Traceback(mostrecentcalllast):FileC:/Users/test.py,line2,in<module>if15/number>=3:ZeroDivisionError:divisionbyzero
Lorsque le dénominateur que nous saisissons est 0, nous constaterons que le programme signale une erreur, ce qui signifie qu'il y a un problème avec le programme que nous avons écrit. Parce que nous n'avons pas réfléchi à quoi faire lorsque le dénominateur est 0, une exception s'est produite dans le programme. , nous avons donc écrit le programme. Vous devez prendre en compte certaines situations anormales qui peuvent survenir. Découvrons plusieurs situations anormales courantes.
Il s'agit d'une exception qui se produit lors de l'accès à une clé de dictionnaire et que la valeur de la clé n'existe pas.
Le code est le suivant :
mon_dict={'dotcpp':123}print(my_dict['dot'])
L'exception est la suivante :
Traceback (dernier appel le plus récent): FileC:/Users/test.py,line2,in<module>print(my_dict['dot'])KeyError:'dot'
Ce type d'exception est plus courant lorsque nous apprenons Python. Lorsque nous accédons aux éléments de séquence , ce mécanisme d'exception sera déclenché lorsque la valeur de l'index dépasse la plage. Le code est le suivant :
ma_list=[1,2,3,4,5]print(ma_liste[100])
L'exception est la suivante :
Traceback (dernier appel le plus récent): FileC:/Users/test.py,line2,in<module>print(my_list[100])IndexError:listindexoutofrange
Il n'y a que 5 éléments dans notre liste, et cette exception sera levée si l'accès dépasse la limite.
Cette exception est levée lorsque nous utilisons une variable non définie , le code est le suivant :
name=['www.dotcpp,com']print('Nom de la variable existante :',name)print('Variable dotcpp non existante :',dotcpp)
L'exception est la suivante :
Nom de la variable existante :['www.dotcpp,com']Traceback(mostrecentcalllast):FileC:/Users/Qingyan/PycharmProjects/untitled1/teach/test.py,line3,in<module>print('Variable non existante dotcpp : ',dotcpp)NameError : le nom 'dotcpp' n'est pas défini
Cette exception se produit lorsque les données transmises sont incohérentes avec le type spécifié. Par exemple, lorsque nous voulons ajouter et soustraire deux entiers et que l'un d'eux utilise un type chaîne, cette erreur se produit.
Le code est le suivant :
a=10b='dotcpp'print(a+b)
L'exception est la suivante :
Traceback (dernier appel le plus récent): FileC:/Users/test.py,line3,in<module>print(a+b)TypeError:unsupportedoperandtype(s)for+:'int'and'str'
Les exceptions ci-dessus sont parmi les plus courantes. Nous pouvons rencontrer ValueError, OSError, AttributeError et d'autres exceptions au cours du processus d'apprentissage. Lorsque nous rencontrons une exception que nous ne reconnaissons pas, nous pouvons interroger le contenu pertinent via le document d'aide.