Skip to content

Commit 78a01fe

Browse files
committed
2 parents c93dd05 + a847f5e commit 78a01fe

File tree

10 files changed

+2183
-866
lines changed

10 files changed

+2183
-866
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# www.python.org
2+
3+
'''
4+
Esto es un comentario
5+
de varias lineas en python
6+
'''
7+
8+
"""
9+
Esto es otro comentario
10+
11+
de varias lineas en python
12+
"""
13+
14+
my_var = "Hola Mundo"
15+
16+
my_int = 0
17+
my_float = 0.0
18+
my_bool = True
19+
my_string = "Soy una cadena de caracteres"
20+
21+
22+
MY_CONSTANT = "SALUDO"
23+
24+
print('Hola Python')
25+
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
#
2+
# EJERCICIO:
3+
# - Crea ejemplos utilizando todos los tipos de operadores de tu lenguaje:
4+
# Aritméticos, lógicos, de comparación, asignación, identidad, pertenencia, bits...
5+
# (Ten en cuenta que cada lenguaje puede poseer unos diferentes)
6+
# - Utilizando las operaciones con operadores que tú quieras, crea ejemplos
7+
# que representen todos los tipos de estructuras de control que existan
8+
# en tu lenguaje:
9+
# Condicionales, iterativas, excepciones...
10+
# - Debes hacer print por consola del resultado de todos los ejemplos.
11+
#
12+
# DIFICULTAD EXTRA (opcional):
13+
# Crea un programa que imprima por consola todos los números comprendidos
14+
# entre 10 y 55 (incluidos), pares, y que no son ni el 16 ni múltiplos de 3.
15+
#
16+
# Seguro que al revisar detenidamente las posibilidades has descubierto algo nuevo.
17+
#/
18+
19+
# Operadores aritméticos
20+
print(10 + 5) # Suma
21+
print(10 - 5) # Resta
22+
print(10 * 5) # Multiplicación
23+
print(10 / 5) # División
24+
print(10 % 5) # Módulo
25+
print(10 ** 5) # Potencia
26+
print(10 // 5) # División entera
27+
28+
# Operadores lógicos
29+
print(True and True) # Y lógico
30+
print(True or False) # O lógico
31+
print(not True) # Negación lógica
32+
33+
# Operadores de comparación
34+
print(10 == 5) # Igual
35+
print(10 != 5) # Distinto
36+
print(10 > 5) # Mayor que
37+
print(10 < 5) # Menor que
38+
print(10 >= 5) # Mayor o igual que
39+
print(10 <= 5) # Menor o igual que
40+
print(10 is 5) # Identidad
41+
print(10 is not 5) # No identidad
42+
print(10 in [1, 2, 3]) # Pertenencia
43+
print(10 not in [1, 2, 3]) # No pertenencia
44+
45+
# Estructuras de control
46+
47+
# Condicionales
48+
my_fuel = 0
49+
50+
if my_fuel == 0:
51+
print("No tienes combustible, tienes que repostar antes de continuar")
52+
53+
54+
age = 18
55+
56+
if age >= 18:
57+
print("Eres mayor de edad")
58+
else:
59+
print("Eres menor de edad")
60+
61+
my_fuel = 100
62+
63+
if my_fuel == 0:
64+
print("No tienes combustible, tienes que repostar antes de continuar")
65+
elif my_fuel < 50:
66+
print('El tanque está por debajo del 50%')
67+
elif my_fuel < 75:
68+
print('El tanque está por debajo del 75%')
69+
else:
70+
print('El tanque está lleno')
71+
72+
# Otra opción conditional, similar al switch
73+
match age:
74+
case 18:
75+
print("Eres mayor de edad")
76+
case 17:
77+
print("Eres menor de edad")
78+
case _:
79+
print("No tienes edad")
80+
81+
82+
# Iterativas
83+
84+
my_string = "Hola Mundo"
85+
86+
# For
87+
for char in my_string:
88+
print(char, end=' ')
89+
90+
# While
91+
i = 0
92+
93+
while i < 5:
94+
print(i, end=' ')
95+
i += 1
96+
97+
# Excepciones
98+
try:
99+
print(10 / 0)
100+
except ZeroDivisionError:
101+
print("No puedes dividir por cero")
102+
except:
103+
print("Algo salió mal")
104+
finally:
105+
print("Esto se ejecuta siempre")
106+
107+
108+
# DIFICULTAD EXTRA
109+
110+
for i in range(10, 56):
111+
if i % 2 == 0 and i != 16 and i % 3 !=0:
112+
print(i, end=' ')
113+
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
#/*
2+
# * EJERCICIO:
3+
# * - Crea ejemplos de funciones básicas que representen las diferentes
4+
# * posibilidades del lenguaje:
5+
# * Sin parámetros ni retorno, con uno o varios parámetros, con retorno...
6+
# * - Comprueba si puedes crear funciones dentro de funciones.
7+
# * - Utiliza algún ejemplo de funciones ya creadas en el lenguaje.
8+
# * - Pon a prueba el concepto de variable LOCAL y GLOBAL.
9+
# * - Debes hacer print por consola del resultado de todos los ejemplos.
10+
# * (y tener en cuenta que cada lenguaje puede poseer más o menos posibilidades)
11+
# *
12+
# * DIFICULTAD EXTRA (opcional):
13+
# * Crea una función que reciba dos parámetros de tipo cadena de texto y retorne un número.
14+
# * - La función imprime todos los números del 1 al 100. Teniendo en cuenta que:
15+
# * - Si el número es múltiplo de 3, muestra la cadena de texto del primer parámetro.
16+
# * - Si el número es múltiplo de 5, muestra la cadena de texto del segundo parámetro.
17+
# * - Si el número es múltiplo de 3 y de 5, muestra las dos cadenas de texto concatenadas.
18+
# * - La función retorna el número de veces que se ha impreso el número en lugar de los textos.
19+
# *
20+
# * Presta especial atención a la sintaxis que debes utilizar en cada uno de los casos.
21+
# * Cada lenguaje sigue una convenciones que debes de respetar para que el código se entienda.
22+
# */
23+
24+
# Funciones básicas
25+
26+
def saludo_basico():
27+
print("Hola")
28+
29+
def saludo_personalizado(nombre: str):
30+
print(f'Hola {nombre}')
31+
32+
def suma(a: int, b: int):
33+
return a + b
34+
35+
# No podemos crear funciones dentro de funciones en Python, lo que si podemos hacer es llamar a una función dentro de otra.
36+
def suma_rango(a: int, b: int):
37+
suma = 0
38+
for i in range(a, b+1):
39+
suma += i
40+
41+
return suma
42+
43+
print(f'La suma del rango de 1 a 200 es: {suma_rango(1, 200)}')
44+
45+
# De este modo también acabamos de usar funciones ya creadas en python, como range().
46+
47+
# Variable LOCAL y GLOBAL
48+
# En Python, una variable declarada dentro de una función es local a esa función, a menos que se declare global.
49+
50+
age = 25
51+
52+
def get_age():
53+
global age # Hay que asignar antes de la variable local.
54+
age = 30
55+
print(f'La edad dentro de la función es: {age}')# Imprime 30
56+
print(f'La edad fuera de la función es: {age}')# Imprime 25
57+
58+
get_age()
59+
60+
# Dificultad extra
61+
def string_to_number(string1: str, string2: str) -> int:
62+
63+
number = 0
64+
65+
for i in range(1, 101):
66+
if i % 3 == 0 and i % 5 == 0:
67+
print(f'{string1} {string2}')
68+
elif i % 3 == 0:
69+
print(f'{string1}')
70+
elif i % 5 == 0:
71+
print(f'{string2}')
72+
else:
73+
number += 1
74+
print(i)
75+
76+
return number
77+
78+
79+
times = string_to_number('Hola caracola', 'Hola caraculo')
80+
81+
print(f'Se ha impreso el número {times} veces')
Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
/* EJERCICIO:
2+
* Muestra ejemplos de todas las operaciones que puedes realizar con cadenas de caracteres
3+
* en JavaScript. Todas las operaciones que se podrian hacer:
4+
* - Acceso a caracteres específicos, subcadenas, longitud, concatenación, repetición, recorrido,
5+
* conversión a mayúsculas y minúsculas, reemplazo, división, unión, interpolación, verificación, etc...
6+
*/
7+
8+
// Acceso a caracteres específicos
9+
let cadena = "Hola mundo";
10+
console.log(cadena[0]); // H
11+
console.log(cadena.charAt(0)); // H
12+
console.log(cadena.charCodeAt(0)); // 72
13+
14+
// Subcadenas
15+
console.log(cadena.substring(0, 4)); // Hola
16+
console.log(cadena.substr(0, 4)); // Hola
17+
console.log(cadena.slice(0, 4)); // Hola
18+
console.log(cadena.slice(-5)); // mundo
19+
20+
// Longitud
21+
console.log(cadena.length); // 10
22+
23+
// Concatenación
24+
let cadena2 = " desde JavaScript";
25+
console.log(cadena + cadena2); // Hola mundo desde JavaScript
26+
console.log(cadena.concat(cadena2)); // Hola mundo desde JavaScript
27+
//console.log(cadena.concat(" desde JavaScript")); // Hola mundo desde JavaScript
28+
29+
// Repetición
30+
console.log(cadena.repeat(3)); // Hola mundoHola mundoHola mundo
31+
32+
//Recorrido o Iteración
33+
for (let i = 0; i < cadena.length; i++) {
34+
console.log(cadena[i]);// H o l a m u n d o
35+
}
36+
for(let i in cadena){
37+
console.log(cadena[i]); // H o l a m u n d o
38+
}
39+
40+
// Conversión a mayúsculas y minúsculas
41+
console.log(cadena.toUpperCase()); // HOLA MUNDO
42+
console.log(cadena.toLowerCase()); // hola mundo
43+
44+
// Reemplazo
45+
console.log(cadena.replace("mundo", "amigos")); // Hola amigos
46+
console.log(cadena.replace(/o/g, "0")); // H0la mund0
47+
48+
// División
49+
console.log(cadena.split(" ")); // ["Hola", "mundo"]
50+
51+
// Unión
52+
console.log(["Hola", "mundo"].join(" ")); // Hola mundo
53+
54+
// Interpolación
55+
let nombre = "Juan";
56+
let edad = 25;
57+
console.log(`Me llamo ${nombre} y tengo ${edad} años.`); // Me llamo Juan y tengo 25 años.
58+
59+
// Verificación
60+
console.log(cadena.startsWith("Hola")); // true
61+
console.log(cadena.endsWith("mundo")); // true
62+
console.log(cadena.includes("mundo")); // true
63+
64+
console.log(cadena.match(/o/g)); // ["o", "o"]
65+
console.log(cadena.match(/o/g).length); // 2
66+
console.log(cadena.match(/o/g).join("")); // oo
67+
console.log(cadena.match(/o/g).toString()); // o,o
68+
console.log(cadena.match(/o/g).reverse().join("")); // o,o (no funciona) porque reverse() no es una función de un array de strings sino de un array de objetos (en este caso, de un array de strings)
69+
70+
//Eliminar Espacios en Blanco (Trim)
71+
let cadena3 = " Hola mundo ";
72+
console.log(cadena3.trim()); // Hola mundo (elimina los espacios en blanco al principio y al final de la cadena)
73+
console.log(cadena3.trimStart()); // Hola mundo (elimina los espacios en blanco al principio de la cadena)
74+
console.log(cadena3.trimEnd()); // Hola mundo (elimina los espacios en blanco al final de la cadena)
75+
76+
// Buscar indice de un caracter o subcadena
77+
console.log(cadena.indexOf("mundo")); // 5
78+
console.log(cadena.lastIndexOf("o")); // 7
79+
console.log(cadena.search("mundo")); // 5
80+
81+
// Comparación de Cadenas
82+
let cadena4 = "Hola";
83+
let cadena5 = "Hola";
84+
console.log(cadena4 === cadena5); // true (compara el valor y el tipo de dato)
85+
console.log(cadena4 == cadena5); // true (compara el valor)
86+
console.log(cadena4 > cadena5); // false (compara el valor en Unicode)
87+
console.log(cadena4 < cadena5); // false (compara el valor en Unicode)
88+
console.log(cadena4 >= cadena5); // true (compara el valor en Unicode)
89+
console.log(cadena4 <= cadena5); // true (compara el valor en Unicode)
90+
91+
//Convertir Cadena a Array de Caracteres
92+
let cadena6 = "Hola";
93+
console.log(cadena6.split("")); // ["H", "o", "l", "a"]
94+
let chars = [...cadena6];
95+
console.log(chars); // ["H", "o", "l", "a"]
96+
97+
//Remplazo Complejo Usando Expresiones Regulares
98+
let cadena7 = "Hola mundo";
99+
console.log(cadena7.replace(/(mundo)/, "amigos")); // Hola amigos
100+
101+
let frase = "Ella es ella, pero ella no es él.";
102+
console.log(frase.replace(/ella/g, "él")); // Él es él, pero él no es él.
103+
104+
//Convertir a Código ASCII
105+
let cadena8 = "Hola";
106+
let ascii = "";
107+
for (let i = 0; i < cadena8.length; i++) {
108+
ascii += cadena8.charCodeAt(i) + " ";
109+
}
110+
console.log(ascii); // 72 111 108 97
111+
112+
//Convertir a Código ASCII con Expresiones Regulares
113+
let cadena9 = "Hola";
114+
let ascii2 = "";
115+
let asciiArray = cadena9.split("").map(c => c.charCodeAt(0));
116+
ascii2 = asciiArray.join(" ");
117+
console.log(ascii2); // 72 111 108 97
118+
119+
//convertir a Código ASCII con Expresiones Regulares
120+
const texto = "Hola";
121+
let ascii3 = texto.replace(/./g, c => c.charCodeAt(0) + " ");
122+
console.log(ascii3); // 72 111 108 97
123+
124+
//Convertir a Código ASCII con Expresiones Regulares y Eliminar Espacios en Blanco
125+
const texto2 = "Hola";
126+
let ascii4 = texto2.replace(/./g, c => c.charCodeAt(0) + " ").trim();
127+
console.log(ascii4); // 72 111 108 97
128+
129+
//Convertir a Código ASCII con Expresiones Regulares y Eliminar Espacios en Blanco con Expresiones Regulares
130+
const texto3 = "Hola";
131+
let ascii5 = texto3.replace(/./g, c => c.charCodeAt(0) + " ").replace(/\s/g, "");
132+
console.log(ascii5); // 7211110897
133+
134+
//Convertir a Código ASCII con Expresiones Regulares y Eliminar Espacios en Blanco con Expresiones Regulares y Convertir a Array
135+
const texto4 = "Hola";
136+
let ascii6 = texto4.replace(/./g, c => c.charCodeAt(0) + " ").replace(/\s/g, "").split("");
137+
console.log(ascii6); // ["7", "2", "1", "1", "1", "0", "8", "9", "7"]
138+
139+
//Convertir a Código ASCII con Expresiones Regulares y Eliminar Espacios en Blanco con Expresiones Regulares y Convertir a Array de Números
140+
const texto5 = "Hola";
141+
let ascii7 = texto5.replace(/./g, c => c.charCodeAt(0) + " ").replace(/\s/g, "").split("").map(Number);
142+
console.log(ascii7); // [7, 2, 1, 1, 1, 0, 8, 9, 7]
143+
144+
145+
// Ejercio Practico
146+
function esPalindromo(texto) {
147+
// Convertimos el texto a minúsculas, eliminamos todos los caracteres no alfanuméricos
148+
// y normalizamos para eliminar tildes
149+
const textoLimpio = texto
150+
.normalize('NFD') // Descompone caracteres acentuados
151+
.replace(/[\u0300-\u036f]/g, '') // Elimina los diacríticos (tildes)
152+
.toLowerCase() // Convertimos todo a minúsculas
153+
.replace(/[^a-z0-9]/g, ''); // Eliminamos caracteres no alfanuméricos
154+
155+
// Comparamos el texto limpio con su versión invertida
156+
const esPalindromo = textoLimpio === textoLimpio.split('').reverse().join('');
157+
158+
// Retornamos un mensaje en forma de string indicando si es palíndromo o no
159+
return esPalindromo ? `"${texto}" es un palíndromo` : `"${texto}" no es un palíndromo`;
160+
}
161+
162+
const frase1= "Somos o no somos"
163+
const frase2 = "Amó la paloma"
164+
const frase3 = "palabra"
165+
const frase4 = "No es palíndromo"
166+
167+
console.log(esPalindromo(frase1)); // "Somos o no somos" es un palíndromo
168+
console.log(esPalindromo(frase2)); // "Amó la paloma" es un palíndromo
169+
console.log(esPalindromo(frase3)); // "palabra" no es un palíndromo
170+
console.log(esPalindromo(frase4)); // "No es palíndromo" no es un palíndromo
171+
172+
173+
174+
175+

0 commit comments

Comments
 (0)