Taller de Python
Profesor
Sergio Gonzalez
Estructuras de Datos
Algoritmos y programas
Estructuras de Datos
Algoritmos y programas
• Un algoritmo es un conjunto de pasos para
resolver un problema.
• Programa: Forma de implementar un
algoritmo en una computadora.
• Conjunto de instrucciones que interpreta el
procesador.
Estructuras de Datos
Algoritmos y programas
Estructuras de Datos
Programación del algoritmo
Estructuras de Datos
Codificación de un programa
Estructuras de Datos
Codificación de un programa
• Lenguaje maquina.
– 1111s y 0000s
Estructuras de Datos
Codificación de un programa
• Lenguaje maquina.
– 1111s y 0000s
• Lenguajes de programación de alto nivel.
– Texto similar a lenguaje humano
Estructuras de Datos
Traducción de un programa
• Editor de texto -> Programa fuente
• Programa traductor -> Texto a lenguaje
maquina
– Compilador - Montador (Linker)
• Ejecutable
– Interprete
• Realiza traducción
• Ejecuta directamente archivo fuente
• No genera ejecutable
Estructuras de Datos
Lenguajes de programación
• Independientes de la maquina
• Similar a lenguaje humano
• Una sola instrucción equivale a varias
instrucciones de lenguaje maquina.
• Uso de variables, símbolos y términos usados
por los humanos
• No nos preocupamos por organización real en
memoria
Estructuras de Datos
Evolución de los Lenguajes de Programación
Estructuras de Datos
Elementos básicos de lenguajes de
programación
• Constantes y variables
• Palabras reservadas
• Expresiones / Operadores
• Entrada / Salida
• Estructura de programa
• Comentarios
Estructuras de Datos
Variables
• Contenedores de datos
• Ocupa espacio en RAM
• Nombre / Identificador
– Letras
– Números
– Caracteres especiales
• Tipo
Estructuras de Datos
Tipos de datos primitivos
• Al programar, elegimos los tipos de datos a
utilizar
– Define rango acotado (Ahorro de memoria)
– Operaciones permitidas
Estructuras de Datos
Tipos de datos primitivos
• Implementados en el lenguaje
• Representación en la computadora de datos
enteros, reales, lógicos, caracteres, etc.
• Interpretación de un patrón de bits
• Limite en función del tamaño
– Cantidad de bits asignados
– Signo
– Desbordamiento (Overflow)
Estructuras de Datos
Tipos de datos primitivos
Estructuras de Datos
Booleanos
• Boolean
• Lógica booleana
– Verdadero (True)
– Falso (False)
Estructuras de Datos
Caracteres
• Char
• Tabla de caracteres
– UNICODE
– ASCII
https://unicode-table.com/es/
https://elcodigoascii.com.ar/
Estructuras de Datos
Enteros
• Byte
• Short
• Int
• Long
• Números con signo, rango posible depende
del tamaño de la variable en memoria.
Estructuras de Datos
Números reales – Punto flotante
• Float
• Double
• Precisión: Cantidad de cifras decimales
• Similar a notación científica
Estructuras de Datos
Cadenas de caracteres (Strings)
• Serie de caracteres
– Palabras
Estructuras de Datos
Palabras reservadas
Estructuras de Datos
Expresiones / Operadores
• Operar con tipos de datos primitivos
– Asignación
– Aritméticos
– Condicionales
– Bit
Estructuras de Datos
Operadores de asignación
• Asignar valores en variables
–=
– <-
– ++ / --
– += / -=
Estructuras de Datos
Operadores Aritméticos
• Uso con diferentes tipos de datos
Estructuras de Datos
Operadores condicionales
Estructuras de Datos
Operadores con Strings
• +y*
• len
• count(palabra)
• upper / lower
• title
• replace(viejo, nuevo)
Estructuras de Datos
Entrada / Salida
• Por pantalla / teclado
• Archivos
Estructuras de Datos
Estructura de programa
• Indentado
• Uso de ";"
• Sentencias entre llaves "{}"
Estructuras de Datos
Comentarios
• Líneas que no son ejecutadas
Estructuras de Datos
Estructura de un programa
• Declaración de variables
– Tipo
– Nombre
• Sentencias que implementan el algoritmo
Estructuras de Datos
Que es PYTHON?
• Python es un lenguaje de programación
interpretado con una sintaxis que favorece la
legibilidad del código.
Estructuras de Datos
Lenguaje de programación Python
• Creado a finales de los 80s por Guido Van Rossum
• Multiparadigma: Orientado a objetos, programación
funcional y programación imperativa.
• Licencia GNU GPL
• Codigo legible y transparente
Estructuras de Datos
Consideraciones antes de programar en Python
• En Python hay diferencia entre mayúsculas y
minúsculas.
• Las línea de código no deben terminar con "; "
• Los comentarios; si son de una línea debe comenzar
con "#" y si ocupan más de una línea van entre ‘ ’ ’
• El indentado es obligatorio, ya que no se usan llaves
para separar bloques de codigo
Estructuras de Datos
Imprimir cosas por pantalla
Funcion "print"
print("texto a imprimir")
Estructuras de Datos
Nuestro primer programa
#!/usr/bin/python
print("Hola mundo")
Estructuras de Datos
Declaración de variables
• Las variables no se declaran definiendo un
tipo
• El tipado es automatico y dinamico
• No se pueden realizar operaciones entre
variables de distinto tipo
• Existen funciones para el casteo:
– int()
– float()
– str()
Estructuras de Datos
Declaración de variables
nombreVariable = valor
Ejemplos:
dias = 2
decision = True
letra = "C"
radio = 25.63
dias = "lunes"
x , y , z = 34 , 25 , 12
x = y = "Hola"
Estructuras de Datos
Entornos de desarrollo Python
• Spyder
• Sublime
• Atom
• Thonny
• PyCharm
• Eclipse + PyDev
• Jupyter Notebook
Estructuras de Datos
Componentes de entorno de
•
desarrollo
Editor de texto y consola
• Facilidades en edicion
– Coloreado de Palabras según la sintaxis
– Indentación automática.
– Emparejamiento de parentesis y llaves.
– Introducción de comentarios
Estructuras de Datos
Ingreso de datos por teclado
• Para leer los datos que se introducen en el
teclado se utiliza la funcion input()
• Se puede utilizar de la siguiente manera:
variable = input("Ingrese un numero:
")
Estructuras de Datos
Ingreso de otros tipos de datos
• Por defecto, la funcion convierte la entrada a
una variable de tipo texto
• Recuerden que es posible castear las variables
variable = int(input("Ingrese un numero entero:
"))
Estructuras de Datos
Acá se pueden hacer los primeros
13 ejercicios
Estructuras de Datos
Estructuras de control
• Ya sabemos declarar variables, hacer
operaciones de distintos tipos entre ellas,
ingresar y sacar datos del programa
• Nos falta estructurar el codigo
Estructuras de Datos
Estructuras de control
• Orden de realización de los pasos del algoritmo
– Selectivas
– Repetitivas
Estructuras de Datos
Estructuras de control selectivas
• Decidir que hacer a partir de evaluar una
condición.
• Uso de operadores y expresiones lógicas.
• Bifurcaciones en el flujo del programa.
Estructuras de Datos
Alternativas simples
• Si – Entonces / If – then.
• Ejecuta una acción solo cuando se cumple una
condición
Estructuras de Datos
Alternativas simples
• Si – Entonces / If – then.
• En Python
Estructuras de Datos
Alternativas dobles
• Si – Entonces – si_no / If – then – else.
Estructuras de Datos
Alternativas múltiples
• Si – Entonces – si_no – entonces …
• If – then – else if – then …
Estructuras de Datos
Alternativas múltiples
• En Python no existe "switch - case"
Estructuras de Datos
Estructuras de control repetitivas
• Conjunto de operaciones que se deben repetir
varias veces.
• Ciclo o bucle: Parte de un programa que se
repite (iteración) un numero dado de veces o
mientras se cumpla una condición.
• Evitar bucles infinitos.
Estructuras de Datos
Estructuras de control repetitivas
Estructuras de Datos
Estructuras de control repetitivas
• Uso de contadores y acumuladores
Estructuras de Datos
Estructuras de control repetitivas
• Tres componentes básicos:
– Decisión
– Cuerpo del bucle
– Salida del bucle
Estructuras de Datos
Estructuras de control repetitivas
• Desde – Hasta / For
Estructuras de Datos
Estructuras de control repetitivas
• Desde – Hasta / For
• Repeticion de bloque de codigo 10 veces:
for var in range(10):
<bloque codigo>
Estructuras de Datos
Estructuras de control repetitivas
• Mientras / While
Estructuras de Datos
Acá se pueden hacer ejercicios
desde el 12 hasta el 21
Estructuras de Datos
Funciones - Procedimientos
• Muchas veces, partes del programa se repiten
• Es una buena practica, separar estas partes para
crear "Funciones" o "Procedimientos"
• Realizan tareas especificas
• El programa principal los "llama"
• Parámetros: Lista de valores de entrada
• Salidas
Estructuras de Datos
Definición
• Nombre identificatorio
• Parámetros: Lista de valores de entrada
• Salida
Estructuras de Datos
Invocación (Llamado)
• Utilizando su nombre y los parámetros entre
paréntesis, coincidiendo en cantidad y en tipo
con los de la definición
Estructuras de Datos
Estructuras de Datos
Ámbito de variables
• La ejecución de una función no debe afectar al
resto del programa
• Desarrollos independientes
• Variable local
– Declarada y utilizada solo dentro de la función
– Compartir nombres
– Valores no accesibles desde afuera
• Ámbito (scope): Parte del programa donde la
variable se reconoce como tal
Estructuras de Datos
Paso de parámetros
• Entrada (Argumentos): Desde el programa
principal a la función
• Salida: Resultados de la función, desde la
función al programa principal
• Entrada / Salida: Mismo parámetro para
mandar argumentos y devolver resultados.
• Tipos:
– Paso por valor
– Paso por referencia
Estructuras de Datos
Paso por valor
• La función recibe el valor de la variable
• Modificaciones a dicha variable, solo tienen
efecto dentro de la función
Estructuras de Datos
Paso por valor
• Todos los parámetros son solo de entrada
• Salida por retorno de la función
Estructuras de Datos
Paso por referencia
• Parámetros de Entrada / Salida
• Modificaciones a variables dentro de la función
se mantienen fuera de ella
Estructuras de Datos
Paso de parametros
Estructuras de Datos
Funciones en Python
• Tipos primitivos: Solo se permite paso por valor
• No se define tipo de salida
• No se definen tipos de parámetros
• Se pueden poner valores por defecto y asi poder
cambiar el orden de los parámetros
Estructuras de Datos
Funciones en Python
Estructuras de Datos
Funciones en Python
• Función suma de dos números enteros
Estructuras de Datos
Completar guía de ejercicios