Download Primeros pasos en Python - Instituto Tecnológico de Costa Rica

Document related concepts
no text concepts found
Transcript
Primeros Pasos en Python 3
Introducción a la programación
I semestre, 2016
1
Escribir Programas en Python
Un programador debe utilizar expresiones, funciones y métodos de forma combinada
para obtener soluciones a problemas.
Un programa en Python:
●
Archivo con extensión .py (ejemplo: circulo.py)
●
Archivo C o C++ compilados
●
Un módulo cargado dinámicamente (import)
Interprete
Python
Escribir Programas en Python
#!/usr/bin/python3
#Archivo: area-circulo.py
#Calcular área de un circulo
# A = Pi * r **2
radio = 10
area = 3.141516 * radio ** 2
print(area)
… y ¿si después quiero volver a calcular el área de un circulo?
Definición de una función
Una mejor forma para escribir programas es por medio de funciones.
def nombre_función(argumentos):
Cuerpo de la función
def: es una palabra reservada de python.
Nombre de la función es un identificador válido de python (usar un nombre significativo).
Los argumentos son las entradas que recibe el programa. Se presentan como nombres
simbólicos o identificadores internos que serán sustituidos.
Cuerpo de la función: lógica de la solución. Expresiones, combinaciones de estructuras
permitidas, podría contener invocaciones a otras funciones.
Notas de Sintaxis: dos puntos ( : ) e identación.
… ¿y las salidas? ¿y las restricciones?
Invocar funciones
Las funciones pueden ejecutarse directamente desde el intérprete o desde otro programa.
Sintaxis para la ejecución desde el intérprete:
>>> nombre_función(valores_argumentos)
Resultado (si lo hubiera)
Los argumentos son los valores de entrada que serán asociados a los nombres
simbólicos (identificadores internos que definimos)
La invocación de funciones dentro de otro programa se realiza igual, pero el resultado
no se presentará en el intérprete sino que estará a disposición de “quien” invocó la función.
Escribir Programas en Python (nivel 2)
#!/usr/bin/python3
#archivo: area-circulo2-v2.py
#Calcular área de un circulo
# A = Pi * r **2
def area_circulo(radio):
area = 3.141516 * radio ** 2
return area
resultado = area_circulo(10)
print(resultado)
Escribir Programas en Python (v2)
#!/usr/bin/python3
#Archivo: area-circulo2-v2.py
#Calcular área de un circulo
# A = Pi * r **2
def area_circulo(radio):
area = 3.141516 * radio ** 2
return area
resultado = area_circulo(10)
print(resultado)
Variable local
Únicamente es conocida
dentro del ámbito de la
función en la cual está
definida. Fuera de la
función “area” no existe.
Documentación interna del código
En Python tenemos dos formas de escribir comentarios en el código fuente:
●
De una línea: se utiliza el símbolo #
●
Multilínea: se definen con tres comillas dobles
#!/usr/bin/python3
# Archivo: area-circulo2-v3.py
# Función que calcula el área de un circulo
# Entradas: radio.
# Salidas: área del circulo
# Restricciones: el radio debe ser mayor que cero
def area_circulo(radio):
area = 3.141516 * radio ** 2
return area
# Formula: A = Pi * r **2
Documentación interna del código
En Python tenemos dos formas de escribir comentarios en el código fuente:
●
De una línea: se utiliza el símbolo #
●
Multilínea: se definen con tres comillas (docstrings)
#!/usr/bin/python3
'''
Función que calcula el área de un circulo
Entradas: radio.
Salidas: área del circulo
Restricciones: el radio debe ser mayor que cero
'''
def area_circulo(radio):
Documentación interna del código (print doc)
#!/usr/bin/python3
def area_circulo(radio):
'''
Función que calcula el área de un circulo
Entradas: radio.
Salidas: área del circulo
Restricciones: el radio debe ser mayor que cero
'''
return 3.141516 * radio ** 2
>>> print(area_circulo.__doc__)
# Formula: A = Pi * r **2
Ejercicio: Área y Perímetro de un rectángulo
Escriba un programa de python que contenga dos funciones para operar con
rectángulos:
●
Área = Base * Altura
●
Perímetro = Base + Base + Altura + Altura
Entender el
problema
Entradas
Salidas
Restricciones
Pensar
un algoritmo
Diagrama de flujo
Código
Pruebas
Comentarios
→ Utilice return para retornar el valor resultante de las operaciones.
→ Asegúrese de hacer pruebas de su programa (diseñe un plan de pruebas).
Errores.... (pulgas o bugs)
Dos tipos de errores:
●
●
Sintácticos: se da por incumplimiento de las reglas
definidas para el lenguaje.
Semánticos: se dan en tiempo de ejecución y representar
fallos en la lógica del programa. Si hay resultados pero no son
los esperados.
Ejercicio: Conversión de grados
Escriba dos funciones, bien documentas, para convertir grados centígrados a
farenheit.
Formulas:
●
Farenheit = 9 /5 * centígrados + 32
●
Centígrados: ( Farenheit – 32 ) / 1,8
Más práctica:
●
Construya una función para cada una de las conversiones que aparecen en esta
tabla:
http://es.wikipedia.org/wiki/Grado_Fahrenheit#Conversi.C3.B3n_a_otras_unidades
Más Información
Funciones:
●
http://docs.python.org/release/3.1.3/tutorial/controlflow.html#defining-functions
Errores:
●
http://docs.python.org/release/3.1.3/tutorial/errors.html
Referencias y Lecturas Complementarias
●
Material suministrado por el profesor Jeff Schmidt, Instituto Tecnológico de Costa
Rica. I semestre 2011.
Las presentaciones para el curso IC-1800:
"Introducción a la Programación" por Ing. En
Computación Alajuela se distribuyen bajo una
Licencia Creative Commons Atribución-Compartir
Igual 3.0 Costa Rica.
22
http://creativecommons.org/licenses/by-sa/3.0/cr/
http://creativecommons.org/licenses/by-sa/3.0/cr/
*La licencia de la presentación no cubre las imágenes utilizadas*
Primeros Pasos en Python 3
Introducción a la programación
I semestre, 2016
1
Escribir Programas en Python
Un programador debe utilizar expresiones, funciones y métodos de forma combinada
para obtener soluciones a problemas.
Un programa en Python:
●
Archivo con extensión .py (ejemplo: circulo.py)
●
Archivo C o C++ compilados
●
Un módulo cargado dinámicamente (import)
Interprete
Python
Expresiones: combinaciones de operadores, métodos,
funciones, datos
Formular del área: A = pi * r2
Con los conocimientos adquiridos hasta ahora: ¿cómo
podemos escribir un programa de Python que nos permita
calcular el área de un círculo?.
Escribir Programas en Python
#!/usr/bin/python3
#Archivo: area-circulo.py
#Calcular área de un circulo
# A = Pi * r **2
radio = 10
area = 3.141516 * radio ** 2
print(area)
… y ¿si después quiero volver a calcular el área de un circulo?
OJO: Este ejemplo es antes de utilizar funciones.
Aprovechar para explicar que si bien esta es una
forma de solucionar el problema, es poco reutilizable
porque para cada vez que quiero utilizarla necesito
cambiar la codificación del programa.
La primera línea es para indicarle al sistema operativo
cual python debe utilizar.
- De modo que yo podría utilizar el programa como un
script que ejecuta directamente el S.O.
$chmod z+x NOMBRE_PROGRAMA
→ esto para hacerlo ejecutable
$./NOMBRE_PROGRAMA
→ lo ejecuto.
Definición de una función
Una mejor forma para escribir programas es por medio de funciones.
def nombre_función(argumentos):
Cuerpo de la función
def: es una palabra reservada de python.
Nombre de la función es un identificador válido de python (usar un nombre significativo).
Los argumentos son las entradas que recibe el programa. Se presentan como nombres
simbólicos o identificadores internos que serán sustituidos.
Cuerpo de la función: lógica de la solución. Expresiones, combinaciones de estructuras
permitidas, podría contener invocaciones a otras funciones.
Notas de Sintaxis: dos puntos ( : ) e identación.
… ¿y las salidas? ¿y las restricciones?
Las salidas usualmente son dadas con un return, para que
otra parte del programa pueda utilizar esos valores.
( return )
Las restricciones, utilizamos comentarios para indicarle al
programados de éstas y validaciones para hacer que el
programa se asegure que los datos de entrada cumplen
con las restricciones.
Los argumentos en otros lenguajes se les conoce como
parámetros.
Ojo con los argumentos: Python permite una funciones
con un número de argumentos variable, o argumentos
por omisión (predeterminados). Revisen eso...
Ojo que en python no se define el tipo de valor que se
retornará, inclusive podría ser que para el programador no
retorne nada, en esos casos Python retorna None.
Invocar funciones
Las funciones pueden ejecutarse directamente desde el intérprete o desde otro programa.
Sintaxis para la ejecución desde el intérprete:
>>> nombre_función(valores_argumentos)
Resultado (si lo hubiera)
Los argumentos son los valores de entrada que serán asociados a los nombres
simbólicos (identificadores internos que definimos)
La invocación de funciones dentro de otro programa se realiza igual, pero el resultado
no se presentará en el intérprete sino que estará a disposición de “quien” invocó la función.
Escribir Programas en Python (nivel 2)
#!/usr/bin/python3
#archivo: area-circulo2-v2.py
#Calcular área de un circulo
# A = Pi * r **2
def area_circulo(radio):
area = 3.141516 * radio ** 2
return area
resultado = area_circulo(10)
print(resultado)
¿de dónde a donde va la función?
Incluye únicamente la línea que comienza con def, la
instanciación de la variable y el return. Lo demás es
para ejecutar la función con un argumento particular,
pero podría hacer lo mismo usando el shell de
python.
Escribir Programas en Python (v2)
#!/usr/bin/python3
#Archivo: area-circulo2-v2.py
#Calcular área de un circulo
# A = Pi * r **2
def area_circulo(radio):
area = 3.141516 * radio ** 2
Variable local
Únicamente es conocida
dentro del ámbito de la
función en la cual está
definida. Fuera de la
función “area” no existe.
return area
resultado = area_circulo(10)
print(resultado)
¿de dónde a donde va la función?
Incluye únicamente la línea que comienza con def, la
instanciación de la variable y el return. Lo demás es
para ejecutar la función con un argumento particular,
pero podría hacer lo mismo usando el shell de
python.
Explicar el concepto de variable local, acá área es una
variable local que únicamente será válida dentro del
cuerpo del programa.
Documentación interna del código
En Python tenemos dos formas de escribir comentarios en el código fuente:
●
De una línea: se utiliza el símbolo #
●
Multilínea: se definen con tres comillas dobles
#!/usr/bin/python3
# Archivo: area-circulo2-v3.py
# Función que calcula el área de un circulo
# Entradas: radio.
# Salidas: área del circulo
# Restricciones: el radio debe ser mayor que cero
def area_circulo(radio):
area = 3.141516 * radio ** 2
# Formula: A = Pi * r **2
return area
La primera línea del comentario es para indicarle al
SO qué versión de python debe utilizar. (buena
práctica)
La segunda línea es para identificar el nombre del
archivo.
– se podría agregar la fecha y el nombre del autor.
Obligatoriamente utilizaremos:
- descripción (se omite decirlo explícito)
- entradas, salidas, restricciones
Documentación interna del código
En Python tenemos dos formas de escribir comentarios en el código fuente:
●
De una línea: se utiliza el símbolo #
●
Multilínea: se definen con tres comillas (docstrings)
#!/usr/bin/python3
'''
Función que calcula el área de un circulo
Entradas: radio.
Salidas: área del circulo
Restricciones: el radio debe ser mayor que cero
'''
def area_circulo(radio):
Acá no hay identación en el comentario multliinea
porque se asume que está encima de la función y no
adentro.
Documentación interna del código (print doc)
#!/usr/bin/python3
def area_circulo(radio):
'''
Función que calcula el área de un circulo
Entradas: radio.
Salidas: área del circulo
Restricciones: el radio debe ser mayor que cero
'''
return 3.141516 * radio ** 2
# Formula: A = Pi * r **2
>>> print(area_circulo.__doc__)
Acá hay una identación en el comentario interno de la
función porque sino hay un error.
Si se hace un programa así:
#!/usr/bin/python3
#Filename: area-circulo.py
'''
Este programa es tuanis!
'''
>>> print(__doc__)
Ejercicio: Área y Perímetro de un rectángulo
Escriba un programa de python que contenga dos funciones para operar con
rectángulos:
●
Área = Base * Altura
●
Perímetro = Base + Base + Altura + Altura
Entender el
problema
Entradas
Salidas
Restricciones
Pensar
un algoritmo
Diagrama de flujo
Código
Pruebas
Comentarios
→ Utilice return para retornar el valor resultante de las operaciones.
→ Asegúrese de hacer pruebas de su programa (diseñe un plan de pruebas).
las funciones input y print, para solicitar los parámetros y
para imprimir el resultado de los cálculos en pantalla.
La solución en python necesitaría hacer algo como:
1. recibir argumentos
2. validarlos (contra las restricciones)
– en caso de error indicarlo.
3. generar las salidas
Errores.... (pulgas o bugs)
Dos tipos de errores:
●
●
Sintácticos: se da por incumplimiento de las reglas
definidas para el lenguaje.
Semánticos: se dan en tiempo de ejecución y representar
fallos en la lógica del programa. Si hay resultados pero no son
los esperados.
Herramientas para corrección de errores: depurador o
debugger
→ El depurador no solo es utilizado ante la presencia de
errores, también cuando queremos mejorara la eficiencia
de un programa.
● El depurador se puede utilizar de forma gráfica o utilizando
funciones del módulo pdb o el módulo trace.
Ejercicio: Conversión de grados
Escriba dos funciones, bien documentas, para convertir grados centígrados a
farenheit.
Formulas:
●
Farenheit = 9 /5 * centígrados + 32
●
Centígrados: ( Farenheit – 32 ) / 1,8
Más práctica:
●
Construya una función para cada una de las conversiones que aparecen en esta
tabla:
http://es.wikipedia.org/wiki/Grado_Fahrenheit#Conversi.C3.B3n_a_otras_unidades
Más Información
Funciones:
●
http://docs.python.org/release/3.1.3/tutorial/controlflow.html#defining-functions
Errores:
●
http://docs.python.org/release/3.1.3/tutorial/errors.html
Referencias y Lecturas Complementarias
●
Material suministrado por el profesor Jeff Schmidt, Instituto Tecnológico de Costa
Rica. I semestre 2011.
Las presentaciones para el curso IC-1800:
"Introducción a la Programación" por Ing. En
Computación Alajuela se distribuyen bajo una
Licencia Creative Commons Atribución-Compartir
Igual 3.0 Costa Rica.
22
http://creativecommons.org/licenses/by-sa/3.0/cr/
http://creativecommons.org/licenses/by-sa/3.0/cr/
*La licencia de la presentación no cubre las imágenes utilizadas*