0% encontró este documento útil (0 votos)
213 vistas

Python - Introducción A Los Elementos Básicos

Este documento presenta una introducción al lenguaje de programación Python. Explica conceptos básicos como interpretación de código, scripts, operaciones matemáticas, variables, tipos de datos, comentarios, entrada de datos por el usuario, condicionales y estructuras de control. Incluye ejemplos de código y ejercicios prácticos para reforzar los conceptos explicados.
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
213 vistas

Python - Introducción A Los Elementos Básicos

Este documento presenta una introducción al lenguaje de programación Python. Explica conceptos básicos como interpretación de código, scripts, operaciones matemáticas, variables, tipos de datos, comentarios, entrada de datos por el usuario, condicionales y estructuras de control. Incluye ejemplos de código y ejercicios prácticos para reforzar los conceptos explicados.
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 71

Taller de Python

PROF. NICOLÁS SEPÚLVEDA


Lenguajes de programación

1
Welcome to Python.org
Versión: 3.6 o superior
https://docs.python.org/release/3.10.0/

• Interprete: para ejecutar códigos en el momento


• Scripts: para escribir programas o secuencias de códigos que se ejecutarán en el
orden escrito

Primer script o programa:


print("Hola mundo!)
Palabras reservadas

1
Operaciones básicas
 Suma  División exacta
>>> 3+4 >>> 3/4

7 0.75
 División entera
 Resta
>>> 3//4
>>> 3-4
0
-1
>>> 9//4.0
 Multiplicación
2.0
>>> 3*4  Módulo o resto de la división
12 >>> 3%4
 Potencia 3
>>> 3**4 >>> 15%7 Algunas operaciones también
81 1 se pueden usar con textos
además de números…

1
Ejercicios rápidos…
Usando el intérprete de Phyton, realiza las siguientes operaciones:
 Calcula el promedio de notas de un estudiante con notas: 6,7 5,8 6,2 6,0 5,2

 Realiza las siguientes operaciones matemáticas en Python.

 Calcula el IVA (impuesto del 19%) de productos con valores de venta como 12000, 28500, 8650,
155000, etc.

1
Errores
 Syntax Error

¿Qué error ocurrió acá?


Ocurre con algún error de escritura, gramática o fuera de las reglas de escritura del
lenguaje

2
Errores
 Excepciones
Aunque estén bien escritas gramaticalente, algunas líneas pueden dar errores
(“excepciones”) de distintos tipos al ejecutarlas

2
Errores
 Errores semánticos y otros
Acá el código está bien escrito y se ejecuta, pero... no hace lo que uno quería que
hiciera

Ejemplo: Quiero mostrar el número "un millón", pero lo escribí así: 1,000,000
>>> print(1,000,000)
1 0 0
#(resultado: los números 1, 0 y 0)

2
Print()
 Permite imprimir texto, valores o resultados, de forma que un
programa pueda mostrar información en pantalla al usuario
Ejemplos:
 Texto:
print(“texto entre comillas”)
 Números, variables u operaciones
print(insértelos acá sin comillas)
 Texto formateado
nombre, edad = “Nico”, 29
print(f’Me llamo {nombre} y tengo {edad} años’)
*Una cadena formateada parte con f’, y puede reemplazar entre {} el
valor de una variable, entre otras cosas…
2
Variables

 Una variable es un nombre que hace referencia a un valor que se le fue asignado.
 No se permite usar alguna de las palabras reservadas de Python!
 *Como buena costumbre, el nombre la variable debe ser útil para saber qué es lo que contiene.
 Los nombres distinguen mayúsculas de minúsculas (aunque no se suele iniciar con mayúsculas el
nombre de una variable)
 No debe empezar con un número ni contener espacios. Se recomienda “_” para separar palabras
 Se asignan con un igual (=). Por ejemplo…
mensaje = “hola”
velocidad_auto = 35
estado_ampolleta = 0
resultado = funcion_inventada(a)
suma = suma + numero
2 contador +=1
Tipos de datos Pro tip: si no conoces el tipo de una cosa, el
comando type(cosa) te devolverá qué
es 

 Números enteros o integers (int)


Número sin decimales. Para números binarios, poner 0b antes de su representación binaria
 Números reales o decimales (float)
Números con punto decimal, lo mejor aproximados posible. También llamados "de coma flotante"
 Números complejos o imaginarios (complex)
Números pertenecientes al conjunto de los complejos. Se construyen como a+bj, con a y b float o int
 Cadenas de texto o strings (str)
Secuencia inmutable de caracteres. Se deben poner entre comillas simples o dobles
 Valores lógicos o booleanos (bool)
Valores lógicos que pueden tomar el valor True o False, útiles para comparaciones y comprobaciones

2 Existen alguno más, pero son mucho más específicos...


Ejercicios…
 Un autito se mueve con un MRUA cuya ecuación es
¿En qué posiciones se encontrará durante los primeros 5 s? (calcular para = 0, 1, 2, 3, 4 y 5)

 Identifica regularidades en las siguientes cadenas, y escribe expresiones que produzcan las cadenas que se muestran.
Introduce variables para formar las expresiones cuando lo consideres oportuno. Usa subcadenas más cortas y operadores
de concatenación y repetición.

 Escribe un programa que muestre un texto como “El cociente de la división entre m y n es q y su resto es r”, donde se
reemplace m y n por dos variables que serían dos enteros, q sería el cociente o división entera entre ellos (//), y r sería su
2 resto o módulo (%).
#Comentarios
 Agregar un # al inicio de un texto dejará todo lo que esté a su derecha comentado
 Escribiendo al inicio y al final de un comentario una triple comilla ‘’’ también. Esto último sirve para
hacer comentarios de varias líneas
 Es una buena costumbre comentar el código para documentar, explicar, poner notas o lo que se
necesite!

3
Input()

Muchas veces será necesario que el usuario ingrese información (datos, opciones,
texto, números, preferencias, etc)

input() permite hacerlo!

*Dentro del paréntesis, conviene escribir un string que indique al usuario qué es
lo que se espera que haga*

*No olvidar guardar en una variable el valor ingresado.

*Por defecto, input() guardará lo entrado como un string. Transformar si


necesitas usar lo ingresado como número u otra cosa

Ejemplo:
variable = input(“Ingresa un número entero entre 0 y 100: ”)
3
Ejercicios…
 Escribe un programa que solicite al usuario que ingrese su nombre. El nombre se debe almacenar en una
variable llamada nombre. A continuación, se debe mostrar en pantalla el texto “Ahora estás en la matrix,
[usuario]”, donde “[usuario]” se reemplazará por el nombre que el usuario haya ingresado.

 Haz un programa que pida el nombre de una persona y lo muestre en pantalla repetido 1000 veces, pero
dejando un espacio de separación entre aparición y aparición del nombre. (Utiliza los operadores de
concatenación y repetición para ello).

 Haz un programa que pida al usuario una temperatura en Celsius y como resultado devuelva la
temperatura transformada a Fahrenheit y a Kelvin.

 Haz un programa que pida un valor en una moneda (ej: pesos) y lo transforme en otra (ej: dólares), y
devuelva al usuario una frase del tipo “x pesos corresponden a y dólares”.

3
Desafíos cortos
 Escribe un programa que le solicite al usuario ingresar una fecha formada por 8 números, donde los
primeros dos representan el día, los siguientes dos el mes y los últimos cuatro el año (DDMMAAAA).
Este dato debe guardarse en una variable. Finalmente, mostrar al usuario la fecha en un string con el
formato DD / MM / AAAA.

3
Operadores lógicos y comparación

4
Condicionales: If, Else, Elif
 Los condicionales if, else, elif en python se utilizan para ejecutar una instrucción en caso de que una o más
condiciones se cumplan. Un condicional es como el momento en que se debe tomar una decisión en nuestro
programa o script.
 Dependiendo la decisión que se tome ocurrirá una cosa u otra, o ninguna.

 If puede traducirse a “sí, entonces” (condición):


• Si el usuario entra a la tienda, entonces ofrecerle productos.
 Else puede traducirse como “sino” (condición) y normalmente se encuentra como escape a un if y debajo de
este:
• Si el usuario entra a la tienda, entonces ofrecerle productos, sino no hacer nada.
 Y Elif podría traducirse como Else If y se utiliza para enlazar varios else if sin aumentar las tabulaciones,
vendría a ser como un “si es”:
• Si el usuario entra a la tienda, entonces ofrecerle productos, si es un proveedor esconderse, sino no hacer nada.

4
Condicionales: If, Else, Elif

4
Indentación
 Espacio usado para organizar el código
en bloques.
 Dos puntos (:) e indentación son la
forma de separar bloques en Python.
Otros lenguajes usan llaves {}, por
ejemplo.
Ejercicios…
 Escribe un programa que pida un número entero y luego diga si el número es par o no

 Escribe un programa que solicite al usuario ingresar tres notas entre 1 a 7 para luego mostrarle el promedio de los tres, y
además informe según los siguientes casos:
Si el promedio es mayor a 6, indicar con alguna frase del tipo “muy bien!”.
Si el promedio es mayor a 4 indicar con alguna frase del tipo “pasaste!”.
Si el promedio es menor a 4 indicar con alguna frase del tipo “reprobaste”.

 Escribe un programa para pedir al usuario su nombre y luego el nombre de otra persona, almacenando cada nombre en
una variable. Luego mostrar en pantalla un valor de verdad que sea verdadero si se cumple que los nombres de ambas
personas comienzan con la misma letra o si terminan con la misma letra (Indicación: “string”[0] y “string”[-1] es la
primera y última letra de un texto)

4
Desafío

Imagina que te encargan un pequeño programa que le sirva a las personas para saber si pueden o no optar a
un Bono laboral, dependiendo si cumple o no con los requisitos. El programa debe preguntar los siguientes
datos al usuario: Nombre*, RUT*, Sueldo, Mes y Año en que comenzó su a trabajar en su empleo actual.
El programa debe devolver si recibe o no el bono y en qué porcentaje. Los requisitos y el beneficio
obtenido están en la siguiente tabla:

Sueldo Tiempo trabajando Porcentaje del


Beneficio
Inferior a $400mil Menos de un año 100%
Inferior a $400mil Más de un año 80%
Entre $400 mil y $600mil Menos de un año 60%
Entre $400 mil y $600mil Más de un año 40%
Más de $600mil Menos de un año 20%
Más de $600mil Más de un año 0%

*Extras: Para el Nombre, se podría verificar que este estuviera compuesto de al menos dos palabras (o sea,
nombre y apellido), impidiendo que se ingrese sólo una palabra. Para el RUT, verificar que está bien
escrito, utilizando el algoritmo de verificación de RUT.
4
Desafío

La pizzería “{Invente un nombre}” ofrece pizzas vegetarianas y no vegetarianas a sus clientes. Los
ingredientes para cada tipo de pizza aparecen a continuación:

Ingredientes vegetarianos: Pimiento y tofu.


Ingredientes no vegetarianos: Pepperoni, Jamón y Salmón.

Escribir un programa que pregunte al usuario si quiere una pizza vegetariana o no, y en función de su respuesta
le muestre un menú con los ingredientes disponibles para que elija. Solo se puede elegir un ingrediente además
de la mozzarella y el tomate que están en todas las pizzas (o sea, cada pizza tiene tres ingredientes al final).
Al final se debe imprimir por pantalla si la pizza elegida es vegetariana o no, con un listado de todos los
ingredientes que lleva, y pedirle al usuario si confirma o no su compra.
El programa debiera iniciar con algún saludo al usuario por parte de la pizzería, y después de confirmar o
cancelar la compra debiera terminar con un mensaje de despedida distinto dependiendo si se aceptó o si se
canceló la compra.

4
Ciclos, loops, bucles: while
 Problema inicial
Escribe un programa que tenga una contraseña, y que el usuario no pueda salir del bucle hasta
que no ingrese la contraseña correcta. Indicarle al usuario cuando se equivoque.

5
Ciclos, loops, bucles: while
 El ciclo while nos permite realizar múltiples iteraciones basándonos en el resultado de una
expresión lógica que puede tener como resultado un valor True o False.
 Se ejecuta mientras se cumpla la condición dada, o sea, mientras
condicion == True
 Debe tener una forma de terminar! De lo contrario el bucle se continuará ejecutando
 Se puede forzar una interrupción con break
 Se puede forzar pasar al siguiente bucle con continue

5
Ciclos, loops, bucles: while
• while con eventos
• while con conteo Ocurre hasta que se cumple una condición o algo deja de ocurrir
Ocurre hasta que el conteo llegue al final,
repitiendo el ciclo tantas veces

• while con else


*En este caso, la sentencia else se ejecuta siempre una vez termine el while*

5
Ejercicios…

 Cree un programa que le pida al usuario un número, constantemente, y se detenga cuando el usuario
ingrese el número 0. Extra: además, que cuente cuántos números pares ingresó el usuario durante la
ejecución del programa.

 Variación del extra anterior: además, informar cuál fue el mayor número ingresado por el usuario durante
la ejecución del programa.

 Escriba un Menú que pregunte al usuario por si desea la opción 1 o la opción 2 (de lo que sea), y se
mantenga preguntando hasta que el usuario ingrese una de las opciones válidas

 Escriba un programa que pregunte por un monto de ahorro, y luego vaya preguntando por depósitos que
se vayan sumando hasta que se llegue o se supere el monto de ahorro ingresado.
5
Ciclos, loops, bucles: for
 Escribe un programa que pida un número y realice la suma del 1 hasta el número usando un ciclo for
(resolver sin la fórmula de la suma de Gauss!).

6
Ciclos, loops, bucles: for
 Un bucle for es un bucle que repite el bloque de instrucciones un número predeterminado de veces.
El bloque de instrucciones que se repite se suele llamar cuerpo del bucle y cada repetición se suele
llamar iteración.

 La variable puede o no usarse en el cuerpo.


 Se puede forzar una interrupción con break
 Se puede forzar pasar al siguiente bucle con continue

6
Ciclos, loops, bucles: for
• for con nada • for con listas
Aplica el procedimiento dado para cada elemento, en el orden en
La variable puede no usarse, lo que serviría para repetir un
el que está en la lista
procedimiento tal cantidad de veces

• for con if
El for es útil para evaluar o realizar comprobaciones usando un
iterable
• for con range()
La función range() devuelve una lista con números del 0 al n-
1 dado. Ej: range(5)=[0,1,2,3,4]

6
Ciclos, loops, bucles: for
• for como contador • for como acumulador
Se puede mantener una variable a la que se vaya sumando 1 (u otro Se puede mantener una variable donde se vaya acumulando un
valor fijo) en cada iteración. En el ejemplo, el valor 1 se va agregando al valor con cada iteración. En el ejemplo, el valor de i se agrega a la
ya existente cuenta ya existente suma

• for como testigo


Se utiliza una variable que parte con una condición, y cuando ocurre
algo específico, cambia de valor lógico

6
Ejercicios…

 Escribe un programa que pida una palabra, y usando for, cuente la cantidad de letras que contiene.

 Escribir un programa en el que se pregunte al usuario por una frase y una letra, y muestre por pantalla el
número de veces que aparece la letra en la frase.

 Escribir un programa que pida al usuario un número entero y muestre por pantalla un triángulo rectángulo
como el mostrado, de altura igual al número introducido:

 Escribir un programa que pida al usuario un número entero y muestre por


pantalla si es un número primo o no (puede ser con for o while, y con ayuda de if else)

6
Desafío 1
 Implementa el algoritmo para calcular el dígito verificador del RUT

6
Desafío 2
 Escribe un programa que le pida al usuario un número entero y como respuesta se obtenga un
patrón como el siguiente, donde el número de líneas sea igual al número que ingresó el usuario.

6
Desafío 3
 Versión modificada: Similar al anterior, pero que entregue como respuesta una “equis” (X)
construida con la cantidad de líneas ingresada por el usuario

6
Contenedores: Listas
 Una lista es un arreglo de elementos donde podemos ingresar cualquier tipo de dato. Para
acceder a estos datos lo podemos hacer mediante un índice.
Una lista puede contener otra
 Las listas se delimitan por corchetes cuadrados [] y sus elementos se separan con comas.
lista adentro 
 Dentro de la lista se pueden contener distintos tipos de datos
 Los elementos de una lista se enumeran desde el 0 al n-1, siendo n la cantidad de
elementos de la lista. Estos números son los “índices”. lista[índice] permite
seleccionar un elemento específico de la lista.

7
Contenedores: Listas
 Puedes agregar más elementos a una lista, por ejemplo, sumando listas

 Sublistas: con la notación nombreDeLista[inicio:límite] puedes extraer una sublista

 del: la palabra reservada “del” sirve para eliminar elementos o la lista entera

7
Contenedores: Listas
 ¿Un objeto está o no en mi lista?
La forma “if variable in lista, else” permite verificar si un objeto está en una lista

*La forma “if variable not in lista, else” permite verificar si un objeto NO está en una lista
 Copiar una lista

En la primera forma, modificar lista1 también modificará lista2


En la segunda forma, ambas listas son objetos independientes 7
Operaciones con Listas
Algunas funciones:
 Mínimo y Máximo: min(lista) y max(lista)
Devuelven el menor y mayor elemento del contenedor o conjunto que se les entrega
 Largo: len(objeto)
Devuelve el tamaño del objeto. Para una lista, devuelve cuántos elementos contiene
 Ordenar: sorted(lista)
Ordena el iterable que se le entregue de menora a mayor (también tiene más opciones…)
 Lista de números: range(n)
Devuelve una lista con los números enteros desde el 0 al n-1 (también tiene más opciones…)

Algunos métodos:
 Agregar o remover: lista.append(elemento) / lista.remove(elemento)
 Contar apariciones: lista.count(elemento)
 Encontrar posición o índice: lista.index(elemento)
 Generar una lista de palabras a partir de una frase: “frase”.split()
*Existen muchos métodos y funciones más, así como también hay más contenedores a parte de las listas, como tuplas, conjuntos y diccionarios. 7
Ejercicios…
 Usar listas para crear un programa que calcule el promedio de notas del usuario, para una cantidad
cualquiera de notas que éste ingrese.
 Escribir un programa que almacene el abecedario en una lista, elimine de la lista las letras que ocupen
posiciones múltiplos de 3, y muestre por pantalla la lista resultante.

7
Desafío
 Escribir un programa con una lista de cosas o nombres, y tenga un menú donde el usuario pueda hacer las
siguientes acciones: agregar un nuevo elemento, remover un elemento, invertir lista, mostrar un elemento
específico (entre otras si deseas agregar más), modificar un elemento, cambiarlo de ubicación. Al realizar
una acción, la idea es que se vuelva al menú.

7
Desafío
 Juego “¡Adivina el número!”
Piensa un número del 1 al 1000, e intenta crear un programa que lo adivine lanzando números al azar. Cuando
el programa muestre un intento, el usuario deberá ingresar respuestas a los siguientes casos:
‘S’, si el número es correcto.
‘A’, si es más alto que el número que pensaste.
‘B’, si es más bajo que el número que pensaste.
En base a estas respuestas, el programa debiera ir afinando su adivinanza. Al finalizar el programa, mostrará
cuántos intentos hizo para adivinar.

Extra: Puedes programar la versión contraria también, donde el computador “piensa un número” y tú tienes
que adivinarlo mientras el programa te dice si tu intento es mayor o menor al número buscado.

*¿Hay una manera más conveniente que se puede usar para adivinar el número?
8
Tuplas y Conjuntos

 Tuplas:
Similares a las listas, pero no pueden modificarse una vez creadas.
Para crear una tupla, usar paréntesis normales: (cosa1,cosa2,cosa3…)
Para transformar una lista en tupla, usar: tuple(lista)

 Conjuntos:
Tipo de contenedor que no tiene elementos repetidos y estos no tienen orden (índices)
Para crear un conjunto, usar llaves: {cosa1, cosa2, cosa3…}
Para transformar una lista en conjunto, usar: set(lista)
*esto eliminará los elementos duplicados de la lista!
Diccionarios

 Contenedor que relaciona pares de llaves con sus valores.


Se crean de la forma:
diccionario = {“llave1”:valor1 , “llave2”:valor2 , …}
**Las llaves deben ser strings. Los valores pueden ser cualquier tipo de dato

 Asignar o agregar un valor a una llave


diccionario[llave1] = valor1’
 Eliminar un elemento:
del diccionario[llave]
 Acceder a los valores:
diccionario[llave1] -> valor1
 Ver llaves y claves
diccionario.keys() -> lista de llaves
diccionario.values() -> lista de valores
No olvidar: El valor en un diccionario puede ser una lista

Ejercicios
 Escribir un programa que almacene las asignaturas de un curso (por ejemplo, Matemáticas,
Física, Química, Historia y Lengua) pregunte al usuario la nota que ha sacado en cada asignatura
guardando ambas en un diccionario, y después muestre por pantalla un mensaje como ”En
<asignatura> has sacado <nota>” para cada una.

8
Desafío 1
 Escribir un programa que cree un diccionario de traducción español-inglés. El usuario introducirá
las palabras en español e inglés separadas por dos puntos, y cada par <palabra>:<traducción>
separados por comas.
El programa debe crear un diccionario con las palabras y sus traducciones. Después pedirá una
frase en español y utilizará el diccionario para traducirla palabra a palabra. Si una palabra no está
en el diccionario debe dejarla sin traducir.

8
Funciones
 Una función te permite definir un bloque de código reutilizable que se puede ejecutar
muchas veces dentro de tu programa. Su estructura es:

*Se usa la palabra reservada “def”, luego el nombre de la función y (si es necesario) sus parámetros. Tras los dos puntos,
todo lo que esté en la indentación será parte de la función

 Para reutilizar la función, se usa el nombre de la función para llamar a


la función, pasando los parámetros necesarios entre paréntesis.
 Las variables dentro de la función solo existen dentro de la función (a
menos que se declaren de forma global…)

 Una función se puede simplemente llamar para que se ejecute, o se


puede asignar su resultado a una variable
8
Ejercicios…
 Crea un función “ConvertirEspaciado”, que reciba como parámetro un texto y devuelve una cadena con un
espacio adicional tras cada letra. Por ejemplo, “Hola, tú” devolverá “H o l a , t ú “.
 Escribir dos funciones que permitan calcular:
• La cantidad de segundos en un tiempo dado en horas, minutos y segundos.
• La cantidad de horas, minutos y segundos de un tiempo dado en segundos.
Extra: Escribe un programa principal con un menú donde se pueda elegir la opción de convertir a segundos, convertir
a horas, minutos y segundos o salir del programa.

8
*Ejercicio de optimización*
 Juego “¡Adivina el número!”
Puedes optimizar el desafío de “Adivina el número” usando funciones

8
Desafío corto
 Crear una función que filtre una lista. De entrada recibirá una lista que contenga números enteros,
decimales y strings, y como salida debe devolver sólo los números enteros.
 Extra: Que la función sea capaz de limpiar la siguiente lista: [[“a”,1,3.3],2,[“b”,3,-4.3]]

8
Capturando errores: Try-Except
 try:
Código que se ejecutará y del que se busca capturar alguna excepción o error
 except:
Código que se ejecuta si dentro del try ocurrió alguna excepción.
*Puedes especificar varios errores específicos (except TipodeError:)
 else:
Código que se ejecutará sólo si no ocurrió una excepción dentro del try
 finally:
Código que se ejecutará siempre, independiente del resultado del try
*Si ocurre un error dentro del except, else, o finally, el programa parará debido al error.

Puedes forzar a aparecer excepciones con raise


Incluso puedes crear excepciones personalizadas con:
class MiExcepcionPersonalizada(Exception):
pass
Ejercicios…
 Localiza el error en el siguiente bloque de código. Crea una excepción para evitar que el programa se
bloquee y además explica en un mensaje al usuario la causa y/o solución
lista = [1, 2, 3, 4, 5]
lista[10]
 Crea un menú donde el usuario tenga que ingresar opciones, por ejemplo, del 1 al 5 y X para salir. Utilizar
funciones y try-except para que, si el usuario se equivoca, el programa pregunte de nuevo (*En caso de
necesitar levantar una excepción, puedes crearlas o usar la excepción genérica raise BaseException(), o cualquier otra)

8
Comprensión de listas

Método sintáctico para crear listas en base a partir de otras listas (o colecciones)
[expresion for variable in colección if condición]

Ejemplo 1:
Escribir un programa que almacene el abecedario en una lista, elimine de la lista las letras que
ocupen posiciones múltiplos de 3, y muestre por pantalla la lista resultante.
Ejemplo 2:
Crear una lista de los números divisibles por 3 dentro de las potencias de dos de los primeros 30
números enteros, en una sola línea.
Ejercicios…
 Utiliza comprensión de listas para crear, en una línea, el código para crear la función
“ConvertirEspaciado”
 Utiliza comprensión de listas para crear las siguientes listas:
 Lista con palabras de una frase pero con su primera letra en mayúsculas
 Lista de números del 1 al 100 que sean múltiplos de 5
 Utiliza for “anidados” para armar una lista con todas las coordenadas desde (0,0) a (5,8)
 Intenta armar la misma lista anterior con comprensión de listas

8
Desafío
 Crea una función para que aparezca un tablero de juego del gato #, que acepte números del 1 al 9 y X o O,
para que se reemplace en el tablero en el espacio correspondiente la X o O.

8
Desafío (continuación)
 Crea un juego del gato, donde cada jugador tenga un turno.

8
Desafío (continuación 2)

 Proyecto Extra: Que el usuario sea capaz de jugar contra la computadora, la que podrá hacer movimientos
al azar.
 *Extra versión hardcore: Que los movimientos de la computadora no sean totalmente al azar, si no que
respondan a lo que haga el usuario, como un jugador humano (o sea, crear una IA para el juego).

8
Programación Orientada a Objetos

 Paradigma de programación basado en Clases y Objetos


 Una clase es un tipo de dato creado por el usuario, que empaqueta datos y funcionalidad juntos
 Se pueden crear instancias de la clase, llamadas objetos

Atributos

Métodos
Clases y Objetos

 La palabra class permite crear una clase

 Para crear una instancia de la clase (objeto) se


hace de esta forma, indicando los atributos o
parámetros que sean necesarios dentro del
paréntesis

 Es posible crear subclases que hereden


propiedades de la clase principal
Métodos

 Método constructor init para instanciar


objeto
 Reemplaza al len
 Indica lo que se muestra al hacer print
objeto
 Sobreescribe un operador matemático
(sobrecarga de operadores)
 Método normal
Herencia

 Es posible crear subclases que hereden los


atributos y métodos de su clase originaria.
 Es posible que una subclase tenga
herencia múltiple (se priorizan de
izquierda a derecha a la hora de agregarle
argumentos a la definición de clase)
 La idea es aprovechar los atributos y
métodos originales y ampliarlos o
especificarlos para la nueva subclase
Ejercicios
 Crear una clase círculo con el atributo de radio, y con métodos para calcular su área, su perímetro y un
método __str__ que muestre el radio y diámetro del círculo
 Crear una clase “Frases” que reciba un string como atributo y tenga métodos para contar la cantidad de
palabras (con el método especial __len__), para convertir la primera letra de cada palabra en mayúscula,
para invertir todas las letras, buscar si una palabra está en la frase, entre otras.

8
Algunas funciones extra:
Funciones lambda
 Son funciones express, declarando de forma corta expresiones sencillas, en funciones
“anónimas”. Se puede o no asignar un nombre para ella

lambda argumentos : expresión


Nombre = lambda argumentos : expresión
 Ejemplo:

Esta notación también es legal en caso de funciones cortas


Algunas funciones extra:
Función enumerate()
 La función enumerate toma un iterable como argumento y devuelve tuplas
emparejando los índices (partiendo de 0) con los elementos.

enumerate(iterable)

 Ejemplo:
Algunas funciones extra:
Función zip()
 La función zip toma iterables como argumentos y devuelve tuplas emparejando
los elementos.

zip(lista1,lista2,lista3…)

 Ejemplo:
Algunas funciones extra:
Función filter()
 Filter aplica una función/condición a cada elemento de un iterable y devuelve un
iterable sólo con los elementos que hayan retornado True tras aplicarles la función

filter(función,iterable)

*Solo se indica el nombre de la función, o una función lambda*


 Ejemplo:
Algunas funciones extra:
Función map()
 Similar a filter, aplica una función a cada elemento de una lista, y retorna un
iterador con los resultados

map(función,iterable)
*Solo se indica el nombre de la función, o una función lambda*

 Ejemplo:
Ejercicios
 Utilizar la función incorporada map() para crear una función que retorne una lista con la longitud de cada palabra
(separas por espacios) de una frase. La función recibe una cadena de texto y retornara una lista.
 Crear una función que retorne las palabras de una lista de palabras que comience con una letra en especifico. Utilizar la
función filter.
 Realizar una función que tome una lista y retorne un diccionario que contenga los valores de la lista como clave y el
índice como el valor. Utilizar la función enumerate.
 Crea una función que de vuelta las letras de cada palabra de una frase, manteniendo la posición de cada palabra, y luego
retorne el resultado como un string (ej: “Esta es la frase” -> “atsE se al esarf”).

8
Desafío: Laberinto
 Parte 1:
La primera tarea consiste en construir un laberinto como el de la siguiente figura:

El laberinto se representará como una lista de listas, donde cada lista es una fila del laberinto y cada casilla se representará
con un espacio. Representar con ' ' si hay camino o con la letra ‘X’ si hay un muro. ‘S’ es la salida, y la primera casilla de la
primera fila es la entrada. La dimensión del laberinto es la cantidad de filas que posea (en caso de ser cuadrado…).
El laberinto se debe crear a partir de una tupla con las coordenadas de las casillas donde hay muro, como la siguiente:
muro = ((0,1), (0,2), (0,3), (0,4), (1,1), (2,1), (2,3), (3,3), (4,0), (4,1), (4,2), (4,3))

8
Desafío: Laberinto
 Parte 2:
La segunda parte a resolver consiste en construir un programa para recorrer el laberinto desde la entrada a la salida. La
entrada siempre está en la esquina superior izquierda y la salida en la esquina inferior derecha. Los argumentos de entrada
de la función serán los muros y la dimensión del laberinto
El programa debe devolver una lista con la secuencia de movimientos para ir de la entrada a la salida del laberinto (la
solución a un laberinto dado), como se muestra a continuación:
['Abajo', 'Abajo', 'Abajo', 'Abajo', 'Derecha', 'Derecha', 'Arriba', 'Arriba', 'Derecha', 'Derecha', 'Abajo', 'Abajo', 'Abajo']

También podría gustarte