Está en la página 1de 37

Errores, Funciones

predefinidas, Métodos,
Ejecución de Programas
y Legibilidad
Asignatura:
Fundamentos de Programación
Docente:
Ing. Jose Alberto Zequeira Pérez
Contenido

• Errores de tecleo y excepciones


• Funciones predefinidas
• Librerías e importación de funciones
• Métodos
• Ejercicio
• Ejecución de programas por fuera del IDE
• Legibilidad de los programas
Errores de tecleo y excepciones

Cuando introducimos una expresión y damos la orden


de evaluarla, es posible que nos equivoquemos.
Si hemos formado incorrectamente una expresión,
Python nos lo indicará con un mensaje de error. El
mensaje de error proporciona información acerca del
tipo de error cometido y del lugar en el que este ha
sido detectado.
Aquí tienes una expresión errónea y el mensaje de
error correspondiente:
Errores de tecleo y excepciones

Python nos indica que ha detectado un error de sintaxis (SyntaxError) y


«apunta» con una punta de flecha (el carácter ^) al lugar en el que se
encuentra. (El texto «File “stdin”, line 1» indica que el error se ha
producido al leer de teclado, esto es, de la entrada estándar — es una
abreviatura del inglés «standard input», que se traduce por «entrada
estándar»—).
Errores de tecleo y excepciones

En Python los errores se denominan excepciones. Cuando Python es incapaz


de analizar una expresión, produce una excepción. Cuando el intérprete
interactivo detecta la excepción, nos muestra por pantalla un mensaje de error.
Veamos algunos otros errores y los mensajes que produce Python.
Errores de tecleo y excepciones

El último error es de naturaleza distinta a los anteriores (no hay un


carácter ^ apuntando a lugar alguno): se trata de un error de división
por cero (ZeroDivisionError), cuando los otros eran errores sintácticos
(SyntaxError).
La cantidad que resulta de dividir por cero no está definida y Python es
incapaz de calcular un valor como resultado de la expresión 1 / 0.
No es un error sintáctico porque la expresión está sintácticamente bien
formada: el operador de división tiene dos operandos, como toca.
Funciones predefinidas

Hemos estudiado los operadores aritméticos básicos. Python


también proporciona funciones que podemos utilizar en las
expresiones. Estas funciones se dice que están predefinidas.

Existen muchas funciones predefinidas, pero es pronto para


aprenderlas todas. Te resumi algunas que ya puedes utilizar:
Funciones predefinidas – La función abs

La función abs, por ejemplo, calcula el valor absoluto de


un número. Podemos usarla como en estas expresiones:

El número sobre el que se aplica la función se denomina argumento.


Observa que el argumento de la función debe ir encerrado entre paréntesis:
Funciones predefinidas – La función float

float: conversión a flotante. Si recibe un número entero como argumento,


devuelve el mismo número convertido en un flotante equivalente.

La función float también acepta argumentos de tipo cadena. Cuando se le pasa


una cadena, float la convierte en el número flotante que esta representa:
Funciones predefinidas – La función int

int: conversión a entero. Si recibe un número flotante como argumento,


devuelve el entero que se obtiene eliminando la parte fraccionaria.

La función int acepta como argumento una cadena:


Funciones predefinidas – La función str

str: conversión a cadena. Recibe un número y devuelve una


representación de este como cadena.

La función str también puede recibir como argumento una cadena,


pero en ese caso devuelve como resultado la misma cadena.
Funciones predefinidas – La funciones bin, oct
y hex
bin: representación en binario. Convierte un número entero en una
cadena con el número expresado en base 2.

oct: representación en octal. Convierte un número entero en una


cadena con el número expresado en base 8.

hex: representación en hexadecimal. Convierte un número entero en


una cadena con el número expresado en base 16.
Funciones predefinidas – La función round

round: redondeo. Puede usarse con uno o dos argumentos. Si se


usa con un solo argumento, redondea el número al entero más
próximo.
Funciones predefinidas

Estas funciones (y las que estudiaremos más adelante) pueden


formar parte de expresiones y sus argumentos pueden, a su vez,
ser expresiones. Observa los siguientes ejemplos:
Librerías e importación de funciones

Python también proporciona funciones trigonométricas, logaritmos,


etc., pero no están directamente disponibles cuando iniciamos una
sesión.
Antes de utilizarlas hemos de indicar a Python que vamos a
hacerlo. Para ello, importamos cada función de una librería o
módulo.
Librería - math

Empezaremos por importar la función seno (sin, del inglés «sinus»)


de la librería matemática (math):

Ahora podemos utilizar la función en nuestros cálculos:

Observa que el argumento de la función seno debe expresarse en radianes


Librería - math

Inicialmente Python no «sabe» calcular la función seno. Cuando importamos


una función, Python «aprende» su definición y nos permite utilizarla. Las
definiciones de funciones residen en librerías o módulos. Las funciones
trigonométricas residen en el módulo matemático.

En una misma sentencia podemos importar más de una función. Basta con
separar sus nombres con comas:
Librería - math

Puede resultar tedioso importar un gran número de funciones y variables de


un módulo.
Python ofrece un atajo: si utilizamos un asterisco, se importan todos los
elementos proporcionados por un módulo. Para importar todos los
elementos del módulo math escribimos:
Librería - math

Así de fácil es importar toda una librería o módulo. De todos modos, no resulta
muy aconsejable por dos razones:
• Al importar elemento a elemento, el programa gana en legibilidad, pues
sabemos de dónde proviene cada identificador.
• Si hemos definido una variable con un nombre determinado y dicho nombre
coincide con el de una función definida en un módulo, nuestra variable será
sustituida por la función. Si no sabes todos los elementos que define un módulo,
es posible que esta coincidencia de nombre tenga lugar, te pase inadvertida
inicialmente y te lleves una sorpresa cuando intentes usar la variable.
Librería - math

Algunas de las funciones que encontrarás en el módulo matemático:


Librería – math, evitando las coincidencias

Python ofrece un modo de evitar el problema de las coincidencias: indicar solo el


nombre del módulo al importar.

De esta forma, todas las funciones del módulo math están disponibles,
pero usando el nombre del módulo y un punto como prefijo:
Métodos

Los datos de ciertos tipos permiten invocar unas funciones especiales: los
denominados «métodos».
Hemos visto que las funciones se invocan así: función(argumento1,
argumento2, argumento3. . . ).
Los métodos son funciones especiales, pues se invocan del siguiente modo:
argumento1.método(argumento2, argumento3. . . ).
Esta sintaxis recalca el hecho de que, para un método, el primer argumento es
muy especial. Es como el sujeto de una frase de la que el método es el verbo.
Métodos
Un método permite, por ejemplo, obtener una versión en minúsculas de la cadena sobre la que se
invoca:

La sintaxis es diferente de la propia de una llamada a función convencional. Lo primero


que aparece es el propio objeto sobre el se efectúa la llamada. El nombre del método se
separa del objeto con un punto. Los paréntesis abierto y cerrado al final son obligatorios.
Métodos - format

Aprender a mostrar la información con formato es esencial para que el


usuario encuentre atractiva la forma en que ve los resultados.
El método format de las cadenas nos proporciona una herramienta
fundamental, aunque cuesta un poco dominarlo.
Empezamos por aprender a interpolar valores en una cadena, es decir,
sustituir una marca especial por el valor de una expresión.
Fíjate en esta sentencia:
Métodos - format

Los caracteres {0} han sido reemplazados por los caracteres 1.23.
Podemos interpolar más de un valor con una sola llamada a format:

Cada marca de la forma {n}, donde n es un número entero, se sustituye por un


argumento de format: la marca {0} se ha sustituido por el primer argumento y la
marca {1} por el segundo. En general, la marca {n} se sustituye por el
argumento (n+1)-ésimo.
Métodos - format

Las marcas pueden disponerse dentro de la cadena en el orden que desees:

Las marcas pueden modificarse para controlar el aspecto de la información.


Imaginemos que deseamos mostrar los valores flotantes redondeados con un solo
decimal:
Ejercicio
Diseña un programa que, a partir del valor de la base y de la altura de un triángulo (3 y 5
metros, respectivamente), muestre el valor de su área (en metros cuadrados). Recuerda
que el área A de un triángulo se puede calcular a partir de la base b y la altura h como:

1
𝐴= 𝑏h
2

Después de guarde el archivo como “areaTriangulo.py”


Ejecución de programas por fuera del IDE

El programa que hemos escrito en el ejercicio anterior no solo


puede ejecutarse desde el entorno de desarrollo.
Abre un intérprete de órdenes y ve al directorio en el que se
encuentra el archivo.
A continuación, escribe “python areaTriangulo.py”.
El sistema responderá imprimiendo en pantalla el resultado de
ejecutar el programa.
Legibilidad de los programas
Hemos visto cómo un uso apropiado de las líneas en blanco ayuda a hacer más legibles
los programas.
Vale la pena que abundemos en la cuestión de la legibilidad. Los programadores pasan
muchas horas leyendo programas escritos por ellos mismos o por otros. Las razones son
varias:
• Puede que hayas de seguir trabajando en un proyecto que abandonaste hace tiempo.
Eso supone que releas lo que escribiste para continuar.
• O puede que un programa que ya habías dado por bueno se revele defectuoso unos
días o meses después de ser utilizado a diario, con lo que deberás releer tu programa y
buscar los errores cometidos para corregirlos.
Legibilidad de los programas
• O también es posible que un programa ya escrito y sin defectos deba extenderse para que se le
añada nueva funcionalidad o se adapte a nuevos estándares. Nuevamente te tocará releer buena
parte del código para introducir los cambios necesarios.
• O quizá hayas conseguido trabajo en una empresa y te asignen la mejora de una pieza de código
que escribió otro programador. Cuando hayas de estudiarlo, le estarás infinitamente agradecido si
se preocupó de la legibilidad.
• O podría ser el caso de que estuvieses escribiendo programas para demostrar al profesorado que
has alcanzado los objetivos de una asignatura de aprendizaje de la programación. Seguro que te
gustará ver al evaluador contento cuando lea tus programas y sea capaz de entenderlos.

En todos estos casos (y en muchos otros), haberse asegurado de facilitar la lectura del código será
un elemento con un claro impacto en la productividad.
Legibilidad de los programas

Comparemos dos programas que hacen lo mismo desde el punto de


vista de la legibilidad. Este es el primer programa:
Legibilidad de los programas

Y este es el segundo:
Legibilidad de los programas

Dentro de poco empezaremos a realizar programas de mayor envergadura y con


mucha mayor complicación. Incluso observando las reglas indicadas, va a
resultar una tarea ardua leer un programa completo.
Un modo de aumentar la legibilidad de un programa consiste en intercalar
comentarios que expliquen su finalidad o que aclaren sus pasajes más oscuros.
Como esos comentarios solo tienen por objeto facilitar la legibilidad de los
programas para los programadores, pueden escribirse en el idioma que desees.
Cuando el intérprete Python ve un comentario no hace nada con él: lo omite.
Legibilidad de los programas
Los comentarios Python se inician con el símbolo # (que se lee «almohadilla»): todo texto desde la
almohadilla hasta el final de la línea se considera comentario y, en consecuencia, es omitido por Python. He
aquí un programa con comentarios:
Legibilidad de los programas

Es buena práctica que «comentes» tus programas.


Pero ten presente que no hay reglas fijas que indiquen cuándo,
dónde y cómo comentar los programas: las que acabes adoptando
formarán parte de tu estilo de programación.
Referencias

• Fundamentos de Programación. Algoritmos, estructura de datos y


objetos. Cuarta edición. McGraw-Hill. Luis Joyanes Aguilar
• Introducción a la programación con Python 3. Andres Marzal,
Isabel Gracia, Pedro García.
Gracias
¿Preguntas?

También podría gustarte