Skip to content

Commit f450faf

Browse files
committed
2 parents b854af2 + d3d194c commit f450faf

File tree

9 files changed

+1376
-904
lines changed

9 files changed

+1376
-904
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# https://python.org
2+
3+
# Comentario en una línea
4+
5+
"""
6+
Comentario en
7+
varias líneas
8+
"""
9+
10+
'''
11+
Otro comentario
12+
en varias líneas
13+
'''
14+
15+
name = "Ivan Dario Madrid Daza"
16+
name = "Ismael Madrid Gamez"
17+
18+
# Python no tiene constantes
19+
20+
MY_CONSTANT = "Mi constante"
21+
22+
"""Las constante en Python, se colocan en mayusculas, este es un método por
23+
convención, de la misma manera es posible cambiarle el valor. A la final
24+
realmente no hay constantes en Python."""
25+
26+
# DATOS PRIMITIVOS
27+
28+
my_int = 15
29+
# Esta es un dato primitivo entero
30+
31+
my_float = 1.64
32+
# Este es un dato primitivo flotante o float
33+
34+
my_bool = True
35+
# Este es un dato primitivo boleano
36+
37+
my_str = "Aprendiendo Python"
38+
my_other_string = 'Aprendiendo Python'
39+
# Este es un dato primitivo string o cadena de texto
40+
41+
# Imprimir mensaje por consola
42+
lenguaje = "Python"
43+
print(f"\n¡Hola, el lenguaje que estoy aprendiendo es: {lenguaje}\n")
44+
45+
# Obtener tipo de dato
46+
print(my_int)
47+
print(my_float)
48+
print(my_bool)
49+
print(my_str)

Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/javascript/frankqv.js

+26-2
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,31 @@ if (numero === 1) {
139139
console.log("🤔 Parece que tu destino es incierto. El universo espera que tomes una decisión pronto.");
140140
}
141141

142-
// 2. Iterativas (for, while, do-while)
142+
143+
// 2. Estructura de control condicional (switch)
144+
console.log("\nEestructura de control condicional Switch - Tu día de la semana:");
145+
let dia = Math.floor(Math.random() * 7) + 1; // Asigna un número aleatorio entre 1 y 7 para simular los días de la semana.
146+
switch(dia) {
147+
case 1: console.log("☀️ Hoy es Lunes. El inicio de una nueva semana llena de oportunidades.");
148+
break;
149+
case 2: console.log("🌱 Hoy es Martes. El día perfecto para sembrar las semillas de tus sueños.");
150+
break;
151+
case 3: console.log("🌞 Hoy es Miércoles. La mitad de la semana, sigue avanzando.");
152+
break;
153+
case 4: console.log("🌟 Hoy es Jueves. El día ideal para planear la última parte de la semana.");
154+
break;
155+
case 5: console.log(`🎉 Hoy es Viernes. El cuerpo lo sabe, no lo sabe hay que decirle que el cuerpo no se manda solo 💅🏻 Jajaja`);
156+
break;
157+
case 6: console.log("🌙 Hoy es Sábado. El día perfecto para descansar y recargar energías.");
158+
break;
159+
case 7: console.log("🌌 Hoy es Domingo. Un día para reflexionar y prepararse para la semana que viene.");
160+
break;
161+
default:
162+
console.log("❗ Error: Día inválido.");
163+
}
164+
165+
166+
// 3. Iterativas (for, while, do-while)
143167
console.log("\nEstructuras Iterativas:");
144168
// Bucle FOR
145169
for (let i = 0; i < 5; i++) {
@@ -160,7 +184,7 @@ do {
160184
num++;
161185
} while (num < 2);
162186

163-
// 3. Manejo de excepciones
187+
// 4. Manejo de excepciones
164188
console.log("\nManejo de Excepciones:");
165189
console.log("\nExcepciones:");
166190
try {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
/*
2+
* EJERCICIO:
3+
* Explora el concepto de manejo de excepciones según tu lenguaje.
4+
* Fuerza un error en tu código, captura el error, imprime dicho error
5+
* y evita que el programa se detenga de manera inesperada.
6+
* Prueba a dividir "10/0" o acceder a un índice no existente
7+
* de un listado para intentar provocar un error.
8+
*
9+
* DIFICULTAD EXTRA (opcional):
10+
* Crea una función que sea capaz de procesar parámetros, pero que también
11+
* pueda lanzar 3 tipos diferentes de excepciones (una de ellas tiene que
12+
* corresponderse con un tipo de excepción creada por nosotros de manera
13+
* personalizada, y debe ser lanzada de manera manual) en caso de error.
14+
* - Captura todas las excepciones desde el lugar donde llamas a la función.
15+
* - Imprime el tipo de error.
16+
* - Imprime si no se ha producido ningún error.
17+
* - Imprime que la ejecución ha finalizado.
18+
*/
19+
20+
// Try - Catch - Finally - Throw
21+
22+
try {
23+
// El bloque try intentara ejecutar al logica
24+
// En este caso llamo a una funcion que no existe,
25+
callFunction()
26+
} catch (error) {
27+
// el bloque Catcht captura el error para que el codigo pueda seguir ejecutandose fuera de este bloque
28+
console.log(error.message);
29+
30+
} finally {
31+
console.log("Codigo que se ejecuta siempre");
32+
33+
}
34+
35+
// Con Throw podemos generar los tipos de error como tambien alguno de tipo personalizado
36+
37+
try {
38+
throw new Error("Error del tipo 'Error'")
39+
} catch (error) {
40+
console.log(error.message);
41+
}
42+
43+
// Crear un error personalizado
44+
const gifts = {
45+
toys: ["playstation 5", "pelota", "mochila"],
46+
//books : ["Harry potter", "Percy Jackson", "Codigo Limpio"],
47+
sport: ["shorts", "pesas", "cuerda de saltar"],
48+
};
49+
50+
class CategoryNotFound extends Error {
51+
constructor(message) {
52+
super(message);
53+
}
54+
}
55+
56+
// 5. Lanza una excepción personalizada.
57+
if (!("books" in gifts)) {
58+
try {
59+
throw new CategoryNotFound(
60+
"Error: No existe la categoria libros en los regalos"
61+
);
62+
} catch (error) {
63+
console.log(error.message);
64+
}
65+
}
66+
67+
/*
68+
* Crea una función que sea capaz de procesar parámetros, pero que también
69+
* pueda lanzar 3 tipos diferentes de excepciones (una de ellas tiene que
70+
* corresponderse con un tipo de excepción creada por nosotros de manera
71+
* personalizada, y debe ser lanzada de manera manual) en caso de error.
72+
* - Captura todas las excepciones desde el lugar donde llamas a la función.
73+
* - Imprime el tipo de error.
74+
* - Imprime si no se ha producido ningún error.
75+
* - Imprime que la ejecución ha finalizado.
76+
*/
77+
78+
// Excepción personalizada
79+
class CustomError extends Error {
80+
constructor(message) {
81+
super(message);
82+
this.name = "CustomError";
83+
}
84+
}
85+
86+
// Función que procesa parámetros y lanza excepciones
87+
function paramProcess(param) {
88+
if (param === null || param === undefined) {
89+
throw new TypeError("El parámetro no puede ser null o undefined");
90+
}
91+
92+
if (typeof param !== "number") {
93+
throw new CustomError("El parámetro debe ser un número");
94+
}
95+
96+
if (param < 0) {
97+
throw new RangeError("El parámetro no puede ser negativo");
98+
}
99+
100+
// Proceso normal si no hay errores
101+
return `El parámetro procesado es: ${param}`;
102+
}
103+
104+
// Llamada a la función y manejo de excepciones
105+
try {
106+
console.log(paramProcess(-1)); // Cambia este valor para probar diferentes casos
107+
console.log("No se ha producido ningún error.");
108+
} catch (error) {
109+
if (error instanceof CustomError) {
110+
console.error(`Error personalizado: ${error.message}`);
111+
} else if (error instanceof TypeError) {
112+
console.error(`Error de tipo: ${error.message}`);
113+
} else if (error instanceof RangeError) {
114+
console.error(`Error de rango: ${error.message}`);
115+
} else {
116+
console.error(`Error desconocido: ${error.message}`);
117+
}
118+
} finally {
119+
console.log("La ejecución ha finalizado.");
120+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
const text: string = 'lor0em 9ip6sum 2 dolor 334, asit am3ed'
2+
const getNumbersRegex: RegExp = /\d/g
3+
console.log(text.match(getNumbersRegex)?.join(''))
4+
5+
// extra
6+
7+
const emailRegex: RegExp = /^[^\s@]+@[^\s@]+\.[^\s@]+$/
8+
const phoneRegex: RegExp = /^\+?[1-9]\d{1,14}$/
9+
const urlRegex: RegExp = /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
// 1. for
2+
for(let i:number = 1; i <= 10; i++) {
3+
console.log(i)
4+
}
5+
6+
// 2. while
7+
let i:number = 1
8+
while (i <= 10) {
9+
console.log(i)
10+
i++
11+
}
12+
13+
// 3. do while
14+
let j: number = 1
15+
do {
16+
console.log(j)
17+
j++
18+
} while (j <= 10)
19+
20+
// extra
21+
22+
23+
const numbers: number[] = [1, 2, 3, 4, 5]
24+
25+
// 4. for of
26+
console.log("4. for...of")
27+
for (const number of numbers) {
28+
console.log(number)
29+
}
30+
31+
// 5. for in
32+
console.log("5. for...in")
33+
for (const index in numbers) {
34+
console.log(numbers[index])
35+
}
36+
37+
// 6. forEach
38+
console.log("6. forEach")
39+
numbers.forEach((number) => {
40+
console.log(number)
41+
});
42+
43+
// 7. map
44+
console.log("7. map")
45+
numbers.map((number) => {
46+
console.log(number)
47+
});
48+
49+
// 8. filter
50+
console.log("8. filter")
51+
numbers.filter((number) => {
52+
console.log(number)
53+
return true
54+
});
55+
56+
// 9. reduce
57+
console.log("9. reduce");
58+
numbers.reduce((_, number) => {
59+
console.log(number)
60+
return 0
61+
}, 0)
62+
63+
// 10. every
64+
console.log("10. every");
65+
numbers.every((number) => {
66+
console.log(number)
67+
return true
68+
})
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
const myList: (number | number[])[] = [1,2,3,4]
2+
3+
myList.push(5)
4+
myList.unshift(0)
5+
myList.push([10, 11, 12])
6+
myList[2] = [20, 21, 23]
7+
myList.splice(0, 1)
8+
myList[0] = 3
9+
myList.includes(3)
10+
myList.length = 0
11+
12+
/*
13+
Extra
14+
*/
15+
16+
const mySet1: Set<number> = new Set([1, 3, 5, 7, 9])
17+
const mySet2: Set<number> = new Set([1, 4, 9])
18+
19+
// Unión
20+
console.log(mySet1.union(mySet2))
21+
22+
// Intersección
23+
console.log(mySet1.intersection(mySet2))
24+
25+
// Diferencia
26+
console.log(mySet1.difference(mySet2))
27+
28+
// Diferencia simétrica
29+
console.log(mySet1.symmetricDifference(mySet2))
30+
31+
/*
32+
* Referencia: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set
33+
*/

0 commit comments

Comments
 (0)