Resumen y Ejercitacion Python
Resumen y Ejercitacion Python
Tipos de datos:
Comentarios:
No modifican nada en el programa, solo es útil para aclarar cosas o escribir sin necesidad de
ejecutar o causar un error. Se ponen con un # adelante de lo que se va a escribir
#--------------------------Esto es un comentario----------------------------
Variables:
Pueden tener un valor constante o variar. Los valores que puede adquirir pueden cambiar a lo
largo del programa y pueden ser valores de cualquier tipo de dato.
variable1 = 123
variable2 = “esto es una variable”
variable3 = [1,2,3,4,5]
variable4 = (1,2,3,4,5)
variable5 = false
variable6 = {1:perro,2:gato,3:caballo,4:vaca,5:gallina}
Dato: una raíz en python se pone como exponente 1 ⁄ 2. por ejemplo 4**1(/2)
Operadores lógicos:
Sentencia if:
Sentencia condicional que ejecuta una acción siempre que esta sea verdadera(true). De lo
contrario pasa a una sentencia de tipo else(si solo hay 2 casos) o una sentencia elif y else (si
hay más de dos casos, termina con una sentencia else y todo lo del medio es una sentencia
elif).
Supongamos que queremos utilizar muchas sentencias If, pero que queremos que todo se
imprima en la pantalla. pues no son casos distintos, sino temas distintos. En este caso
optamos por separar cada tema individualmente con su sentencia If y no agregar muchas
sentencias elif.
Esto porque en una sentencia condicional con elif, el programa analizará la situación desde la
primera afirmación hasta la última en busca de una sentencia True. Cuando la encuentra todo
el resto de sentencias no se ejecutan.
Bucles repetitivos
Bucle For: Es de carácter lógico(no lógico-matemático) y se utiliza para repetir una sentencia
de manera definida dentro del bucle.
Si queremos detener el bucle en un punto exacto del programa, ponemos un break, que debe
estar acompañado de una sentencia If que indique al programa bajo qué condiciones debe
dejar de ejecutarlo.
cadena = 'Python'
for letra in cadena:
if letra == 'h':
print("Se encontró la h")
break
print(letra)
#la condición se da antes de imprimir el resto de letras porque de lo
#contrario el programa imprime la letra “h”y después para el programa y
#nosotros estamos buscando que el programa se pare antes de imprimir la
#letra h
Supongamos que queremos hacer un programa que repita una cierta cantidad de veces una
acción. Pero en vez de dar una condición de veces ponemos nosotros el valor exacto de
veces.
En ese caso procedemos creando una primera variable que nos dé la cantidad exacta a
repetir y utilizando range(variable) en la parte condicional del bucle, tendremos una función
que se repite una cierta cantidad de veces elegida.
Bucle While: De carácter lógico-matemático, este bucle repite una sentencia siempre que la
condición comparativa sea verdadera. El bucle depende de una variable inicial declarada
previamente, que ayuda al bucle a repetir el ciclo la cantidad x de repeticiones.
Si queremos detener el bucle en un punto exacto del programa, ponemos un break, que debe
estar acompañado de una sentencia If que indique al programa bajo qué condiciones debe
dejar de ejecutarlo.
x = 5
while True:
x -= 1
print(x)
if x == 0:
print("Fin del bucle")
break
x = 5
while x > 0:
x -=1
print(x)
#4,3,2,1,0
Un dato interesante y que utilizan algunos tipos de virus es que si no se pone una condición al
bucle while, este podría repetirse de manera infinita. Como por ejemplo:
while True:
print("Bucle infinito")
#esto se va a repetir de manera infinita, sin poder pararlo a no ser que
#cerremos el programa. También podemos parar su ejecución con Ctrl+C en VSC
De este modo funcionan algunos tipos de virus que abren archivos o páginas de internet
infinitamente hasta que la computadora se reinicia porque la memoria RAM llegó a su máxima
capacidad.
Ahora bien, si queremos que el bucle excluya un solo valor dentro del bucle, debajo de la
sentencia If utilizamos un continue, que se usa para decirle al lenguaje que si pasa esa
condición, siga sin ejecutar solo ese valor. Y previo a la misma sentencia ponemos la suma,
porque queremos que una vez sumado el valor, analice si debe excluirlo o no.
Listas
Recordemos que una lista es un conjunto de datos de cualquier tipo que se guardan en una
sola variable para poder ser modificados. Pueden incluso tener listas más pequeñas dentro
de una misma lista. Para crear una lista todos los valores deben estar encerrados entre
[corchetes]
Si queremos acceder a un valor específico de la lista, tenemos que tener en cuenta que cada
valor tiene una posición, comenzando en [0] como la primera posición. Así si queremos
imprimir el valor en la quinta posición en una lista, la pondremos como print(lista[4])
Existen muchos métodos métodos que se pueden hacer con las listas, pero vamos a nombrar
los más utilizados y útiles a la hora de utilizar las listas:
lista = [5,10,15,25]
print(lista.append(40))
#[5,10,15,25,40]
Insert(índice, valor): Añade un ítem en una posición específica de la lista.
lista = [5,10,15,25]
print(lista.extend([40,65]))
#[5,10,15,25,40,65]
Remove(): Elimina el primer ítem de la lista que concuerde con el valor indicado.
lista = [5,10,15,25,15,40]
print(lista.remove(15))
#[5,10,25,15,40]
Pop(): Elimina un valor de la lista indicado según su posición. Si no tiene una posición
indicada, por defecto elimina el último valor agregado.
lista = [5,10,15,25]
print(lista.pop())
#[5,10,15]
Len(): Nos indica la longitud de la lista, la cantidad de datos que componen dicha lista.
lista = [5,10,15,25]
print(len(lista))
#4
Index(): Indica el número de índice del valor solicitado.
lista = [5,10,15,25]
print(lista.index(15))
#2
Con la función index sucede algo a tener en cuenta. Es que si hay dos valores iguales en toda
la lista, no nos va a tirar dos valores de índice, solo los arroja el valor de índice del primer
número que concuerda con lo que ponemos.
lista = [5,10,15,25,15,40]
print(lista.index(15))
#2
lista = [5,10,15,25,15,40,15,60,15]
print(lista.count(15))
#4
lista = [5,10,15,25,15,40]
lista = [25,15,10,40,5]
print(lista.sort())
#[5,10,15,25,40]
lista = [5,10,15,25,40,65]
lista.reverse()
print(lista)
#[65,40,25,15,10,5]
Con las últimas dos funciones podemos pedir al código que ordene los números en el orden
inverso al que nosotros definimos.
lista = [25,15,10,40,5]
lista.sort(reverse = true)
print(lista)
#[40,25,15,10,5]
Cadena de caracteres
Los datos de tipo cadena, son una serie de caracteres donde cada uno de esos caracteres
cuenta individualmente. Se declaran entre “comillas”. Una cadena puede no tener caracteres,
osea ser A = “ “
Imaginemos que queremos que estas comillas se vean en la impresión de la cadena, para
esto agregamos /” donde queremos que la comilla se vea.
Del mismo modo, si queremos poner un párrafo completo para luego imprimirlo, no podemos
hacer saltos de línea dentro de la cadena. Para esto le tenemos que especificar al lenguaje
que la cadena cuenta con saltos de línea. esto se hace poniendo 3 comillas al inicio y al final
Las cadenas son similares a las listas, ya que estas, al ser una sucesión de caracteres, cada
carácter tiene asignado un número de posición, entonces si queremos cortar una cadena,
podemos pedirle al programa que imprima ciertas posiciones dentro de la cadena. En
cadenas más grandes que pueden abarcar párrafos de texto, los espacios también cuentan
como un carácter.
Pero a diferencia de las listas, donde la posición -1 es la penúltima, en una cadena, el primer
valor siempre será cero, y si pedimos el último valor, podemos pedirlo como -1, ya que
Hay que tener en cuenta que si bien esto de que cada uno de los componentes de una
cadena tenga una posición es similar a la posición de una lista, lo que las diferencia es que en
una cadena de caracteres, la primera posición es un solo carácter, entonces pedirle al
programa imprimir el [0] de la cadena, implica que imprima solo el primer caracter que la
compone y no el primer dato o palabra.
Existen muchas funciones que se pueden hacer con estos caracteres para modificarlos. Estas
son:
len(): nos dice la cantidad de caracteres que componen a la cadena. Se diferencia del len en
una lista porque este cuenta la cantidad de caracteres individualmente, mientras que en la
lista cuenta la cantidad de datos que componen la lista.
A = “carlos”
print(len(A))
#6
A = “carlos”
print(A.capitalize())
#Carlos
A = “CARLOS”
print(A.lower())
#carlos
A = “carlos”
print(A.upper())
#CARLOS
A = “cArLoS”
print(A.swampcase())
#CaRlOs
cont(): al igual que en las listas, cuenta que cantidad de veces se repite la sentencia que
ponemos.
A = “bioingeniería”
print(A.cont(i))
#4
isalnum(): devuelve “true” si todos los caracteres son valores alfanuméricos, es decir,
alfabéticos y numéricos.
A = “bioingeniería”
print(A.isalpha())
print(A.isalnum())
#True
#True
A = “.bioingeniería.”
print(A.strip(.))
#bioingeniería
zfill(): rellena la cadena con ceros hasta completar la longitud pasada como parámetro.
A = “carlos”
print(A.zfill(10))
#0000carlos
join(): devuelve la primera cadena unida a cada uno de los elementos de la lista que se le
pasa como parámetro
split(): divide una cadena en subcadenas y las devuelve almacenadas en una lista. La división
es realizada de acuerdo a el primer parámetro, y el segundo parámetro indica el número
máximo de divisiones a realizar.
Tuplas
Las tuplas, al igual que las listas, también son una sucesión de ítems. Pero en este caso cada
ítem no cuenta como una cadena en el caso de ser de tipo str, sino que cada ítem es uno
solo.
Para acceder a un valor de una tupla, podemos cerrarlo entre los valores que se encuentra.
Con el mismo principio de la lista, a cada valor de la tupla se le asigna una posición numérica,
supongamos que queremos los valores 1 y 2 de la tupla. Para esto no debemos tomar el
Esto de no poder modificar una tupla nos plantea como podemos modificarla. Es mucho más
simple de lo que parece, primero a la tupla la tenemos que convertir en lista, voy a ponerlo en
un ejemplo para que no sea confuso.
Otra de las cosas interesantes que podemos hacer con tuplas es concatenar muchas
variables con sus respectivos valores. Esta es una opción mucho más conveniente a la hora
de declarar variables que tienen un mismo sentido.
Por ejemplo, supongamos que queremos anotar las edades en un grupo de 5 amigos, vamos
a crear dos tuplas una tupla con los nombres y a esta la vamos a igualar a la tupla con las
edades respectivas de cada persona en el orden que están en la primera tupla:
(raul,pablo,marcos,eugenia,maria) = (21,23,19,20,18)
Si pedimos al programa que imprima la edad de Raúl, basta con pedirle al programa que
imprima Raúl, que ya tiene el valor de 21.
Sobre las funciones que existen para tuplas, son muchas menos que para las listas debido a
que estas no se pueden modificar. Así que en funciones tenemos a count() e index() como
únicas funciones útiles para tuplas.
Diccionarios
De todos los nombrados, los diccionarios son el tipo de dato más abarcativo, en un
diccionario podemos mezclar muchos tipos de datos y dentro de estos podemos encontrar
listas y tuplas agregadas al mismo. Aparecen entre {llaves} y trabajan de manera un poco
diferente a las listas y tuplas. Dentro de las llaves vamos a encontrar datos que se encuentran
separados no solo por una coma, si no que por dos puntos después de un dato. Esto que está
separado por dos puntos en en sí un solo dato, pero nos dice que una parte es “como
llamamos al dato” o clave del dato y la otra es “el valor que adquiere ese mismo dato”. Por
ejemplo:
Una cosa a tener en cuenta es que las claves no pueden ser iguales, supongamos que
tenemos un diccionario de nombres, y los tenemos numerados. Si encuentra dos nombres
con la misma clave, va a imprimir en el lugar de esa clave el último valor que le dimos a esa
clave. Por ejemplo:
Diccionario = {1:"manuel",
2:"carlos",
3:"maria",
4:"pablo",
5:"andrea",
3:"gio",
3:"pablo"}
print(Diccionario)
#{1:'manuel',2:'carlos',3:'pablo',4:'pablo',5:'andrea'}
#tomo el ultimo valor que le dimos a esa clave que fue “pablo”
Al igual que las tuplas, listas o cadenas, en los diccionarios podemos encontrar la función
len() que en este caso nos indica la cantidad de “claves”. Por ejemplo, si pidiéramos la
longitud del diccionario anterior, sería 5, porque recordemos que las claves que adquieren
distintos valores siguen contando como UNA sola.
Para acceder a los elementos de un diccionario podemos optar por varios caminos, desde los
más simples como lo es poner “diccionario”[clave], de esta manera accederemos al valor del
diccionario indicado, indicando su clave.
Pero si además de no saber la cantidad de ítems, no conocemos sus valores, podemos llamar
a la función .values(), que nos dirá los valores que están presentes en el diccionario, en el
orden que los pusimos. De este modo, con ambas funciones, si no sabemos ni claves ni
valores, podemos averiguar rápidamente todo acerca del diccionario imprimiendo ambas
funciones
Dentro de un diccionario podemos cambiar los valores que adopta una clave, por ejemplo:
Existe una función que simplifica esto y nos ayuda a que sea más corto, .update(). En el
ejemplo anterior:
Pero el método .update() no solo nos sirve para cambiar algún elemento del diccionario,
además, nos sirve para agregar elementos nuevos al diccionario. Es por esto que es de
mucha más utilidad.
Si queremos borrar items de un diccionario, existen 3 métodos sencillos que nos simplifican la
tarea a la hora de hacerlo.
.pop(): Se utiliza para eliminar un ítem específico, a diferencia de las listas, en un diccionario
no elimina el último elemento agregado si no especificamos, tenemos que especificar una
clave si o si.
del: Funciona eliminando un ítem solicitado, pero esta función implica un menor uso de
espacio en el programa
Aunque parece algo poco práctico, muchas veces el espacio de memoria y sobre todo en
proyectos grandes, es de vital importancia. ahorrar espacio de caracteres de donde sea suele
ser preferible a ir por la vía más fácil.
Funciones
Son pedazos de código que se pueden llamar en cualquier momento y sirven entre otras
cosas para ahorrar espacio y no ser redundantes y tener que poner las mismas líneas de
código muchas veces muchas veces. Para declarar una función primero tenemos que
empezar con un “def”.
def mifuncion():
print(“hola mundo”)
#acá la función ya está completa, podemos llamarla en cualquier momento
mifuncion() #haciendo esto va a ejecutar la función que definimos
Recursividad de funciones
Una función recursiva es aquella que dentro de su propio código, se incluye a sí misma, por
ejemplo, vamos a hacer una función que calcule el factorial de un número que indiquemos:
def factor(numero):
if numero == 1:
return 1 #esto detiene la función cuando sea 1, devuelve 1
else:
return (numero * factor(numero -1))
#acá se produce algo parecido a un ciclo, que se detiene en 1
numero = int(input(“por favor, ingrese un número”))
print(factor(numero))
Módulos
El uso de módulos simplifica muchísimo los programas y reduce significativamente las líneas
de código.
2. El programa debe pedir un número y analizar si es par o impar. Además, debe analizar
si el número es positivo o negativo e imprimir un mensaje que diga ambas cosas.
Adicionalmente proponemos que el programa se haga creando dos funciones distintas,
que expresen cada una de las condiciones que se piden.
3. Escribí un programa que permita saber si un año es bisiesto. Para que un año sea
bisiesto debe ser divisible por 4 y no debe ser divisible por 100, excepto que también
sea divisible por 400.
4. Escribí un programa que, dado un número entero, muestre su valor absoluto. Recordá
que, para los números positivos su valor absoluto es igual al número (el valor absoluto
de 52 es 52), mientras que, para los negativos, su valor absoluto es el número
multiplicado por -1 (el valor absoluto de -52 es 52).
5. Escribí un programa que le solicite al usuario un número entero y muestre todos los
números correlativos entre el 1 y el número ingresado por el usuario.
6. Escribí un programa que, dada una frase por el usuario, muestre la cantidad total de
vocales (tanto mayúsculas como minúsculas) que contiene.
9. Escribí un programa que, dado un número entero positivo, calcule y muestre su factorial.
El factorial de un número se obtiene multiplicando todos los números enteros positivos
que hay entre el 1 y ese número. El factorial de 0 es 1. El factorial debe ser una función
10. Escribe un programa que solicite la cantidad de números, luego que guarde los números
en una lista, que elimine el primer y último elemento de la lista y cree una nueva lista
con los elementos que no fueron eliminados.
Luego, que devuelva la media de la nueva lista que contenga todos los elementos de la
lista anterior menos el primero y el último.
11. Desarrollar un programa que pida al usuario una unidad de medida de temperatura.
Seguido a esto, debe ingresar un valor de temperatura para luego pasar de temperatura
a la que el usuario desee. Debe recordar que:
● °C a °F = (°C * 9/5) + 32
● °C a K = °C + 273
● °F a °C = (°F - 32 ) * 5/9
● °F a K = [(°F - 32) * 5/9] + 273
● K a °C = K - 273
● K a °F = [(K -273) * 9/5] +32
12. Crea un programa que incluya una función inversa() que calcule la inversión de una
cadena. Por ejemplo la cadena "estoy probando" debería devolver la cadena "odnaborp
yotse". El programa debe ejecutarse tantas veces como el usuario lo desee.
13. Escribí un programa que solicite al usuario el ingreso de un texto y almacena ese texto
en una variable. A continuación, mostrar en pantalla la primera letra del texto ingresado.
Luego, solicitar al usuario que ingrese un número positivo menor a la cantidad de
caracteres que tiene el texto que ingresó (por ejemplo, si escribió la palabra “HOLA”,
tendrá que ser un número entre 0 y 4) y almacenar este número en una variable llamada
índice. Mostrar en pantalla el carácter del texto ubicado en la posición dada por índice.
14. Escribí un programa que permita al usuario ingresar los montos de las compras de un
cliente (se desconoce la cantidad de datos que cargará, la cual puede cambiar en cada
ejecución), cortando el ingreso de datos cuando el usuario ingrese el monto 0. Si ingresa
un monto negativo, no se debe procesar y se debe pedir que ingrese un nuevo monto. Al
finalizar, informar el total a pagar teniendo que cuenta que, si las ventas superan el
monto total de 1000, se le debe aplicar un 10% de descuento.
15. Una empresa necesita saber cuántas vacaciones debe tener un empleado según su
antigüedad.
La misma empresa está dividida en 3 sectores, en cada uno los días de vacaciones son
distintos según la antigüedad:
Si ninguna de las claves ingresadas corresponde con estos casos, que imprima un
mensaje que diga “la clave de departamento no existe, inténtelo nuevamente.”
16. Escribí un programa que pregunte al usuario si desea analizar calificaciones de alumnos
y, sólo si responde “S” comenzará el procesamiento de los datos, hasta que el usuario
ingrese algo diferente de “S”. Por cada alumno, pedir el nombre del alumno y a
continuación pedir las notas de 4 materias, lengua, matemática, historia y geografía.
Finalmente mostrar un promedio de las notas del alumno y mostrar en pantalla “el
alumno tiene un promedio de: ”
17. Escribir un programa que le permita al usuario ingresar números enteros, que pueden
ser positivos o negativos. Al finalizar, debe mostrar la sumatoria de los números
negativos y el promedio de los negativos.
No olvide que no es posible dividir por cero, por lo que es necesario evitar que el
programa arroje error si no se ingresan números positivos.
19. En una determinada empresa, sus empleados son evaluados al final de cada año. Los
puntos que pueden obtener en la evaluación comienzan en 0.0 y pueden ir aumentando,
traduciéndose en mejores beneficios. Los puntos que pueden conseguir los empleados
pueden ser 0.0, 0.4, 0.6 o más, pero no valores intermedios entre las cifras mencionadas.
A continuación se muestra una tabla con los niveles correspondientes a cada
puntuación. La cantidad de dinero conseguida en cada nivel es de $50000 multiplicada
por la puntuación del nivel.
Nivel |Puntuación
Inaceptable | 0.0
Aceptable | 0.4
Meritorio | 0.6 o más
Escribir un programa que lea la puntuación del usuario e indique su nivel de rendimiento,
así como la cantidad de dinero que recibirá el usuario.
20. Podemos determinar cuántos dígitos tiene un entero positivo dividiendo repetidamente
por 10 (sin guardar el resto) hasta que el número sea menor que 10 y conste de solo 1
dígito. Sumamos 1 a este valor para cada vez que dividimos por 10. El algoritmo
recursivo sería algo así:
1. If n < 10 return 1.
Ejemplo. Si ingresó el número 15105, el resultado deberá ser: "El número ingresado tiene
5 dígitos".
21. Un palíndromo, es una palabra o frase que se lee igual en un sentido que en otro (por
ejemplo; ana, anna, otto, civic, level). Escriba un programa que lea una cadena ingresada
por teclado. Usa una función recursiva para determinar si la cuerda es un palíndromo.
Luego muestre un mensaje acorde al resultado para el usuario.
Para tener en cuenta: Una cadena vacía es un palíndromo, al igual que cualquier cadena
que contenga sólo un carácter. Cualquier cadena más larga es un palíndromo si su
primer y último carácter coinciden, y si la cadena formada al eliminar el primer y último
carácter también es un palíndromo.
22. Utilizar una función recursiva para calcular una potencia de base a y exponente b. El
usuario debe ingresar por teclado los valores de a y b como enteros positivos.
- Si b=0 entonces x = 1
- Si a = 0 entonces x = 0
- Si b = 1 entonces x = a
23. Programar una función recursiva que reciba una cadena como parámetro y devuelva la
misma cadena, pero con todos sus caracteres invertidos. Ejemplo, si el usuario ingresa
"hola" la función devolverá "aloh".
24. Cierta empresa requiere controlar las existencias de diez productos, los cuales se
almacenan en una lista “Existencias”, mientras que los pedidos de los clientes de estos
productos se almacenan en una lista “Pedidos”.
Se requiere una tercera lista, “Comprar” con base en las anteriores que represente lo que
se requiere comprar para mantener el stock de inventario, para esto se considera lo
siguiente:
- Si los valores correspondientes a los índices de las listas “Existencias” y “Pedidos” son
iguales(=), se almacena el mismo valor.
- Si el valor de “Pedidos” es mayor(<) al de ”Existencias”. Se almacena el doble de la
diferencia entre “Pedidos” y “Existencias”.
- Si se da el caso de que “Existencias” es mayor(<) que “Pedidos”, se almacena el valor
de pedidos, que indica lo que se requiere comprar para mantener stock.
26.
27. Un grupo de amigos decide organizar un juego de estrategia, para lo cual forman dos
equipos de 6 integrantes cada uno, donde un integrante de cada equipo es el “jefe” y los
otros 5 son sus “oficiales”. La regla más importante del juego es que sólo se
comunicarán mediante un canal común, por lo que deben buscar la forma de ocultar el
contenido de sus mensajes. Uno de los equipos decide utilizar un método antiguo de
encriptación llamado “la cifra del césar”, que consiste en correr cada letra del mensaje
–considerando la posición de cada una en el alfabeto– una determinada cantidad de
lugares. Ejemplo: si el corrimiento es de 2 lugares, la palabra “ATAQUE” se transforma en
“CVCSWG”.
Cada día, el “jefe” del equipo debe enviar un mensaje a cada uno de sus oficiales. Escribir
un programa que permita encriptar los 5 mensajes. El corrimiento (cantidad de lugares
que se correrán las letras) será dado por el usuario antes de comenzar a encriptar. Los 5
mensajes usarán el mismo corrimiento.
Sólo se encriptarán las letras de los mensajes, dejando al resto de caracteres sin
modificación.