0% encontró este documento útil (0 votos)
29 vistas6 páginas

Estructuras de Control

Estructuras de control en Phyton

Cargado por

casaean
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
29 vistas6 páginas

Estructuras de Control

Estructuras de control en Phyton

Cargado por

casaean
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 6

1.

Estructuras de control en python


En Python, las estructuras de control te permiten controlar el flujo de ejecución de tu
programa. Las principales estructuras de control son:
1. Estructuras de selección (condicionales):
 if: Permite ejecutar un bloque de código si una condición es verdadera.
1 if condicion:
2 # código a ejecutar si la condición es verdadera

 else: Permite ejecutar un bloque de código si la condición del if es falsa.


1 if condicion:
2 # código a ejecutar si la condición es verdadera
3 else:
4 # código a ejecutar si la condición es falsa

 elif: Se utiliza para verificar múltiples condiciones después de un if.


1 if condicion1:
2 # código a ejecutar si la condición1 es verdadera
3 elif condicion2:
4 # código a ejecutar si la condición2 es verdadera
5 else:
6 # código a ejecutar si ninguna de las condiciones anteriores es verdadera

2. Estructuras de iteración (bucles):


 for: Se utiliza para iterar sobre una secuencia (por ejemplo, una lista o una cadena de texto)
1 for elemento in secuencia:
2 # código a ejecutar en cada iteración

 while: Ejecuta un bloque de código mientras una condición sea verdadera.


1 while condicion:
2 # código a ejecutar mientras la condición sea verdadera

3. Control de bucles:
 break: Termina prematuramente la ejecución de un bucle.
 continue: Salta a la siguiente iteración de un bucle.
 pass: No hace nada. Se utiliza cuando la sintaxis requiere un bloque de código pero no se desea
ejecutar nada en ese momento.
Ejemplo de estructuras de control en Python:
1 # Estructura de selección
2 x = 10
3 if x > 0:
4 print("x es positivo")
5 elif x == 0:
6 print("x es cero")
7 else:
8 print("x es negativo")
9
10 # Estructura de iteración
11 lista = [1, 2, 3, 4, 5]
12 for elemento in lista:
13 print(elemento)
14
15 # Control de bucles
16 for i in range(10):
17 if i == 3:
18 break

Página 1 de 6
19 print(i)

Esto es solo una introducción básica. Python ofrece muchas más características avanzadas en
sus estructuras de control, como la comprensión de listas, manejo de excepciones, entre otros.
2. Compresion de listas
La comprensión de listas en Python es una técnica concisa y poderosa para crear listas.
Permite crear una nueva lista aplicando una expresión a cada elemento de otra secuencia
(como otra lista o un rango) o iterando sobre una secuencia y filtrando los elementos que
cumplan cierta condición. La sintaxis básica es bastante simple:
1 nueva_lista = [expresion for elemento in secuencia]

O con filtrado:
1 nueva_lista = [expresion for elemento in secuencia if condicion]

Aquí tienes algunos ejemplos para ilustrar su uso:


1. Creación de una lista de cuadrados de números del 0 al 9:
1 cuadrados = [x**2 for x in range(10)]
2 print(cuadrados) # Output: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

2. Filtrado de una lista para obtener solo los números pares:


1 numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2 pares = [x for x in numeros if x % 2 == 0]
3 print(pares) # Output: [2, 4, 6, 8, 10]

3. Creación de una lista de tuplas (número, cuadrado) para los números del 0 al 4:
1 tuplas = [(x, x**2) for x in range(5)]
2 print(tuplas) # Output: [(0, 0), (1, 1), (2, 4), (3, 9), (4, 16)]

4. Flatten de una lista de listas:


1 lista_de_listas = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
2 flatten = [elemento for sublist in lista_de_listas for elemento in sublist]
3 print(flatten) # Output: [1, 2, 3, 4, 5, 6, 7, 8, 9]

La comprensión de listas es muy versátil y puede combinarse con funciones, operadores y


estructuras de control para realizar operaciones complejas de manera eficiente y legible. Es
una herramienta poderosa en el arsenal de todo programador de Python.
3. Manejo de excepciones
El manejo de excepciones en Python te permite manejar situaciones excepcionales o errores
que pueden ocurrir durante la ejecución de tu programa. Esto te permite escribir código
robusto que pueda anticipar y manejar estos errores de manera elegante. Aquí te muestro la
sintaxis básica del manejo de excepciones en Python:
1 try:
2 # Bloque de código donde se puede producir una excepción
3 # Por ejemplo, abrir un archivo, dividir por cero, etc.
4 # Si una excepción ocurre aquí, el control salta directamente al bloque except.
5 pass # Se puede dejar en blanco si no se necesita hacer nada en este bloque.
6
7 except ExcepcionTipo1:
8 # Manejo específico para la excepción de tipo ExcepcionTipo1
9 pass
10
11 except (ExcepcionTipo2, ExcepcionTipo3):
12 # Manejo para varias excepciones
13 pass
14
15 except ExcepcionTipo as alias:
16 # Asignación de un alias al objeto de excepción

Página 2 de 6
17 pass
18
19 except:
20 # Manejo para cualquier otra excepción no capturada por los bloques anteriores
21 pass
22
23 else:
24 # Se ejecuta si no se levanta ninguna excepción en el bloque try
25 pass
26
27 finally:
28 # Bloque opcional que se ejecuta sin importar si se levantó una excepción o no.
29 # Se utiliza para limpiar recursos, cerrar archivos, etc.
30 pass

Aquí hay un ejemplo básico de manejo de excepciones:


1 try:
2 resultado = 10 / 0 # Esto generará una excepción ZeroDivisionError
3 except ZeroDivisionError:
4 print("¡Error! No se puede dividir por cero.")
5 else:
6 print("El resultado es:", resultado)
7 finally:
8 print("Esto se ejecuta siempre, haya o no haya excepción.")

En este ejemplo, el bloque try intenta realizar una división que generará una excepción
ZeroDivisionError. Esta excepción es capturada por el bloque except ZeroDivisionError, que
imprime un mensaje de error. Luego, el bloque finally se ejecuta para realizar tareas de
limpieza, como cerrar archivos o liberar recursos.
El manejo de excepciones te permite escribir código más robusto y manejar errores de manera
más elegante y controlada. Es una práctica recomendada en Python y en la programación en
general.
4. ej: un cliente x accede a registrarse en la clase usuario (con sus atributos:
nombre, edad, direccion , ciudad, rut y la metodo: estudiar) para que se instancie
el objeto usuario, derivando a la clase orden de compra (tarjeta de credito)
instanciando el objeto orden de compra que una vez procesada y validada
accede a la clase premiun definiendo el objeto premiun asociado al cliente x.
Entendido, aquí tienes una implementación básica en Python utilizando clases y el manejo de
excepciones:
1 class Usuario:
2 def __init__(self, nombre, edad, direccion, ciudad, rut):
3 self.nombre = nombre
4 self.edad = edad
5 self.direccion = direccion
6 self.ciudad = ciudad
7 self.rut = rut
8
9 def estudiar(self):
10 print(f"{self.nombre} está estudiando.")
11
12
13 class OrdenDeCompra:
14 def __init__(self, usuario, tarjeta_credito):
15 self.usuario = usuario
16 self.tarjeta_credito = tarjeta_credito
17
18 def procesar_orden(self):

Página 3 de 6
19 # Simulación de procesamiento de la orden
20 if self.tarjeta_credito.validar():
21 print("Orden procesada y validada.")
22 else:
23 raise ValueError("Tarjeta de crédito no válida.")
24
25
26 class TarjetaCredito:
27 def __init__(self, numero, fecha_vencimiento, cvv):
28 self.numero = numero
29 self.fecha_vencimiento = fecha_vencimiento
30 self.cvv = cvv
31
32 def validar(self):
33 # Simulación de validación de tarjeta de crédito
34 return True # Suponiendo que la validación siempre es exitosa
35
36
37 class Premium:
38 def __init__(self, usuario):
39 self.usuario = usuario
40 self.beneficios = ["Descuentos especiales", "Atención personalizada"]
41
42
43 # Ejemplo de uso
44 try:
45 # Crear usuario
46 cliente_x = Usuario("Cliente X", 30, "Calle Principal 123", "Ciudad A", "12345678-9")
47
48 # Crear tarjeta de crédito
49 tarjeta_cliente_x = TarjetaCredito("1234 5678 9012 3456", "12/25", "123")
50
51 # Crear orden de compra
52 orden_cliente_x = OrdenDeCompra(cliente_x, tarjeta_cliente_x)
53 orden_cliente_x.procesar_orden()
54
55 # Si la orden se procesa correctamente, se convierte en cliente Premium
56 cliente_x_premium = Premium(cliente_x)
57 print(f"{cliente_x.nombre} ahora es cliente Premium con los siguientes beneficios:")
58 for beneficio in cliente_x_premium.beneficios:
59 print("-", beneficio)
60
61 except ValueError as error:
62 print("Error:", error)

Este código simula el proceso de registro de un cliente, creación de una orden de compra con
una tarjeta de crédito asociada, procesamiento de la orden y, si es exitoso, el cliente se
convierte en cliente Premium con beneficios adicionales.
5. Insertar por teclado los datos del cliente_x y la Tarjeta_cliente_x luego del
proceso derivar a un archivo excell Cliente_x, Tarjeta Cliente x, orden de
compra cliente x, curso que adquirio, caracteristica premiun o no—
Para lograr eso, puedes utilizar la biblioteca openpyxl para manipular archivos de Excel en
Python. Aquí tienes una versión actualizada del código que permite al usuario ingresar los
datos del cliente y de la tarjeta de crédito desde el teclado, y luego guarda la información en
un archivo Excel:
1 import openpyxl
2
3 class Usuario:

Página 4 de 6
4 def __init__(self, nombre, edad, direccion, ciudad, rut):
5 self.nombre = nombre
6 self.edad = edad
7 self.direccion = direccion
8 self.ciudad = ciudad
9 self.rut = rut
10
11 def estudiar(self):
12 print(f"{self.nombre} está estudiando.")
13
14
15 class OrdenDeCompra:
16 def __init__(self, usuario, tarjeta_credito, curso):
17 self.usuario = usuario
18 self.tarjeta_credito = tarjeta_credito
19 self.curso = curso
20
21 def procesar_orden(self):
22 # Simulación de procesamiento de la orden
23 if self.tarjeta_credito.validar():
24 print("Orden procesada y validada.")
25 else:
26 raise ValueError("Tarjeta de crédito no válida.")
27
28
29 class TarjetaCredito:
30 def __init__(self, numero, fecha_vencimiento, cvv):
31 self.numero = numero
32 self.fecha_vencimiento = fecha_vencimiento
33 self.cvv = cvv
34
35 def validar(self):
36 # Simulación de validación de tarjeta de crédito
37 return True # Suponiendo que la validación siempre es exitosa
38
39
40 class Premium:
41 def __init__(self, usuario):
42 self.usuario = usuario
43 self.beneficios = ["Descuentos especiales", "Atención personalizada"]
44
45
46 def obtener_datos_usuario():
47 nombre = input("Ingrese el nombre del cliente: ")
48 edad = input("Ingrese la edad del cliente: ")
49 direccion = input("Ingrese la dirección del cliente: ")
50 ciudad = input("Ingrese la ciudad del cliente: ")
51 rut = input("Ingrese el RUT del cliente: ")
52 return Usuario(nombre, edad, direccion, ciudad, rut)
53
54
55 def obtener_datos_tarjeta():
56 numero = input("Ingrese el número de tarjeta de crédito: ")
57 fecha_vencimiento = input("Ingrese la fecha de vencimiento de la tarjeta (MM/YY): ")
58 cvv = input("Ingrese el CVV de la tarjeta de crédito: ")
59 return TarjetaCredito(numero, fecha_vencimiento, cvv)
60
61
62 def guardar_datos_en_excel(cliente, tarjeta, curso, premium):
63 wb = openpyxl.Workbook()
64 ws = wb.active

Página 5 de 6
ws.append(["Nombre", "Edad", "Dirección", "Ciudad", "RUT", "Número de tarjeta", "Fecha de vencimiento", "CVV",
65
"Curso", "Premium"])
ws.append([cliente.nombre, cliente.edad, cliente.direccion, cliente.ciudad, cliente.rut, tarjeta.numero,
66
tarjeta.fecha_vencimiento, tarjeta.cvv, curso, premium])
67 wb.save("datos_clientes.xlsx")
68
69
70 try:
71 # Obtener datos del usuario y la tarjeta de crédito
72 cliente_x = obtener_datos_usuario()
73 tarjeta_cliente_x = obtener_datos_tarjeta()
74
75 # Crear orden de compra
76 curso_adquirido = input("Ingrese el curso adquirido por el cliente: ")
77 orden_cliente_x = OrdenDeCompra(cliente_x, tarjeta_cliente_x, curso_adquirido)
78 orden_cliente_x.procesar_orden()
79
80 # Determinar si el cliente es Premium
81 es_premium = input("¿El cliente es Premium? (Sí/No): ").lower() == "sí"
82
83 # Guardar los datos en un archivo Excel
84 guardar_datos_en_excel(cliente_x, tarjeta_cliente_x, curso_adquirido, "Sí" if es_premium else "No")
85
86 print("Datos guardados exitosamente en el archivo datos_clientes.xlsx.")
87
88 except ValueError as error:
89 print("Error:", error)

Este código solicitará al usuario que ingrese los datos del cliente y de la tarjeta de crédito
desde el teclado. Luego, creará un objeto de orden de compra con los datos ingresados y
guardará toda la información en un archivo Excel llamado "datos_clientes.xlsx".

Página 6 de 6

También podría gustarte