Skip to content

Commit

Permalink
Merge pull request #7672 from codeskin-r/reto-00-python
Browse files Browse the repository at this point in the history
#00 - Python
  • Loading branch information
Roswell468 authored Jan 25, 2025
2 parents 4835332 + 1c1a108 commit ab64ae5
Show file tree
Hide file tree
Showing 2 changed files with 313 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# https://www.python.org/ # comentario de una linea

"""
comentario de varias lineas
en este caso podria ser util
para realizar aclaraciones que
necesiten de una mayor cantidad
de texto
"""

# Variables

x = 10 #entero
y = 3.14 #flotante
z = 2 + 3j # Número complejo

# variables de texto

nombre = "Carlitos"
mensaje = "Hola, universo 🌍️!"
frase_multilinea = """Hola Moure, te agradezco
mucho por lo que haces por nosotros, parece
simple, pero esto es demasiado!"""

# Constantes

"""
Python no tiene constantes verdaderas como otros lenguajes (por ejemplo, const en JavaScript o final en Java).
Pero, por convención, las constantes se escriben en mayúsculas para indicar que no deberían modificarse.
"""

PI = 3.1416
GRAVEDAD = 9.81

print(PI) # 3.1416
print(GRAVEDAD) # 9.81


# variables que representan datos primitivos del lenguaje Python

# Entero (int)
numero_entero = 42

# Flotante (float)
numero_decimal = 3.14

# Número complejo (complex)
numero_complejo = 6 + 1

# Booleano (bool)
es_verdadero = True
es_falso = False

# Cadena de texto (str)
mensaje = "Hola, como estas Moure?"

# Bytes (bytes)
dato_bytes = b"Hola"

# Bytearray (bytearray)
dato_bytearray = bytearray(5) # Crea un array de 5 bytes vacíos

# NoneType (None)
sin_valor = None

print("Hola, Python 🦎")
print(type(numero_decimal))
print(type(numero_complejo))
print(type(es_verdadero))
print(type(mensaje))




# Fin.
236 changes: 236 additions & 0 deletions Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/python/codeskin-r.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,236 @@
# Operadores aritmeticos

a = 5
b = 3

suma = a + b # 10 + 5 = 15
resta = a - b # 10 - 4 = 6
multiplicacion = a * b # 10 * 3 = 30
division = a / b # 4 / 2 = 2
division_entera = a // b # 10 / 3 = 3 (redondeado hacia abajo)
modulo = a % b # 10 % 3 = 1 (resto de la division)
potencia = a ** b # 10^3 = 1000

print(suma, resta, multiplicacion, division, division_entera, modulo, potencia)


# Operadores de asignacion

x = 5 # Asignación normal

x += 3 # Equivale a: x = x + 3 → x = 8
x -= 2 # x = x - 2 → x = 6
x *= 4 # x = x * 4 → x = 24
x /= 3 # x = x / 3 → x = 8.0
x //= 2 # x = x // 2 → x = 4.0
x %= 3 # x = x % 3 → x = 1.0
x **= 2 # x = x ** 2 → x = 1.0

print(x)

# Operadores de comparacion

a = 10
b = 5

print(a == b) # False (10 no es igual a 5)
print(a != b) # True (10 es diferente de 5)
print(a > b) # True (10 es mayor que 5)
print(a < b) # False (10 no es menor que 5)
print(a >= 10) # True (10 es mayor o igual a 10)
print(a <= 5) # False (10 no es menor o igual a 5)


# Operadores logicos

x = True
y = False

print(x and y) # False (Ambos deben ser True)
print(x or y) # True (Basta con que uno sea True)
print(not x) # False (Invierte el valor de x)


# Operadores de identidad

a = [1, 2, 3]
b = a
c = [1, 2, 3]

print(a is b) # True (b apunta al mismo objeto que a)
print(a is not c) # True (c es una lista nueva, aunque tenga los mismos valores)


# Operadores de pertenencia

frutas = ["manzana", "banana", "cereza"]

print("manzana" in frutas) # True (manzana está en la lista)
print("pera" not in frutas) # True (pera NO está en la lista)


# Operadores Bit a Bit

a = 5 # En binario: 0101
b = 3 # En binario: 0011

print(a & b) # AND → 0101 & 0011 = 0001 → 1
print(a | b) # OR → 0101 | 0011 = 0111 → 7
print(a ^ b) # XOR → 0101 ^ 0011 = 0110 → 6
print(~a) # NOT → ~0101 = -6 (por cómo maneja Python los bits)
print(a << 1) # Desplazar bits a la izquierda (multiplica por 2) → 1010 → 10
print(a >> 1) # Desplazar bits a la derecha (divide por 2) → 0010 → 2





# Ejemplos de estructuras de control


# Condicionales (if, elif, else)
# Bucles (for, while)
# Control de flujo en bucles (break, continue, pass)


# Condicionales

# se usan para ejecutar codigo solo si se cumplen ciertas condiciones

edad = 20

if edad >= 18: # Comparación con >=
print("Eres mayor de edad.")
elif edad == 17: # Comparación con ==
print("Casi eres mayor de edad.")
else:
print("Eres menor de edad.")


# Ejemplo con operadores logicos

usuario = "admin"
clave = "5432"

if usuario == "admin" and clave == "5432": # AND lógico
print("Acceso permitido")
else:
print("Acceso denegado")


# Ejemplo con operadores de identidad y pertenencia

lista = [1, 2, 3, 4]
x = 3

if x in lista: # Pertenencia
print("El número está en la lista.")

if type(x) is int: # Identidad
print("x es un entero.")



# Bucle (for)

# Se usa para recorrer secuencias (listas, tuplas, cadenas, etc.)

# Usando un bucle for con operadores aritméticos
for i in range(1, 6): # Genera números del 1 al 5
print(f"El cuadrado de {i} es {i**2}") # Operador de potencia


# Ejemplo con listas y operadores de asignación

numeros = [1, 2, 3, 4, 5]
suma = 0

for num in numeros:
suma += num # Operador de asignación (+=)

print("La suma total es:", suma)


# Ejemplo con cadenas y pertenencia

palabra = "Python"

for letra in palabra:
if letra in "aeiou": # Verifica si es una vocal
print(f"{letra} es una vocal")


# Bucle (while)

x = 10

while x > 0: # Condición con operador de comparación
print(f"x vale {x}")
x -= 2 # Resta usando operador de asignación (-=)

# Ejemplo con operadores logicos

numero = 1

while numero < 10 and numero % 2 != 0: # AND lógico y operador módulo
print(f"{numero} es impar")
numero += 2



# Control de flujo en bucles (break, continue, pass)


# Estos comandos permiten modificar el comportamiento de los bucles

# break (sale del bucle)

for num in range(10):
if num == 5:
print("Se encontró el 5, saliendo del bucle.")
break # Detiene la ejecución
print(num)

# continue (salta a la siguiente iteracion)

for num in range(1, 6):
if num == 3:
continue # Salta la iteración cuando num es 3
print(num)

# pass (se usa como marcador de posicion)

for num in range(3):
pass # No hace nada, evita errores de sintaxis

if True:
pass # Se usa cuando aún no hemos definido la lógica


"""
DIFICULTAD EXTRA:
Crea un programa que imprima por consola todos los números comprendidos
entre 10 y 55 (incluidos), pares, y que no son ni el 16 ni múltiplos de 3.
"""

# Bucle que recorre los números del 10 al 55 (incluidos)

#for numero in range(10, 56): # range(10, 56) genera números del 10 al 55

# if numero % 2 != 0: # Si el número NO es par, lo saltamos
# continue # Salta a la siguiente iteración

# if numero == 16: # Si el número es 16, lo saltamos
# continue

# if numero % 3 == 0: # Si el número es múltiplo de 3, lo saltamos
# continue

# print(numero) # Si pasa todos los filtros, lo imprimimos

for n in range(10, 56, 2): # Solo números pares del 10 al 55
if n != 16 and n % 3:
print(n)



0 comments on commit ab64ae5

Please # to comment.