1+ """
2+ EJERCICIO: Operadores y Estructuras de Control en Python
3+ """
4+
5+ print ("=" * 60 )
6+ print ("OPERADORES EN PYTHON" )
7+ print ("=" * 60 )
8+
9+ # 1. OPERADORES ARITMÉTICOS
10+ print ("\n --- OPERADORES ARITMÉTICOS ---" )
11+ a = 15
12+ b = 4
13+ print (f"a = { a } , b = { b } " )
14+ print (f"Suma (a + b): { a + b } " )
15+ print (f"Resta (a - b): { a - b } " )
16+ print (f"División (a / b): { a / b } " )
17+ print (f"División entera (a // b): { a // b } " )
18+ print (f"Módulo (a % b): { a % b } " )
19+ print (f"Potencia (a ** b): { a ** b } " )
20+
21+ # 2. OPERADORES DE COMPARACIÓN
22+ print ("\n --- OPERADORES DE COMPARACIÓN ---" )
23+ x = 10
24+ y = 20
25+ print (f"x = { x } , y = { y } " )
26+ print (f"Igual (x == y): { x == y } " )
27+ print (f"Diferente (x != y): { x != y } " )
28+ print (f"Mayor que (x > y): { x > y } " )
29+ print (f"Menor que (x < y): { x < y } " )
30+ print (f"Mayor o igual (x >= y): { x >= y } " )
31+ print (f"Menor o igual (x <= y): { x <= y } " )
32+
33+ # 3. OPERADORES LÓGICOS
34+ print ("\n --- OPERADORES LÓGICOS ---" )
35+ verdadero = True
36+ falso = False
37+ print (f"verdadero = { verdadero } , falso = { falso } " )
38+ print (f"AND (verdadero and falso): { verdadero and falso } " )
39+ print (f"OR (verdadero or falso): { verdadero or falso } " )
40+ print (f"NOT (not verdadero): { not verdadero } " )
41+
42+ # 4. OPERADORES DE ASIGNACIÓN
43+ print ("\n --- OPERADORES DE ASIGNACIÓN ---" )
44+ numero = 10
45+ print (f"Asignación inicial: numero = { numero } " )
46+ numero += 5
47+ print (f"Suma y asignación (+=): { numero } " )
48+ numero -= 3
49+ print (f"Resta y asignación (-=): { numero } " )
50+ numero *= 2
51+ print (f"Multiplicación y asignación (*=): { numero } " )
52+ numero //= 3
53+ print (f"División entera y asignación (//=): { numero } " )
54+ numero %= 5
55+ print (f"Módulo y asignación (%=): { numero } " )
56+ numero **= 2
57+ print (f"Potencia y asignación (**=): { numero } " )
58+
59+ # 5. OPERADORES DE IDENTIDAD
60+ print ("\n --- OPERADORES DE IDENTIDAD ---" )
61+ lista1 = [1 , 2 , 3 ]
62+ lista2 = [1 , 2 , 3 ]
63+ lista3 = lista1
64+ print (f"lista1: { lista1 } (id: { id (lista1 )} )" )
65+ print (f"lista2: { lista2 } (id: { id (lista2 )} )" )
66+ print (f"lista3: { lista3 } (id: { id (lista3 )} )" )
67+ print (f"lista1 is lista2: { lista1 is lista2 } " )
68+ print (f"lista1 is lista3: { lista1 is lista3 } " )
69+ print (f"lista1 is not lista2: { lista1 is not lista2 } " )
70+
71+ # 6. OPERADORES DE PERTENENCIA
72+ print ("\n --- OPERADORES DE PERTENENCIA ---" )
73+ frutas = ["manzana" , "pera" , "naranja" ]
74+ print (f"Lista de frutas: { frutas } " )
75+ print (f"'manzana' in frutas: { 'manzana' in frutas } " )
76+ print (f"'uva' in frutas: { 'uva' in frutas } " )
77+ print (f"'uva' not in frutas: { 'uva' not in frutas } " )
78+
79+ # 7. OPERADORES DE BITS
80+ print ("\n --- OPERADORES DE BITS ---" )
81+ num1 = 10 # 1010 en binario
82+ num2 = 4 # 0100 en binario
83+ print (f"num1 = { num1 } ({ bin (num1 )} ), num2 = { num2 } ({ bin (num2 )} )" )
84+ print (f"AND bit a bit (num1 & num2): { num1 & num2 } ({ bin (num1 & num2 )} )" )
85+ print (f"OR bit a bit (num1 | num2): { num1 | num2 } ({ bin (num1 | num2 )} )" )
86+ print (f"XOR bit a bit (num1 ^ num2): { num1 ^ num2 } ({ bin (num1 ^ num2 )} )" )
87+ print (f"NOT bit a bit (~num1): { ~ num1 } ({ bin (~ num1 )} )" )
88+ print (f"Desplazamiento izquierda (num1 << 2): { num1 << 2 } ({ bin (num1 << 2 )} )" )
89+ print (f"Desplazamiento derecha (num1 >> 2): { num1 >> 2 } ({ bin (num1 >> 2 )} )" )
90+
91+ print ("\n " + "=" * 60 )
92+ print ("ESTRUCTURAS DE CONTROL" )
93+ print ("=" * 60 )
94+
95+ # 1. CONDICIONALES (if, elif, else)
96+ print ("\n --- CONDICIONALES ---" )
97+ edad = 25
98+ print (f"Edad: { edad } " )
99+ if edad < 18 :
100+ print ("Eres menor de edad" )
101+ elif edad < 65 :
102+ print ("Eres adulto" )
103+ else :
104+ print ("Eres adulto mayor" )
105+
106+ # Operador ternario
107+ mensaje = "Par" if edad % 2 == 0 else "Impar"
108+ print (f"La edad es: { mensaje } " )
109+
110+ # 2. BUCLE FOR
111+ print ("\n --- BUCLE FOR ---" )
112+ print ("Números del 1 al 5:" )
113+ for i in range (1 , 6 ):
114+ print (f" { i } " )
115+
116+ print ("Iterando sobre una lista:" )
117+ colores = ["rojo" , "verde" , "azul" ]
118+ for color in colores :
119+ print (f"Color: { color } " )
120+
121+ # 3. BUCLE WHILE
122+ print ("\n --- BUCLE WHILE ---" )
123+ contador = 0
124+ print ("Contando hasta 3:" )
125+ while contador < 3 :
126+ contador += 1
127+ print (f"Contador: { contador } " )
128+
129+ # 4. BREAK Y CONTINUE
130+ print ("\n --- BREAK Y CONTINUE ---" )
131+ print ("Usando break (detener en 5):" )
132+ for i in range (1 , 10 ):
133+ if i == 5 :
134+ break
135+ print (f"{ i } " )
136+
137+ print ("Usando continue (saltar números pares):" )
138+ for i in range (1 , 8 ):
139+ if i % 2 == 0 :
140+ continue
141+ print (f"{ i } " )
142+
143+ # 5. MANEJO DE EXCEPCIONES
144+ print ("\n --- MANEJO DE EXCEPCIONES ---" )
145+ try :
146+ resultado = 10 / 0
147+ except ZeroDivisionError as e :
148+ print (f"Error capturado: { e } " )
149+ except Exception as e :
150+ print (f"Otro error: { e } " )
151+ else :
152+ print ("No hubo errores" )
153+ finally :
154+ print ("Este bloque siempre se ejecuta" )
155+
156+
157+ # 6. MATCH-CASE
158+ print ("\n --- MATCH-CASE ---" )
159+ dia = 3
160+ match dia :
161+ case 1 :
162+ print ("Lunes" )
163+ case 2 :
164+ print ("Martes" )
165+ case 3 :
166+ print ("Miércoles" )
167+ case 4 | 5 :
168+ print ("Jueves o Viernes" )
169+ case _:
170+ print ("Fin de semana" )
171+
172+ print ("\n " + "=" * 60 )
173+ print ("\n Números entre 10 y 55 (incluidos), pares, que NO son 16 ni múltiplos de 3:" )
174+ print ()
175+
176+ for numero in range (10 , 56 ):
177+ # Debe ser par
178+ if numero % 2 != 0 :
179+ continue
180+
181+ # No debe ser 16
182+ if numero == 16 :
183+ continue
184+
185+ # No debe ser múltiplo de 3
186+ if numero % 3 == 0 :
187+ continue
188+
189+ print (numero )
190+
191+ # for i in range(10,56):
192+ # if i % 2 == 0 and i != 16 and i % 3 != 0:
193+ # print(i)
0 commit comments