Como dice el refrán, hay circunstancias imprevistas. Cuando escribimos programas, no siempre todo va bien. A menudo ocurren algunas situaciones anormales, por ejemplo, cuando vamos a salir a ver una película, primero salimos y luego caminamos. al cine y luego terminamos de mirar. Fuimos de compras después de ver una película y caminamos de regreso a casa, sin embargo, después de ver la película, descubrimos que estaba lloviendo en ese momento, tuvimos que cancelar nuestro plan de compras y regresar a casa. La lluvia aquí es una situación anormal, por eso diseñamos el programa Es hora de agregar esta solución de manejo de excepciones.
Primero veamos un problema de excepción . El código es el siguiente:
número=int(input('Ingrese un número:'))if15/número>=3:print('ok')else:print('incorrecto')
Resultado de salida:
Ingrese un número: 3ok Ingrese un número: 15wrong Ingrese un número: 0Traceback(mostrecentcalllast):FileC:/Users/test.py,line2,in<module>if15/number>=3:ZeroDivisionError:divisionbyzero
Cuando el denominador que ingresamos es 0, encontraremos que el programa informa un error, lo que significa que hay un problema con el programa que escribimos. Debido a que no consideramos qué hacer cuando el denominador es 0, ocurrió una excepción en el programa. Entonces escribimos el programa. Debe tener en cuenta algunas situaciones anormales que pueden ocurrir. Aprendamos sobre varias situaciones anormales comunes.
Esta es una excepción que ocurre cuando se accede a una clave del diccionario y el valor de la clave no existe.
El código es el siguiente:
mi_dict={'dotcpp':123}print(mi_dict['punto'])
La excepción es la siguiente:
Traceback(mostrecentcalllast):FileC:/Users/test.py,line2,in<module>print(my_dict['dot'])KeyError:'dot'
Este tipo de excepción es más común cuando aprendemos Python. Cuando accedemos a elementos de secuencia , este mecanismo de excepción se activará cuando el valor del índice exceda el rango.
mi_lista=[1,2,3,4,5]print(mi_lista[100])
La excepción es la siguiente:
Traceback(mostrecentcalllast):FileC:/Users/test.py,line2,in<module>print(my_list[100])IndexError:listindexoutofrange
Solo hay 5 elementos en nuestra lista y esta excepción se producirá si el acceso excede el límite.
Esta excepción se lanza cuando usamos una variable indefinida , el código es el siguiente:
nombre=['www.dotcpp,com']print('Nombre de variable existente:',nombre)print('Variable no existente dotcpp:',dotcpp)
La excepción es la siguiente:
Nombre de variable existente:['www.dotcpp,com']Traceback(mostrecentcalllast):FileC:/Users/Qingyan/PycharmProjects/untitled1/teach/test.py,line3,in<module>print('Variable no existente dotcpp: ',dotcpp)Error de nombre:nombre'dotcpp'no está definido
Esta excepción ocurre cuando los datos pasados no son consistentes con el tipo especificado. Por ejemplo, cuando queremos sumar y restar dos números enteros y uno de ellos usa un tipo de cadena, se producirá este error.
El código es el siguiente:
a=10b='puntocpp'print(a+b)
La excepción es la siguiente:
Rastreo (última llamada más reciente): ArchivoC:/Users/test.py,line3,in<module>print(a+b)TypeError:unsupportedoperandtype(s)for+:'int'and'str'
Las anteriores son algunas de las excepciones más comunes. Podemos encontrar ValueError, OSError, AttributeError y otras excepciones en el proceso de aprendizaje. Cuando encontramos una excepción que no reconocemos, podemos consultar el contenido relevante a través del documento de ayuda.