100% encontró este documento útil (1 voto)
15 vistas29 páginas

Introducción a Lenguajes de Programación

Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
15 vistas29 páginas

Introducción a Lenguajes de Programación

Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Lenguajes de programación

Mod 1 Lenguajes de programación:

¿Qué es Programar?

●​ Dar instrucciones: Es el acto de escribir instrucciones específicas para que una computadora
realice una tarea.
●​ Resolver problemas: Se trata de definir y automatizar la solución a un problema mediante
código.
●​ Comunicación con la máquina: Es una forma de comunicarse con la computadora en un
lenguaje que ella pueda entender.
●​ Creación de software: El resultado de programar es la creación de software, aplicaciones,
herramientas, etc.
●​ Proceso creativo: Implica planificación, diseño, escritura, prueba y mantenimiento del
código.

¿Qué son los Lenguajes de Programación?


●​ Herramientas de comunicación: Son conjuntos de reglas, símbolos y palabras clave que
permiten a los humanos escribir instrucciones para las computadoras.
●​ Traducción: Necesitan ser traducidos (compilados o interpretados) para que la computadora
pueda entenderlas.
●​ Diferentes propósitos: Existen muchos lenguajes, cada uno con fortalezas y debilidades para
diferentes tipos de tareas.
●​ Sintaxis y semántica: Tienen una sintaxis (cómo se escriben las instrucciones) y una semántica
(qué significan las instrucciones).
●​ Ejemplos: Python, Java, C++, JavaScript, etc.

Paradigma de Programación
●​ Estilos de programación: Son diferentes enfoques o estilos para escribir código y organizar la
estructura de un programa.
●​ Formas de pensar: Representan diferentes maneras de conceptualizar y resolver problemas
mediante la programación.
●​ Influencia en la estructura: El paradigma elegido influye en cómo se organiza el código, cómo
se manejan los datos y cómo interactúan las diferentes partes del programa.
●​ Ejemplos principales:
○​ Imperativo: Se enfoca en dar una secuencia de comandos a la computadora (ej: C).
○​ Orientado a Objetos (OOP): Organiza el código en "objetos" que tienen datos y
comportamientos (ej: Python, Java).
○​ Funcional: Se basa en la aplicación de funciones matemáticas (ej: Haskell).
○​ Lógico: Se basa en reglas de lógica formal (ej: Prolog).
Algoritmos. ¿Qué son? Tipos
●​ Secuencia de pasos: Un algoritmo es una secuencia finita y ordenada de pasos para resolver un
problema o realizar una tarea.
●​ Entrada, proceso, salida: Generalmente, un algoritmo recibe una entrada, la procesa siguiendo
los pasos definidos, y produce una salida.
●​ Características:
○​ Finito: Debe tener un número limitado de pasos.
○​ Definido: Cada paso debe ser claro y sin ambigüedad.
○​ Efectivo: Cada paso debe poder ser realizado.
○​ Entrada: Puede tener cero o más entradas.
○​ Salida: Debe producir al menos una salida.
●​ Tipos (según su naturaleza o propósito):
○​ Algoritmos de búsqueda: Para encontrar un elemento específico en un conjunto de datos
(ej: búsqueda lineal, búsqueda binaria).
○​ Algoritmos de ordenamiento: Para organizar elementos en un orden específico (ej:
bubble sort, merge sort).
○​ Algoritmos de grafos: Para trabajar con estructuras de datos que representan relaciones
(ej: Dijkstra, BFS).
○​ Algoritmos de inteligencia artificial: Para simular procesos cognitivos (ej: aprendizaje
automático, redes neuronales).
○​ Algoritmos de optimización: Para encontrar la mejor solución a un problema (ej:
algoritmos genéticos).
○​ Algoritmos probabilísticos: Utilizan la aleatoriedad en sus pasos.
○​ Algoritmos deterministas: Siempre producen la misma salida para la misma entrada.

Lenguaje PYTHON ¿Qué es Python?


●​ Lenguaje de alto nivel: Es más cercano al lenguaje humano y más fácil de leer y escribir que
los lenguajes de bajo nivel.
●​ Interpretado: El código se ejecuta línea por línea por un intérprete, sin necesidad de una
compilación previa extensa.
●​ Multi-paradigma: Soporta múltiples estilos de programación, principalmente orientado a
objetos, pero también imperativo y funcional.
●​ Propósito general: Se utiliza en una amplia variedad de aplicaciones, como desarrollo web,
ciencia de datos, inteligencia artificial, automatización, scripting, etc.
●​ Sintaxis clara y legible: Su sintaxis está diseñada para ser fácil de entender, lo que facilita el
aprendizaje y la escritura de código.
●​ Gran comunidad y bibliotecas: Cuenta con una comunidad activa y una extensa colección de
bibliotecas y frameworks que facilitan el desarrollo de diversas tareas.
Mod 2: Variables y operadores (web).zip

Variables y Operadores:
●​ Variables:
○​ Almacenan datos: Son nombres que referencian ubicaciones en la memoria donde se
guardan valores.
○​ Atributos esenciales:
■​ Nombre: Identificador único de la variable.
■​ Tipo de Dato: Clasificación del tipo de información que puede almacenar (ej:
número, texto, booleano).
■​ Valor Inicial: El valor que se le asigna a la variable al ser creada (opcional).
■​ Alcance (Scope): La región del código donde la variable es accesible.
■​ Dirección de Memoria: La ubicación física donde se almacena el valor
(generalmente manejado automáticamente).
●​ Operadores:
○​ Símbolos para acciones: Son símbolos especiales que realizan operaciones en variables
y valores.
○​ Tipos comunes:
■​ Aritméticos: (+, -, *, /, %, **, //) para cálculos matemáticos.
■​ De Asignación: (=, +=, -=, *=, /=, %=, **=, //=) para asignar valores a variables.
■​ De Comparación: (==, !=, >, <, >=, <=) para comparar valores.
■​ Lógicos: (and, or, not) para combinar o negar condiciones booleanas.
■​ De Identidad: (is, is not) para verificar si dos variables referencian el mismo
objeto.
■​ De Pertenencia: (in, not in) para verificar si un valor existe en una secuencia.
■​ Bitwise: (&, |, ^, ~, <<, >>) para operaciones a nivel de bits.

Estructura de un Programa:
●​ Conjunto de instrucciones: Un programa es una secuencia lógica de instrucciones que la
computadora ejecuta.
●​ Organización: Generalmente incluye:
○​ Declaración de variables: Definición de las variables que se utilizarán.
○​ Entrada de datos: Formas de recibir información del usuario o de otras fuentes.
○​ Procesamiento de datos: Manipulación y cálculo de la información.
○​ Salida de resultados: Mostrar información al usuario o enviarla a otros destinos.
○​ Estructuras de control: (if/else, bucles for/while) para dirigir el flujo de ejecución.
○​ Funciones/Módulos: Bloques de código reutilizable para organizar y modularizar el
programa.

Programas Compilados / Interpretados:


●​ Programas Compilados:
○​ Traducción total: El código fuente (escrito por el programador) se traduce completa y
previamente a código máquina (lenguaje que la computadora entiende directamente)
por un compilador.
○​ Ejecución directa: El programa compilado se ejecuta directamente por el sistema
operativo, lo que suele ser más rápido.
○​ Dependencia de la plataforma: El código compilado generalmente es específico para un
sistema operativo y arquitectura.
○​ Lenguajes: C, C++, Go, Rust.
●​ Programas Interpretados:
○​ Traducción línea por línea: El código fuente se traduce y ejecuta línea por línea por un
intérprete en tiempo real.
○​ Ejecución más flexible: El mismo código fuente puede ejecutarse en diferentes
plataformas donde haya un intérprete disponible.
○​ Desarrollo más rápido: No requiere un paso de compilación explícito.
○​ Generalmente más lento: La traducción en tiempo real puede hacer la ejecución más
lenta.
○​ Lenguajes: Python, JavaScript, Ruby, PHP.

Variables en PYTHON:
●​ Tipado dinámico: El tipo de dato de una variable se determina en tiempo de ejecución basado
en el valor que se le asigna. No necesitas declarar explícitamente el tipo.
●​ Asignación simple: Se usa el operador = para asignar valores a las variables.
●​ Nombres: Deben seguir ciertas reglas (ej: empezar con letra o guion bajo, no usar palabras
clave).
●​ Alcance: El alcance de una variable depende de dónde se define (local, global).
●​ Gestión de memoria automática: Python gestiona la asignación y liberación de memoria
automáticamente (garbage collection).

Pseudocódigo:

1. Descripción Narrativa:
●​ Definición: Explicación escrita en lenguaje común, similar a una receta o manual de
instrucciones.
●​ Ventaja: Fácil de entender para principiantes.
●​ Desventaja: Puede ser ambigua e imprecisa.
●​ Ejemplos: Receta de pastel, cambiar una llanta, tomar un baño, calcular el promedio de un
alumno.

2. Diagrama de Flujo Convencional:


●​ Definición: Representaciones gráficas que utilizan símbolos para mostrar los pasos de un
algoritmo.
●​ Ventaja: Más preciso y fácil de visualizar que la descripción narrativa.
●​ Desventaja: Menos detallado que el pseudocódigo.
●​ Características: Cada forma geométrica representa una acción diferente.

3. Pseudocódigo:
●​ Definición: Mezcla de español y lenguaje de programación que describe algoritmos de forma
detallada.
●​ Ventaja: Muy similar al código real, facilitando la transición a la programación.
●​ Desventaja: Puede ser más complejo para principiantes.
●​ Características: Declaraciones de variables y uso de palabras clave como "Si", "Entonces" y
"Sino".

4. Importancia de los Diagramas de Flujo:


●​ Definición: Representaciones visuales que detallan los pasos necesarios para resolver un
problema.
●​ Función: Simplifican la comprensión de problemas complejos y ayudan a identificar errores
lógicos.
●​ Comunicación: Facilitan la comunicación entre programadores y usuarios.
●​ Símbolos: Utilizan símbolos estandarizados para representar operaciones y flujos de control.

Módulo 3: La Sentencia SI - SINO (IF - ELSE) y Contadores/Acumuladores

Sentencia SI (IF):

●​ Permite al programa tomar decisiones.


●​ Ejecuta un bloque de código solo si una condición es verdadera.
●​ Tiene una condición (pregunta) y un bloque de código (acción).
●​ En Python, la línea if termina en : y el bloque va indentado.
●​ Se pueden usar comparaciones (>, <, ==, !=, >=, <=).
●​ Se pueden combinar condiciones con and (ambas verdaderas).
●​ pass se usa para un bloque if vacío temporalmente.

Sentencia SINO (ELSE):

●​ Se usa después de un if.


●​ Ejecuta un bloque de código si la condición del if es falsa.
●​ Solo puede haber un else al final de un bloque if.

Sentencia SINO SI (ELIF):

●​ Se usa para verificar múltiples condiciones en secuencia.


●​ Se evalúan en orden; el bloque del primer elif verdadero se ejecuta.
●​ Puede haber múltiples elif después de un if.

Operador Ternario:

●​ Forma corta de escribir un if-else en una línea.


●​ Sintaxis: variable = valor_si_verdadero if condicion else valor_si_falso.

Módulo 4 - BUCLES DE ITERACIÓ[Link]

Contadores:

●​ Variable que cuenta cuántas veces sucede algo.


●​ Se incrementa o decrementa con un valor constante (normalmente 1).
●​ Ejemplo: contar vidas (vidas = vidas - 1), visitas (visitas = visitas + 1).

Acumuladores:

●​ Variable que suma valores variables.


●​ Almacena una suma total.
●​ Ejemplo: total de carrito de compras (total_compra = total_compra + precio_producto).

Diferencia Clave:

●​ Contador: Cambia por una cantidad fija (generalmente 1).


●​ Acumulador: Cambia por una cantidad que puede variar.
●​

tipos de datos string

String (Cadena de Caracteres):


●​ Es una secuencia ordenada de caracteres (letras, números, símbolos).
●​ Cada carácter tiene una posición o índice (empezando desde 0).
●​ Puedes acceder a caracteres individuales por su índice.
●​ Puedes recorrer los caracteres uno por uno.
●​ Puedes obtener porciones del string (slicing).

Operaciones Comunes:
●​ [indice]: Acceder a un carácter.
●​ len(): Obtener la longitud (número de caracteres).
●​ +: Concatenar (unir) strings.
●​ [:]: Obtener subcadenas (slicing).
●​ in, not in: Verificar si una subcadena existe.
●​ format(), f-strings: Insertar valores en strings.
●​ .upper(), .lower(): Cambiar a mayúsculas/minúsculas.
●​ .split(): Dividir el string en una lista.
●​ .replace(): Reemplazar una parte del string.
●​ .strip(), .lstrip(), .rstrip(): Eliminar espacios en blanco.
●​ .find(), .index(): Buscar la posición de una subcadena.
●​ .startswith(), .endswith(): Verificar prefijos/sufijos.
●​ .isdigit(), .isalpha(), etc.: Comprobar el tipo de caracteres.

En esencia, los strings son texto con el que puedes interactuar y manipular de diversas maneras en
programación.

tipos de datos estructurados


¡Excelente material! Vamos a resumir los tipos de datos estructurados (colecciones) y enfocarnos en
Listas y Tuplas, que son los principales temas por ahora.

Tipos de Datos Estructurados (Colecciones):


●​ Son tipos de datos que pueden almacenar múltiples elementos.
●​ En Python incluyen:
○​ Tuplas (tuple)
○​ Listas (list)
○​ Diccionarios (dict)
○​ Conjuntos (set)
○​ Conjuntos Inmutables (frozenset)
●​ Son iterables, lo que significa que se pueden recorrer con un bucle for.
●​ Internamente, Python usa iteradores para este recorrido (ejemplos: list_iterator, tuple_iterator).
●​ Por ahora, nos centraremos en cadenas (ya vistas) y listas.

Listas (list):
●​ Son secuencias ordenadas de elementos.
●​ Son modificables (mutables): puedes cambiar, agregar o quitar elementos después de crearlas.
●​ Pueden contener diferentes tipos de datos al mismo tiempo.
●​ Los elementos se acceden mediante un índice que comienza en 0.

Creación de Listas:
●​ Lista vacía:
○​ mi_lista = list()
○​ otra_lista = []
●​ Lista con elementos:
○​ numeros = [1, 2, 3, 4, 5]
○​ palabras = ["casa", "árbol", "planta", "auto"]
○​ variados = ["a", 17, True, 9.5]
Operaciones Comunes con Listas:
●​ +: Concatenación (unir dos listas).
●​ *: Repetición (duplicar elementos).
●​ len(): Obtener la cantidad de elementos.
●​ [indice]: Acceder a un elemento por su posición.
●​ [indice] = nuevo_valor: Modificar un elemento.

Tuplas (tuple):
●​ Son secuencias ordenadas de elementos.
●​ Son inmutables: una vez creadas, no se pueden modificar sus elementos.
●​ Se definen usando paréntesis () en lugar de corchetes [].

Creación de Tuplas:
●​ Tupla vacía: tupla_vacia = ()
●​ Tupla con elementos:
○​ coordenadas_tenerife = (28.46824, -16.25462)
○​ los_tres_reyes_magos = ("Melchor", "Gaspar", "Baltasar")
●​ Pueden contener diferentes tipos de datos.

Iteración sobre Estructuras Indexadas (Listas y Tuplas):


●​ Un ciclo (bucle) repite un bloque de código.
●​ Bucle for: Simplifica la iteración sobre elementos de listas y tuplas.
●​ Python

numeros = [10, 20, 30, 40, 50]


for numero in numeros:
print(numero)
●​
●​
●​ También se puede usar range(len(estructura)) para iterar por índice.
●​ Python

numeros = [10, 20, 30, 40, 50]


for indice in range(len(numeros)):
print(numeros[indice])
●​
●​
●​ Bucle while: Ejecuta un bloque mientras una condición sea verdadera. Requiere manejo manual
del índice para iterar sobre listas/tuplas.
●​ Python

numeros = [10, 20, 30, 40, 50]


indice = 0
while indice < len(numeros):
print(numeros[indice])
indice = indice + 1
●​
●​

En resumen, las listas son colecciones ordenadas y modificables, mientras que las tuplas son colecciones
ordenadas pero inmutables. Ambas se pueden recorrer fácilmente con el bucle for.

WHILE - DO WHILE - FOR

WHILE - DO WHILE - FOR

Bucles de iteración indefinida Bucles de iteración indefinida Bucle de Iteración Definida for
while puede no ejecutarse si la do-while siempre se ejecuta al es más útil cuando sabemos
condición es falsa desde el menos una vez. cuántas veces se repetirá el
inicio. ciclo.

Bucle while:

●​ Ejecuta código mientras una condición sea verdadera.


●​ Verifica la condición al inicio de cada repetición.
●​ Si la condición es falsa desde el principio, el código no se ejecuta.
●​ Peligro de bucle infinito si la condición nunca es falsa.

Repetir (Simulado do-while en Python):

●​ Python no tiene do-while directamente.


●​ Se simula con while True y break.
●​ El código dentro se ejecuta al menos una vez.
●​ break se usa para salir del bucle cuando se cumple una condición.

Diferencia Clave:
●​ while: Condición primero, luego ejecuta (puede no ejecutarse).
●​ do-while (simulado): Ejecuta primero, luego verifica la condición (se ejecuta al menos una vez).

¡Entendido! Vamos a desglosar el bucle for en Python de forma sencilla.

Bucle de Iteración Definida FOR (Teoría):


●​ Analogía: Imagina a Charlie Chaplin haciendo la misma acción en una línea de ensamblaje, pero
en lugar de una acción, el for repite un bloque de código para cada elemento de una secuencia.​

●​ Propósito: El bucle for en Python está diseñado para recorrer los elementos de una secuencia
(listas, strings, etc.) o cualquier cosa que sea iterable.​

●​ Diferencia con otros lenguajes: A diferencia del for en C o Pascal (que se basa en un índice
numérico con inicio, fin e incremento), el for de Python itera directamente sobre los elementos
de la secuencia, manteniendo su orden.​

●​ Funcionamiento: En cada repetición del bucle, una variable toma el valor del siguiente
elemento de la secuencia, y el bloque de código dentro del for se ejecuta con ese valor.​

¿Cómo usamos el for en Python?


1.​ Iterar sobre un rango de números: Usando la función range().
2.​ Iterar sobre un conjunto de elementos directamente: Recorriendo listas, strings, etc.
3.​ Iterar sobre un texto: Recorriendo cada carácter de una cadena.

La Función range():
●​ Genera una secuencia de números.​

●​ Puedes especificar:​

○​ Inicio (opcional, por defecto es 0).


○​ Fin (obligatorio, el número final no está incluido).
○​ Paso o incremento (opcional, por defecto es 1).
●​ Ejemplos:​

○​ range(5) genera: 0, 1, 2, 3, 4
○​ range(5, 10) genera: 5, 6, 7, 8, 9
○​ range(0, 10, 3) genera: 0, 3, 6, 9
○​ range(-10, -100, -30) genera: -10, -40, -70
●​ Uso común: Para iterar sobre los índices de una secuencia, combinado con len():​

●​ Python
mi_lista = ["a", "b", "c"]

for i in range(len(mi_lista)):

print(f"Índice: {i}, Elemento: {mi_lista[i]}")

●​
●​
●​ enumerate(): Una forma más elegante y legible de obtener tanto el índice como el elemento al
iterar:​

●​ Python

mi_lista = ["a", "b", "c"]

for indice, elemento in enumerate(mi_lista):

print(f"Índice: {indice}, Elemento: {elemento}")

●​
●​
●​ Importante: range() no crea una lista completa en memoria, sino un objeto iterable que genera
los números bajo demanda, ahorrando memoria.​

Control de Flujo dentro del Bucle for:


●​ break: Interrumpe la ejecución del bucle for por completo y sale de él.
●​ continue: Salta la iteración actual y pasa a la siguiente iteración del bucle.

Cláusula else en Bucles for:


●​ Se ejecuta después de que el bucle for termina su iteración completa (recorriendo todos los
elementos).
●​ NO se ejecuta si el bucle fue terminado por un break.

En resumen: El bucle for en Python es una herramienta poderosa para iterar sobre colecciones de
elementos de forma directa y ordenada. La función range() es útil para iterar sobre números, y
enumerate() facilita el acceso tanto al índice como al elemento. break y continue permiten controlar el
flujo dentro del bucle, y la cláusula else se ejecuta al finalizar el bucle de forma natural.
Módulo 5 [Link]

Listas: Métodos, Funciones y Operadores de Listas en Python

Las listas en Python son estructuras de datos fundamentales que permiten almacenar colecciones
ordenadas de elementos de diversos tipos. Son mutables (se pueden modificar) y dinámicas (su tamaño
cambia durante la ejecución). Se crean con corchetes [], separando los elementos con comas, lo que las
convierte en una herramienta esencial en la programación con Python debido a su flexibilidad.

Algunas propiedades de las listas:

●​ Ordenadas
●​ Modificables por tipos arbitrarios
●​ Indexadas
●​ Permiten anidar listas
●​ Dinámicas.

¡Excelente lista de métodos, funciones y operadores para listas en Python! Aquí tienes un resumen con
puntos clave para entenderlos mejor:

Funciones para Listas:


●​ len(lista):​

○​ Qué hace: Cuenta el número total de elementos dentro de la lista.


○​ Devuelve: Un número entero (la longitud).
○​ No modifica la lista original.
●​ sorted(lista):​

○​ Qué hace: Crea una nueva lista con los mismos elementos de la original, pero
ordenados.
○​ Devuelve: Una nueva lista ordenada.
○​ No modifica la lista original.

Operadores y Sentencias para Listas:


●​ elemento in lista:​

○​ Qué hace: Verifica si un elemento específico existe dentro de la lista.


○​ Devuelve: Un valor booleano (True si está, False si no).
●​ lista1 == lista2:​

○​ Qué hace: Compara si dos listas son idénticas. Para ser iguales, deben tener los mismos
elementos en el mismo orden.
○​ Devuelve: Un valor booleano (True si son iguales, False si no).
●​ del lista[indice] / del lista[inicio:fin]:​

○​ Qué hace: Elimina elementos de la lista.


■​ Con un solo indice: Elimina el elemento en esa posición.
■​ Con slicing (inicio:fin): Elimina una porción de la lista.
○​ Modifica la lista original in situ.
●​ lista + otra_lista:​

○​ Qué hace: Concatena (une) dos listas, creando una nueva lista que contiene todos los
elementos de ambas.
○​ Devuelve: Una nueva lista combinada.
○​ No modifica las listas originales.
●​ lista * n:​

○​ Qué hace: Repite los elementos de la lista n veces, creando una nueva lista más larga.
○​ Devuelve: Una nueva lista repetida.
○​ No modifica la lista original.

Métodos de Listas (se llaman usando [Link]()):


●​ [Link](elemento):​

○​ Qué hace: Añade un elemento al final de la lista.


○​ Modifica la lista original in situ.
●​ [Link](otra_lista):​

○​ Qué hace: Añade todos los elementos de otra_lista al final de la lista.


○​ Modifica la lista original in situ.
●​ [Link](indice, elemento):​

○​ Qué hace: Inserta un elemento en una posición específica (indice). Los elementos
posteriores se desplazan.
○​ Modifica la lista original in situ.
●​ [Link](elemento):​

○​ Qué hace: Elimina la primera ocurrencia del elemento especificado.


○​ Modifica la lista original in situ.
○​ Genera un error si el elemento no se encuentra.
●​ [Link](indice) (opcional):​

○​ Qué hace: Elimina y devuelve el elemento en el indice especificado. Si no se especifica


el índice, elimina y devuelve el último elemento.
○​ Modifica la lista original in situ.
●​ [Link]():​
○​ Qué hace: Elimina todos los elementos de la lista, dejándola vacía ([]).
○​ Modifica la lista original in situ.
●​ [Link](elemento):​

○​ Qué hace: Devuelve el indice de la primera ocurrencia del elemento especificado.


○​ Devuelve: Un número entero (el índice).
○​ Genera un error si el elemento no se encuentra.
●​ [Link](elemento):​

○​ Qué hace: Cuenta el número de veces que el elemento aparece en la lista.


○​ Devuelve: Un número entero (la cantidad de veces).
○​ No modifica la lista original.
●​ [Link]():​

○​ Qué hace: Ordena los elementos de la lista in situ (modifica la lista original). Por
defecto, ordena de forma ascendente.
○​ Modifica la lista original in situ.
●​ [Link]():​

○​ Qué hace: Invierte el orden de los elementos de la lista in situ (el primer elemento pasa
a ser el último, y viceversa).
○​ Modifica la lista original in situ.
●​ lista[:] (Slicing para Copia):​

○​ Qué hace: Crea una copia superficial de toda la lista. Esto significa que se crea un
nuevo objeto lista con los mismos elementos, pero independiente del original.
○​ Devuelve: Una nueva lista (copia).
○​ No modifica la lista original.

En resumen: Python proporciona una rica variedad de herramientas (funciones, operadores y métodos)
para trabajar con listas, permitiendo manipular, consultar, ordenar y modificar estas colecciones de datos
de manera eficiente. Es importante distinguir entre las operaciones que modifican la lista original ("in
situ") y las que devuelven una nueva lista sin alterar la original.
ejercicios
Mod2:
:Ejercicios:

1.​ Costo total de una compra: Calcula el costo total de una compra de 3 productos, dados sus precios
individuales.
2.​ Cálculo de propina: Calcula la propina (18%) de una cuenta de restaurante.
3.​ Descuento en una compra: Calcula el precio final de un producto con un descuento del 10%.
4.​ Costo total de un viaje: Calcula el costo total de un viaje dadas la distancia, el costo por kilómetro
y los gastos adicionales.
5.​ Duración de un viaje: Calcula la duración de un viaje en horas, dadas la distancia y la velocidad
promedio.
6.​ Costo de la gasolina: Calcula el costo de la gasolina para un viaje, dados la distancia, el consumo
por kilómetro y el precio por litro.
7.​ Área de un rectángulo: Calcula el área de un rectángulo dadas su base y altura.
8.​ Promedio de tres números: Calcula el promedio de tres números ingresados.
9.​ Conversión de grados Celsius a Fahrenheit: Convierte una temperatura en grados Celsius a
Fahrenheit.
10.​ ¿Es un estudiante elegible para un descuento?: Un estudiante es elegible para un descuento si
tiene una calificación de 90 o más en un examen y está inscrito en un programa extracurricular.
11.​ ¿Es un empleado elegible para un bono?: Un empleado es elegible para un bono si ha trabajado
más de 5 años en la empresa o ha superado sus objetivos de ventas.
12.​ ¿Es un producto elegible para envío prioritario?: Un producto es elegible para envío prioritario si
pesa menos de 5 kg y su precio es superior a $100.
13.​ ¿Es un cliente elegible para una promoción?: Un cliente es elegible para una promoción si ha
realizado más de 3 compras en el último mes o si ha gastado más de $500 en total.
14.​ ¿Es un número divisible por 3 y 5?: Determina si un número es divisible tanto por 3 como por 5.
15.​ ¿Es un año bisiesto?: Determina si un año es bisiesto (divisible por 4, pero no por 100 a menos
que sea divisible por 400).

En los ejercicios con respuestas lógicas mostrar True o False

Hecho:

Mod3: Ejercicios:

1.​ Par o Impar: Escribe un programa que solicite al usuario ingresar un número entero. Utiliza un if
para determinar si el número es par o impar e imprime el resultado.
2.​ Mayor de Dos: Pide al usuario que ingrese dos números. Utiliza un if para determinar cuál de los
dos números es mayor (o si son iguales) e imprime el resultado.
3.​ Vocal o Consonante (Simple): Solicita al usuario ingresar una única letra. Utiliza una serie de
if/elif/else para determinar si la letra es una vocal (a, e, i, o, u - considera solo minúsculas por
ahora) o una consonante e imprime el resultado.
4.​ Escribe un programa que lea tres números ingresados por el usuario y los muestre ordenados de
mayor a menor.
5.​ Solicita al usuario que ingrese la cantidad de goles que hizo Uruguay y la cantidad de goles que
hizo Brasil. Luego, muestra en pantalla la cantidad de goles de cada selección e indica cuál de las
dos fue la ganadora (o si hubo empate).
6.​ Crea variables para almacenar la cotización actual del dólar estadounidense, el real brasileño y el
peso argentino en relación con el peso uruguayo. Solicita al usuario que ingrese una cantidad en
pesos uruguayos, la moneda a la que desea convertir y si la operación es de compra o venta.
Calcula y muestra la cantidad de la moneda extranjera que se debe entregar o recibir.
7.​ Escribe un programa que solicite al usuario ingresar un número entero menor que 1,000,000.
Valida que el número ingresado cumpla con esta condición. Si es válido, descompón el número en
sus unidades, decenas y centenas, etc, mostrando cada componente por separado.
8.​ Calcular el Impuesto a la Renta de las Personas Físicas (IRPF). En este ejercicio, no se
considerarán las deducciones.

Rangos BPC Desde Hasta Tasa​


Hasta 7 BPC 0 46.032 0 %​
Más de 7 a 10 BPC 46.033 a 65.760 10 %​
Más de 10 a 15 BPC 65.761 a 98.640 15 %​
Más de 15 a 30 BPC 98.641 a 197.280 24 %​
Más de 30 a 50 BPC 197.281 a 328.800 25 %​
Más de 50 a 75 BPC 328.801 a 493.200 27 %​
Más de 75 a 115 BPC 493.201 a 756.240 31 %​
Más de 115 BPC 756.241 36 %

Hecho:

Mod4:

Ejercicios:

a) Ejercicios while

1) Juego de preguntas matemáticas:

Crea un juego interactivo de preguntas matemáticas. El programa debe seleccionar aleatoriamente dos
números, preguntar al usuario el resultado de su suma y continuar con nuevas preguntas hasta que el
usuario responda correctamente diez veces. Al finalizar, muestra la cantidad total de intentos que realizó
el usuario.

2) Catálogo de compras:

Implementa un 'catálogo de compras' que muestre cinco artículos diferentes, indicando su precio y un
código único para cada uno. El programa debe preguntar al usuario qué artículo desea comprar (mediante
su código) y cuántas unidades. Luego, preguntará si desea seguir comprando. Al finalizar la compra
(cuando el usuario indique que no desea continuar), muestra la lista de todos los artículos que se
mostraron en el catálogo, la cantidad total de artículos comprados y el importe total a pagar.​

3) Calcular la sumatoria de un número:

Desarrolla un programa que calcule la sumatoria de un número entero positivo ingresado por el usuario.
La sumatoria de un número 'n' es la suma de todos los números enteros desde 1 hasta 'n' (ejemplo: la
sumatoria de 5 es 1 + 2 + 3 + 4 + 5 = 15)."​

4) Crear una calculadora básica:

Crea una calculadora básica que permita realizar las operaciones de suma, resta, multiplicación y división.
El programa debe solicitar al usuario que elija una operación y luego que ingrese los números necesarios
para realizarla. La calculadora debe seguir funcionando hasta que el usuario decida salir.


5) Adivina el número:

Implementa un juego de 'Adivina el número'. El programa debe generar un número entero aleatorio dentro
de un rango específico (por ejemplo, entre 1 y 100). Luego, debe preguntar al usuario que intente adivinar
el número. Si el usuario no acierta, el programa debe darle pistas indicando si el número secreto es mayor
o menor que el intento del usuario. El juego continúa hasta que el usuario adivina el número correcto,
momento en el cual se debe mostrar la cantidad total de intentos que necesitó."

6) Un poco de estadísticas
Diseña un programa en Python que permita al usuario ingresar una serie de números. El programa debe
continuar solicitando números hasta que el usuario ingrese la palabra "fin". Una vez que el usuario
finaliza la entrada, el programa debe calcular y mostrar la media (promedio) y el rango de todos los
números ingresados. Si el usuario no ingresa ningún número antes de escribir "fin", el programa debe
indicar que no se proporcionaron valores para calcular la media. Ingresa Una vez que tengas el valor
máximo y el mínimo, el rango se calcula restando el mínimo del máximo.

b) Ejercicios FOR

7) Correo electrónico valido

Escribe un programa que reciba un texto como entrada y verifique, carácter por carácter, si cumple con
algunas reglas básicas para ser una dirección de correo electrónico válida. Considera las siguientes reglas:
debe contener un único símbolo '@', debe haber al menos un carácter antes y después del '@', y debe
contener al menos un punto '.' después del '@'.

9) Juego del Ahorcado con título de película:

Parte a : Ayuda visual

Parte b: Implementa una versión simplificada del juego del Ahorcado. El programa debe solicitar al
usuario que ingrese el título de una película. Luego, divide este título en palabras. A continuación, pide al
usuario que ingrese una palabra como intento. Recorre cada palabra del título de la película y verifica si la
palabra ingresada por el usuario coincide con alguna de las palabras del título. Indica al usuario si su
palabra pertenece o no al título de la película.

Parte C : Solo para mentes intrépidas: ¡Programa el juego completo! El jugador ingresa una palabra. Si
esta se encuentra relacionada con la película (busca una estrategia para la validación), se contabiliza su
acierto. En caso contrario, se reduce una de sus vidas.

8) Listado de jugadores de fútbol:


Define una única variable de texto que contenga el número y el nombre de los once jugadores de la
selección uruguaya ideal de fútbol. El formato de la cadena de texto debe ser consistente (por ejemplo,
'1-Muslera 2-Giménez 3-Godín ... 11-Suárez'). Luego, escribe un programa que recorra esta cadena de
texto y muestre cada jugador con su número de camiseta en líneas separadas.

10) Generador de patrón de asteriscos:

Crea un programa que solicite al usuario ingresar un número entero positivo. Utiliza bucles for y la
función range para generar e imprimir un patrón de asteriscos en forma de triángulo rectángulo. Por
ejemplo, si el usuario ingresa 5, la salida debería ser:

*​
**​
***​
****​
*****

11) Implementar una solución para obtener y presentar la totalidad de los divisores comunes entre dos
números.​

Hecho:
Mod5:

Ejercicios:

a) Gestión de nombres en una lista:

Crea una lista llamada nombres con los siguientes datos: ['Ana Adoque', 'Mario Juan', 'Policarpo
Avedaño', 'Juan Bodoque', 'Juan Harry', 'Mario Hugo', 'Dylan Manguera', 'Eusebio Manguera'].
Realiza las siguientes operaciones:

1.​ Contar nombres "Juan": Determina cuántas veces aparece exactamente el nombre "Juan" al inicio
de un elemento en la lista.
2.​ Contar nombres o apellidos son exactamente "Juan".
3.​ Contar nombres y apellidos que inician con "J": Determina cuántos elementos de la lista tienen
tanto su nombre (primera palabra) como su apellido (segunda palabra) comenzando con la letra
"J" (mayúscula). Considera que puede haber nombres o apellidos compuestos por una sola
palabra.

b) Manipulación de una lista vacía con entrada de usuario:

1.​ Agregar números únicos: Crea una lista vacía llamada numeros_ingresados. Solicita al usuario
que ingrese un número desde el teclado. Verifica si el número ingresado ya existe en la lista
numeros_ingresados. Si el número no existe, agrégalo a la lista. Repite este proceso hasta que el
usuario decida detenerlo (por ejemplo, ingresando una letra o una condición específica).
2.​ Sugerencia de número mayor siguiente: Modifica el programa del punto anterior de la siguiente
manera: Si el número ingresado por el usuario ya existe en la lista numeros_ingresados, en lugar
de simplemente ignorarlo, sugiere agregar el número entero inmediatamente mayor al número
existente. Pregunta al usuario si desea agregar esta sugerencia a la lista. Si el usuario acepta,
agrega el número sugerido a la lista.

c) Modificación de nombres de ciudades sin duplicados:

1.​ Crear lista de ciudades únicas: Crea una lista llamada ciudades con nombres de ciudades.
Asegúrate de que no haya nombres repetidos en la lista inicial (por ejemplo: ['Londres', 'París',
'Roma', 'Tokio']).​
Opción para modificar nombre: Implementa una funcionalidad que permita al usuario modificar
el nombre de una ciudad existente en la lista.
2.​ Control de nombres duplicados: Antes de realizar la modificación, verifica si el nuevo nombre
de ciudad ingresado por el usuario ya existe en la lista ciudades. Si el nuevo nombre ya existe,
muestra un mensaje de error al usuario y no realices la modificación. Si el nuevo nombre no
existe, actualiza el nombre de la ciudad en la lista.

Hecho:
mega resumen por modulo
Módulo 1:

¿Qué es Programar?
●​ Instruir: Dar órdenes específicas a la computadora.
●​ Resolver: Automatizar soluciones a problemas.
●​ Comunicar: Hablar el idioma de la máquina.
●​ Crear: Producir software.
●​ Proceso: Planificar, escribir, probar, mantener.

¿Qué son los Lenguajes de Programación?


●​ Herramientas: Reglas para dar instrucciones.
●​ Traducción: Necesitan ser interpretados o compilados.
●​ Variedad: Muchos para diferentes usos.
●​ Sintaxis/Semántica: Cómo se escribe/qué significa.
●​ Ejemplos: Python, Java.

Paradigma de Programación
●​ Estilos: Formas de organizar el código.
●​ Pensamiento: Lógicas para resolver problemas.
●​ Estructura: Cómo se organiza el programa.
●​ Ejemplos: Imperativo (pasos), OOP (objetos), Funcional (funciones).

Algoritmos. ¿Qué son? Tipos


●​ Pasos: Secuencia ordenada para resolver algo.
●​ Entrada -> Proceso -> Salida: Datos entran, se trabajan, resultado sale.
●​ Características: Finitos, claros, efectivos.
●​ Tipos (ejemplos): Búsqueda, ordenamiento, IA.

Lenguaje PYTHON ¿Qué es Python?


●​ Alto nivel: Fácil de leer.
●​ Interpretado: Ejecuta línea por línea.
●​ Multi-paradigma: Soporta varios estilos.
●​ General: Sirve para muchas cosas.
●​ Sintaxis: Clara y fácil.
●​ Comunidad/Librerías: Mucha ayuda y herramientas.

Módulo 2:

Variables y Operadores:

●​ Variables: Nombres que guardan datos en memoria.


○​ Atributos: Nombre, Tipo de Dato, Valor Inicial, Alcance, Dirección de Memoria.
●​ Operadores: Símbolos para realizar acciones.
○​ Tipos: Aritméticos, Asignación, Comparación, Lógicos, Identidad, Pertenencia,
Bitwise.

Estructura de un Programa:

●​ Secuencia lógica de instrucciones.


●​ Organización: Declaración de variables, Entrada, Procesamiento, Salida, Estructuras de
control, Funciones/Módulos.

Programas Compilados / Interpretados:

●​ Compilados:
○​ Traducción total a código máquina antes de ejecutar.
○​ Ejecución rápida.
○​ Específicos de la plataforma.
○​ Ejemplos: C, C++, Go, Rust.
●​ Interpretados:
○​ Traducción línea por línea durante la ejecución.
○​ Ejecución flexible en diferentes plataformas con intérprete.
○​ Desarrollo rápido.
○​ Generalmente más lentos.
○​ Ejemplos: Python, JavaScript, Ruby, PHP.

Variables en PYTHON:

●​ Tipado dinámico: El tipo se define por el valor en tiempo de ejecución.


●​ Asignación simple: Uso del operador =.
●​ Nombres: Siguen reglas específicas.
●​ Alcance: Local o global según la definición.
●​ Gestión automática de memoria (Garbage Collection).

Pseudocódigo:

●​ Forma de describir algoritmos antes de codificar.


●​ Tipos:
○​ Descripción Narrativa: Lenguaje común (fácil para principiantes, puede ser
ambiguo).
○​ Diagrama de Flujo Convencional: Representación gráfica con símbolos (más
preciso, menos detallado que pseudocódigo).
○​ Pseudocódigo (Mezcla): Español y palabras clave de programación (similar al
código real, más detallado).
●​ Importancia de los Diagramas de Flujo:
○​ Visualizan los pasos para resolver problemas.
○​ Simplifican problemas complejos.
○​ Ayudan a identificar errores lógicos.
○​ Facilitan la comunicación.
○​ Usan símbolos estandarizados.
Módulo 3:

Sentencia SI (IF):

●​ Decisión: Permite al programa tomar caminos diferentes.


●​ Condición: Se evalúa una pregunta (expresión booleana).
●​ Ejecución: El código indentado se ejecuta SI la condición es True.
●​ Comparaciones: Se usan para crear las condiciones (>, <, ==, etc.).
●​ Combinación: and requiere que ambas condiciones sean verdaderas.
●​ pass: No hace nada, útil para bloques if vacíos temporalmente.

Sentencia SINO (ELSE):

●​ Alternativa: Se ejecuta SI la condición del if es False.


●​ Único: Solo puede haber un else al final del bloque if.

Sentencia SINO SI (ELIF):

●​ Múltiples Opciones: Permite verificar varias condiciones en orden.


●​ Primero Verdadero: El bloque del primer elif que sea True se ejecuta.
●​ Cantidad: Puede haber varios elif después del if.

Operador Ternario:

●​ Corto IF-ELSE: Sintaxis concisa para una decisión simple.


●​ Forma: variable = valor_si_verdadero if condicion else valor_si_falso.
●​ Uso: Principalmente para asignar valores condicionalmente en una línea.

Módulo 4:

Contadores:

●​ Cuentan eventos.
●​ Incremento/decremento constante (normalmente 1).

Acumuladores:

●​ Suman valores variables.


●​ Almacenan un total.

Diferencia Clave:

●​ Contador: Cambio fijo.


●​ Acumulador: Cambio variable.

Tipos de Datos String:

●​ Secuencia ordenada de caracteres.


●​ Acceso por índice (empezando en 0).
●​ Se pueden recorrer.
●​ Se pueden obtener subcadenas (slicing).
●​ Operaciones Comunes:
○​ [indice]: Acceder a carácter.
○​ len(): Longitud.
○​ +: Concatenar.
○​ [:]: Slicing.
○​ in, not in: Verificar subcadena.
○​ format(), f-strings: Insertar valores.
○​ .upper(), .lower(): Mayúsculas/minúsculas.
○​ .split(): Dividir en lista.
○​ .replace(): Reemplazar.
○​ .strip(), .lstrip(), .rstrip(): Eliminar espacios.
○​ .find(), .index(): Buscar posición.
○​ .startswith(), .endswith(): Verificar prefijos/sufijos.
○​ .isdigit(), .isalpha(): Comprobar tipo de caracteres.

Tipos de Datos Estructurados (Colecciones):

●​ Almacenan múltiples elementos.


●​ Iterables: Se pueden recorrer con for.
●​ Python: Tuplas, Listas, Diccionarios, Conjuntos, Frozensets.

Listas (list):

●​ Ordenadas.
●​ Mutables: Se pueden modificar.
●​ Indexadas (desde 0).
●​ Pueden contener diferentes tipos.
●​ Creación: [] o list().
●​ Operaciones Comunes:
○​ +: Concatenación.
○​ *: Repetición.
○​ len(): Cantidad de elementos.
○​ [indice]: Acceder.
○​ [indice] = nuevo_valor: Modificar.
●​ Métodos: append(), extend(), insert(), remove(), pop(), clear(), index(), count(), sort(), reverse().

Tuplas (tuple):

●​ Ordenadas.
●​ Inmutables: No se pueden modificar después de crear.
●​ Indexadas (desde 0).
●​ Pueden contener diferentes tipos.
●​ Creación: () o simplemente valores separados por comas.

Iteración sobre Estructuras Indexadas (Listas y Tuplas):

●​ Bucle for: Itera directamente sobre los elementos.


●​ range(len(estructura)): Itera por índice.
●​ Bucle while: Requiere manejo manual del índice.

Bucles WHILE - DO WHILE - FOR:

●​ while: Condición primero, ejecuta si es verdadera (puede no ejecutarse).


●​ do-while (simulado en Python): Ejecuta al menos una vez, luego verifica la condición (while
True y break).
●​ for: Iteración definida sobre una secuencia (iterable).

Bucle for en Detalle:

●​ Iteración Definida: Repite para cada elemento de una secuencia.


●​ Directo: Itera sobre los elementos, no por índice (a diferencia de C/Pascal).
●​ Uso:
○​ range(): Para rangos de números.
○​ Iterar directamente sobre listas, strings, etc.
●​ range(): Genera secuencia de números (inicio, fin (no incluido), paso).
●​ enumerate(): Obtiene índice y elemento al iterar.
●​ Control de Flujo:
○​ break: Sale del bucle.
○​ continue: Salta a la siguiente iteración.
●​ Cláusula else: Se ejecuta si el bucle termina normalmente (sin break).

Mod 5: Características de las Listas:

●​ Ordenadas: Los elementos tienen una posición específica.


●​ Mutables: Se pueden modificar después de su creación.
●​ Tipos arbitrarios: Pueden contener elementos de diferentes tipos.
●​ Indexadas: Se accede a los elementos por su posición (índice).
●​ Anidables: Pueden contener otras listas.
●​ Dinámicas: Su tamaño puede cambiar.

Funciones para Listas:

●​ len(lista): Devuelve el número de elementos.


●​ sorted(lista): Devuelve una nueva lista ordenada.

Operadores para Listas:

●​ elemento in lista: Verifica si un elemento existe (True/False).


●​ lista1 == lista2: Compara si dos listas son iguales (mismos elementos, mismo orden).
●​ lista + otra_lista: Concatena dos listas (crea una nueva).
●​ lista * n: Repite los elementos n veces (crea una nueva).

Sentencias para Listas:


●​ del lista[indice] / del lista[inicio:fin]: Elimina elementos (modifica la original).

Métodos de Listas (Modifican la lista original "in situ" a menos que se indique lo contrario):

●​ [Link](elemento): Añade al final.


●​ [Link](otra_lista): Añade elementos de otra lista al final.
●​ [Link](indice, elemento): Añade en una posición específica.
●​ [Link](elemento): Elimina la primera ocurrencia (puede dar error si no existe).
●​ [Link](indice): Elimina y devuelve el elemento por índice (o el último).
●​ [Link](): Elimina todos los elementos.
●​ [Link](): Ordena la lista in situ.
●​ [Link](): Invierte el orden in situ.
●​ [Link](elemento): Devuelve el índice de la primera ocurrencia (puede dar error si no existe).
●​ [Link](elemento): Devuelve la cantidad de veces que aparece el elemento (no modifica la
original).
●​ lista[:] (Slicing): Crea una copia superficial de la lista (no modifica la original).

También podría gustarte