Skip to content

Commit 0a23fc5

Browse files
committed
mejoras
1 parent f764245 commit 0a23fc5

44 files changed

Lines changed: 3170 additions & 691 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 61 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,66 @@
1-
# Clase en vídeo: https://youtu.be/Kp4Mvapo5kc
2-
3-
### Hola Mundo ###
1+
"""
2+
Clase 01 — Hello World e I/O básico (input/print)
43
5-
# Nuestro hola mundo en Python
6-
print("Hola Python")
7-
print('Hola Python')
4+
Propósito:
5+
- Imprimir mensajes en consola con print()
6+
- Diferenciar comentarios de una línea y docstrings/bloques multilínea
7+
- Reconocer tipos básicos con type()
8+
- Practicar un pequeño bloque de entrada/salida (opcional)
89
9-
# Esto es un comentario
10+
Cómo ejecutar:
11+
- ../.venv/bin/python Hello-Python/Basic/00_helloworld.py
1012
13+
Nota: hay un bloque de práctica con input comentado para no bloquear pruebas. Lee el flujo y luego descoméntalo si quieres interactuar.
1114
"""
12-
Este es un
13-
comentario
14-
en varias líneas
15-
"""
1615

17-
'''
18-
Este también es un
19-
comentario
20-
en varias líneas
21-
'''
22-
23-
# Cómo consultar el tipo de dato
24-
print(type("Soy un dato str")) # Tipo 'str'
25-
print(type(5)) # Tipo 'int'
26-
print(type(1.5)) # Tipo 'float'
27-
print(type(3 + 1j)) # Tipo 'complex'
28-
print(type(True)) # Tipo 'bool'
29-
print(type(print("Mi cadena de texto"))) # Tipo 'NoneType'
16+
from __future__ import annotations
17+
18+
19+
def demo_hello_world() -> None:
20+
"""Demostración mínima de impresión en consola."""
21+
print("Hola Python")
22+
print('Hola Python') # Comillas simples o dobles, ambas funcionan
23+
24+
25+
def demo_comments_and_docstrings() -> None:
26+
"""Muestra diferentes tipos de comentarios.
27+
28+
- El texto entre triple comillas al inicio del archivo es un docstring de módulo.
29+
- Este docstring pertenece a la función.
30+
- Las líneas que empiezan con # son comentarios de una sola línea.
31+
"""
32+
# Esto es un comentario de una línea (no se ejecuta)
33+
34+
"""
35+
Este es un bloque de texto multilínea que, si no se asigna a una variable,
36+
suele usarse como comentario de varias líneas. Técnicamente Python lo
37+
interpreta como un literal de cadena no usado.
38+
"""
39+
40+
41+
def demo_basic_types() -> None:
42+
"""Repaso de tipos básicos y la función type()."""
43+
print(type("Soy un dato str")) # str (cadena de texto)
44+
print(type(5)) # int (entero)
45+
print(type(1.5)) # float (coma flotante)
46+
print(type(3 + 1j)) # complex (número complejo)
47+
print(type(True)) # bool (booleano)
48+
print(type(print("Mi cadena de texto"))) # NoneType (print no devuelve nada)
49+
50+
51+
# Bloque de práctica (comentado para no interrumpir ejecuciones automatizadas)
52+
# 1) Descomenta y ejecuta el archivo. Escribe tu nombre cuando te lo pida.
53+
# 2) Observa la salida.
54+
# 3) Prueba a cambiar el mensaje.
55+
#
56+
# name = input("¿Cuál es tu nombre? ")
57+
# print(f"Encantado, {name}!")
58+
# Checklist mental (comentado)
59+
# - print(): ¿entiendo que imprime y no devuelve valor (None)?
60+
# - type(): ¿puedo reconocer str, int, float, bool, complex?
61+
# - Comentarios: # para una línea, triple comillas para docstrings/bloques.
62+
63+
if __name__ == "__main__":
64+
demo_hello_world()
65+
demo_comments_and_docstrings()
66+
demo_basic_types()

Hello-Python/Basic/01_variables.py

Lines changed: 70 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,70 @@
1-
# Variables en una sola línea. ¡Cuidado con abusar de esta sintaxis!
2-
#name, surname, alias, age = "Brais", "Moure", 'MoureDev', 35
3-
#print("Me llamo:", name, surname, ". Mi edad es:",
4-
# age, ". Y mi alias es:", alias)
5-
6-
# Inputs
7-
'''
8-
name = input('¿Cuál es tu nombre? ')
9-
age = input('¿Cuántos años tienes? ')
10-
print(name)
11-
print(age)
12-
'''
13-
# Cambiamos su tipo
14-
name = 35
15-
age = "Brais"
16-
print(name)
17-
print(age)
18-
19-
assress: str = "mi casa"
20-
address = 32
21-
print(type(address))
22-
23-
# ¿Forzamos el tipo?
24-
#address: str = "Mi dirección"
25-
#address = True
26-
#address = 5
27-
#address = 1.2
28-
#print(type(address))
1+
"""
2+
Clase 02 — Variables y Strings (base)
3+
4+
Propósito:
5+
- Entender qué es una variable y cómo asignar valores
6+
- Practicar strings y transformaciones básicas (len, upper, replace, strip)
7+
- Mantener el código legible con nombres descriptivos
8+
9+
Cómo ejecutar:
10+
- ../.venv/bin/python Hello-Python/Basic/01_variables.py
11+
12+
Nota: Hay un bloque de práctica con input comentado para no bloquear pruebas.
13+
"""
14+
15+
from __future__ import annotations
16+
17+
18+
def demo_variables_basicas() -> None:
19+
"""Variables, asignación y tipos comunes."""
20+
mensaje: str = "Hola"
21+
veces: int = 3
22+
pi_aproximado: float = 3.14
23+
es_activo: bool = True
24+
25+
# f-strings: interpolación de variables en cadenas
26+
print(f"mensaje={mensaje}, veces={veces}, pi≈{pi_aproximado}, activo={es_activo}")
27+
28+
# Python es de tipado dinámico: puedes reasignar otro tipo
29+
# (No es recomendable para principiantes; mejor mantener consistencia)
30+
mensaje = mensaje + " Python"
31+
print("Después de concatenar:", mensaje)
32+
33+
34+
def demo_strings_basicos() -> None:
35+
"""Operaciones esenciales con strings: len, upper, replace, strip."""
36+
frase = " Hola mundo desde Python "
37+
print("Original:", repr(frase))
38+
39+
frase_limpia = frase.strip() # quita espacios al inicio/fin
40+
print("strip():", repr(frase_limpia))
41+
42+
longitud = len(frase_limpia) # mide longitud
43+
print("len():", longitud)
44+
45+
mayus = frase_limpia.upper() # mayúsculas
46+
print("upper():", mayus)
47+
48+
con_guiones = frase_limpia.replace(" ", "_") # reemplaza espacios
49+
print("replace(' ', '_'):", con_guiones)
50+
51+
# Importante: las cadenas son inmutables; cada operación crea una nueva cadena.
52+
53+
54+
# Práctica guiada (comentada)
55+
# 1) Pide al usuario una frase, límpiala con strip() y muestra:
56+
# - longitud
57+
# - mayúsculas
58+
# - la misma frase con guiones bajos en vez de espacios
59+
# 2) Declara variables nombre, edad y activo. Forma un mensaje con f-string.
60+
# 3) Verifica con type() los tipos de tus variables.
61+
# Checklist mental (comentado)
62+
# - ¿Qué es una variable? Un nombre que referencia un valor.
63+
# - Strings son inmutables: cada transformación crea una nueva cadena.
64+
# - ¿Cuándo usar strip(), len(), upper(), replace()?
65+
# - ¿Mis nombres de variables son descriptivos?
66+
67+
68+
if __name__ == "__main__":
69+
demo_variables_basicas()
70+
demo_strings_basicos()

Hello-Python/Basic/02_operators.py

Lines changed: 94 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,94 @@
1-
# Clase en vídeo: https://youtu.be/Kp4Mvapo5kc?t=5665
2-
3-
'''
4-
5-
'''
6-
7-
### Operadores Aritméticos ###
8-
9-
# Operaciones con enteros
10-
print(3 + 4)
11-
print(3 - 4)
12-
print(3 * 4)
13-
print(3 / 4)
14-
print(10 % 3)
15-
print(10 // 3)
16-
print(2 ** 3)
17-
print(2 ** 3 + 3 - 7 / 1 // 4)
18-
19-
# Operaciones con cadenas de texto
20-
print("Hola " + "Python " + "¿Qué tal?")
21-
print("Hola " + str(5))
22-
23-
# Operaciones mixtas
24-
print("Hola " * 5)
25-
print("Hola " * (2 ** 3))
26-
27-
my_float = 2.5 * 2
28-
print("Hola " * int(my_float))
29-
30-
### Operadores Comparativos ###
31-
32-
# Operaciones con enteros
33-
print(3 > 4)
34-
print(3 < 4)
35-
print(3 >= 4)
36-
print(4 <= 4)
37-
print(3 == 4)
38-
print(3 != 4)
39-
40-
# Operaciones con cadenas de texto
41-
print("Hola" > "Python")
42-
print("Hola" < "Python")
43-
print("aaaa" >= "abaa") # Ordenación alfabética por ASCII
44-
print(len("aaaa") >= len("abaa")) # Cuenta caracteres
45-
print("Hola" <= "Python")
46-
print("Hola" == "Hola")
47-
print("Hola" != "Python")
48-
49-
### Operadores Lógicos ###
50-
51-
# Basada en el Álgebra de Boole https://es.wikipedia.org/wiki/%C3%81lgebra_de_Boole
52-
print(3 > 4 and "Hola" > "Python")
53-
print(3 > 4 or "Hola" > "Python")
54-
print(3 < 4 and "Hola" < "Python")
55-
print(3 < 4 or "Hola" > "Python")
56-
print(3 < 4 or ("Hola" > "Python" and 4 == 4))
57-
print(not (3 > 4))
1+
"""
2+
Clase 03 — Operadores (aritméticos, comparación y lógicos)
3+
4+
Propósito:
5+
- Practicar operadores aritméticos: +, -, *, /, //, %, **
6+
- Comparaciones: ==, !=, >, >=, <, <= (incluye strings)
7+
- Lógicos: and, or, not (usa paréntesis si hay duda de precedencia)
8+
- Casos mixtos con strings (concatenación y repetición)
9+
10+
Cómo ejecutar:
11+
- ../.venv/bin/python Hello-Python/Basic/02_operators.py
12+
13+
Notas:
14+
- La división por cero lanza ZeroDivisionError.
15+
- Con strings: "+" concatena, "*" repite (solo con enteros).
16+
"""
17+
18+
19+
def demo_aritmeticos() -> None:
20+
"""Demostración de operadores aritméticos y precedencia básica."""
21+
print("-- Aritméticos --")
22+
print(3 + 4) # suma -> 7
23+
print(3 - 4) # resta -> -1
24+
print(3 * 4) # multiplicación -> 12
25+
print(3 / 4) # división (float) -> 0.75
26+
print(10 % 3) # módulo (resto) -> 1
27+
print(10 // 3) # división entera (floor) -> 3
28+
print(2 ** 3) # potencia -> 8
29+
print(2 ** 3 + 3 - 7 / 1 // 4) # precedencia mixta
30+
31+
32+
def demo_strings_operadores() -> None:
33+
"""Uso de operadores con strings: concatenación y repetición."""
34+
print("-- Strings y Operadores --")
35+
print("Hola " + "Python " + "¿Qué tal?")
36+
print("Hola " + str(5))
37+
print("Hola " * 5)
38+
print("Hola " * (2 ** 3))
39+
my_float = 2.5 * 2
40+
print("Hola " * int(my_float)) # convertir a int para repetir
41+
42+
43+
def demo_comparacion() -> None:
44+
"""Comparaciones con números y cadenas (lexicográficas)."""
45+
print("-- Comparación --")
46+
print(3 > 4)
47+
print(3 < 4)
48+
print(3 >= 4)
49+
print(4 <= 4)
50+
print(3 == 4)
51+
print(3 != 4)
52+
53+
# Comparaciones de strings: orden lexicográfico (Unicode)
54+
print("Hola" > "Python")
55+
print("Hola" < "Python")
56+
print("aaaa" >= "abaa") # compara carácter a carácter
57+
print(len("aaaa") >= len("abaa")) # alternativa: compara por longitud
58+
print("Hola" <= "Python")
59+
print("Hola" == "Hola")
60+
print("Hola" != "Python")
61+
62+
63+
def demo_logicos() -> None:
64+
"""Operadores lógicos: and, or, not (con ejemplos de precedencia)."""
65+
print("-- Lógicos --")
66+
# Álgebra de Boole: and, or, not
67+
print(3 > 4 and "Hola" > "Python")
68+
print(3 > 4 or "Hola" > "Python")
69+
print(3 < 4 and "Hola" < "Python")
70+
print(3 < 4 or "Hola" > "Python")
71+
print(3 < 4 or ("Hola" > "Python" and 4 == 4))
72+
print(not (3 > 4))
73+
74+
75+
# Práctica guiada (comentada para no interrumpir pruebas automáticas)
76+
# 1) Calcula el precio final de un producto:
77+
# - precio_base = 100, descuento = 15% (aplica primero), IVA = 21% (después)
78+
# - Muestra el total final (usa paréntesis para claridad)
79+
# 2) Dadas dos cadenas s1, s2, muestra cuál es lexicográficamente mayor y
80+
# cuál es más larga (usa > y len()).
81+
# 3) Con tres booleanos a, b, c, evalúa: (a and b) or (not c) y explica el resultado.
82+
# Checklist mental (comentado)
83+
# - Aritméticos: +, -, *, /, //, %, ** (cuidado división por cero)
84+
# - Comparación: ==, !=, >, >=, <, <=
85+
# - Lógicos: and, or, not + paréntesis para precedencia
86+
# - Strings: + concatena, * repite (solo enteros)
87+
# - ¿Expresiones densas? Separa en variables intermedias para legibilidad
88+
89+
90+
if __name__ == "__main__":
91+
demo_aritmeticos()
92+
demo_strings_operadores()
93+
demo_comparacion()
94+
demo_logicos()

0 commit comments

Comments
 (0)