¿Qué son las ramificaciones en programación y por qué son importantes?
Las ramificaciones son un componente esencial en programación, ya que permiten que los programas tomen decisiones basadas en ciertas condiciones. Hasta ahora, los programas que hemos escrito han sido simplemente una secuencia de instrucciones, pero para generar programas más interesantes y complejos, es crucial que nuestras instrucciones sean capaces de decidir entre diferentes caminos según la situación.
Con las ramificaciones, los programas pueden realizar pruebas (también conocidas como "tests") para determinar si deben ejecutar una parte del código o una alternativa. Precisamente en este punto es donde los operadores de comparación y lógicos tienen su importancia, ya que nos ayudan a realizar estas pruebas de manera efectiva.
¿Cómo funcionan los operadores de comparación?
Los operadores de comparación nos permiten evaluar las relaciones entre dos valores o variables. Aquí algunos ejemplos clave:
Igualdad (==): Compara si dos valores son iguales. Ejemplo: 2 == 2 evalúa como verdadero.
Desigualdad (!=): Compara si dos valores no son iguales. Ejemplo: 2 != 3 evalúa como verdadero.
Mayor que (>) y menor que (<): Determinan si un valor es mayor o menor que otro.
Mayor o igual que (>=) y menor o igual que (<=): Evalúan la relación de un valor siendo mayor o igual, o menor o igual a otro valor.
¿Qué son los operadores lógicos?
Los operadores lógicos nos permiten combinar condiciones y realizar evaluaciones más complejas:
Y (and): Ambas condiciones deben ser verdaderas para que el resultado sea verdadero. Ejemplo: verdadero and verdadero resulta en verdadero.
O (or): Al menos una de las condiciones debe ser verdadera para que el resultado sea verdadero. Ejemplo: verdadero or falso resulta en verdadero.
No (not): Niega la condición. Ejemplo: not verdadero resulta en falso.
Es valioso saber cómo usar estos operadores sin memorizar tablas de verdad, ya que en programación las condiciones pueden volverse cada vez más complejas.
¿Cómo crear ramificaciones en Python?
Con el conocimiento de operadores de comparación y lógicos, es posible ahora llevar a cabo programas ramificados. Existen tres estructuras para hacerlo: if, else, y elif.
¿Cómo se usa la estructura if?
La estructura if evalúa una condición y ejecuta un bloque de código si esta es verdadera. Por ejemplo:
if3>2:print("Tres es mayor que dos")
¿Cómo se implementa if-else?
if-else permite realizar una acción alternativa si la condición inicial es falsa:
if5<=10:print("Cinco es menor o igual a diez")else:print("Cinco no es mayor o igual a diez")
¿Qué es if-elif-else?
Permite evaluar múltiples condiciones sucesivas:
if4>5:print("Cuatro es mayor que cinco")elif4<5:print("Cuatro es menor que cinco")else:print("Los dos números son iguales")
Python utiliza la indentación para diferenciar bloques de código, así que es importante seguir convenciones como usar cuatro espacios para una correcta interpretación.
¿Cómo programar un ejemplo básico de comparación?
Vamos a realizar un ejemplo en Python que pida al usuario dos números enteros y los compare:
num1 =int(input("Escoge un entero: "))num2 =int(input("Escoge otro entero: "))if num1 > num2:print("El primer número es mayor que el segundo.")elif num1 < num2:print("El segundo número es mayor que el primero.")else:print("Los dos números son iguales.")
Retos adicionales
Te proponemos un reto: escribe un programa que compare las edades de dos usuarios e indique quién es mayor. También, haz que el programa pregunte los nombres y los use en el resultado para personalizar la salida.
Para cada usuario, imprime quién es mayor o si tienen la misma edad. ¡Comparte tu solución en los comentarios y cualquier duda que tengas sobre las ramificaciones!
¡Ánimo en tu aprendizaje y sigue explorando las capacidades de la programación para crear aplicaciones más inteligentes y dinámicas!
Hola, tuve dos dudas al momento de usar la terminar, así que voy a condensar las soluciones por si de pronto a alguien le llega a pasar la mismo.
Nueva Terminal: Si al momento de efectuar la nueva terminal no aparece tu directorio sigue la siguiente imagen.
Si al momento de correr no sabes que actualización de python colocar para correr el programa en la terminal, solo escribe python seguido del nombre del documento (.py)
class Person:
def __init__(self):
self.name=None
self.age=None
print('Hola, hoy nos gustaría comparar la edad de 2 usuarios')
user_1=Person()
while user_1.name == None:
user_1.name = input('Cómo te llamas? ')
while user_1.age == None:
age = input('Cuántos años tienes? ')
if(age.isdigit()):
user_1.age = int(age)
user_2=Person()
while user_2.name == None:
user_2.name = input('Dinos el nombre de otra persona? ')
while user_2.age == None:
age_2 = input('Cuántos años tiene esa persona? ')
if(age_2.isdigit()):
user_2.age = int(age_2)
if user_1.age>user_2.age:
print(f'{user_1.name} ({user_1.age} años), eres mayor que {user_2.name} ({user_2.age} años)')
elif user_2.age>user_1.age:
print(f'{user_2.name} ({user_2.age} años) es mayor que tú')
else:
print(f'{user_1.name} eres de la misma edad que {user_2.name}')
Bastante interesante compañero, aunque creo que algo avanzado pero aun así buen aporte ya que ahora se que se puede solucionar de otra forma el mismo problema.
Hola. En el primer while para el nombre, si no ingreso nada el programa igual continua, ¿está bien así?
En el segundo while para la edad, el programa sí me pide ingresar la edad cuando no ingreso nada antes.
<print('Este Programa compara la edad de dos personas')nombre_1 =input('Hola, cual es tu nombre? : ')edad_1 =int(input(f'{nombre_1} cual es tu edad? :'))print(f'Gracias {nombre_1}, el siguiente por favor')nombre_2 =input('Hola, cuales tu nombre? : ')edad_2 =int(input(f'{nombre_2} cual es tu edad? :'))comp_edades =abs(edad_1 - edad_2)print(f'Gracias {nombre_2}')print('Ahora les dire los resultados')if edad_1 > edad_2:print(f'{nombre_1} es mayor que {nombre_2}')print(f'Tiene actualmente {edad_1} años y es mayor por {comp_edades} años')elif edad_1 < edad_2:print(f'{nombre_2} es mayor que {nombre_1}')print(f'Tiene actualmente {edad_2} años y es mayor por {comp_edades} años')else:print(f'{nombre_1} y {nombre_2} tienen la misma edad')print(f'Ambos tienen {edad_1} años')print(f'Gracias {nombre_1} y {nombre_2} nos vemos')>
tienes que guardar el archivo en una ubicación de tu computador, una vez hecho eso lo puedes correr con el botón de play que aparece en VSC.
pro tip: en la parte inferior que tienes de color morado, dale click en donde dice plain text y ponle python, asi te reconocera los comandos y podrás diferenciar por colores como lo muestra la clase.
Entender ramificaciones es muy importante algo que me ayudo mucho fue combinarlo con teoría de conjuntos
nombre1 =input('¿Cuál es el nombre de la persona 1?: ')edad1 =int(input('¿Cuál es la edad de la persona 1?: '))nombre2 =input('¿Cuál es el nombre de la persona 2?: ')edad2 =int(input('¿Cuál es la edad de la persona 2?: '))if edad1 > edad2:print(f'{nombre1} es mayor que {nombre2}')elif edad2 > edad1:print(f'{nombre2} es mayor que {nombre1}')else:print(f'{nombre1} y {nombre2} tienen la misma edad')
usuario_1_name =input(f'1º Usuario: ')usuario_1_edad =int(input(f'Estimado {usuario_1_name}, ingrese su edad:'))usuario_2_name =input(f'2º Usuario: ')usuario_2_edad =int(input(f'Estimado {usuario_2_name}, ingrese su edad:'))msj =""dif = usuario_1_edad - usuario_2_edad
if dif >0: msj = f"{usuario_1_name}, eres mayor que {usuario_2_name} por {abs(dif)} años."elif dif <0: msj = f"{usuario_2_name}, eres mayor que {usuario_1_name} por {abs(dif)} años."elif dif ==0: msj = f"{usuario_1_name} y {usuario_2_name}, tienen la misma edad."else: msj="que coño: {dif}"print(msj)
Noté que algunos utilizan algunos términos que realmente no entiendo ni sé cómo utilizarlos, supongo que es porque ya tienen noción sobre otros lenguajes de programación o ya están un tanto más avanzados en este lenguaje.
Aquí dejo mi código simple:
self_1 =input('¿Cuál es tu nombre?: ')edad_1 =int(input('¿Cuál es tu edad?: '))self_2 =input('¿Cuál es tu nombre?: ')edad_2 =int(input('¿Cuál es tu edad? '))if edad_1 > edad_2:print(self_1,'es mayor que ', self_2 )elif edad_1 < edad_2:print(self_1,' es menor que ', self_2)else:print('Ambos tienen la misma edad')
Python permite agregar cualquier número de cláusulas elif después de una cláusula if y antes de else. Python evalúa cada condición, una por una y si se encuentra una condición verdadera, se ejecutará el bloque de sentencias bajo esa expresión.
Hola he hecho el ultimo ejercicio y lo he guardado como dice el profesor, pero a la hora de copiar la direccion en la terminal para poder ejecutarlo no me funciona. Me podrian explicar esa ultima parte a detalle por favor.
Hola, alguien me puede ayudar con respecto a ¿como quitar en entorno virtual de la consola (cmdr) sucede que no lo puedo quitar este virtual enviroment (venv) y no puedo hacer las praccticas.
Puedes usar el comando deactivate, tal como nos comenta Daniel.
Recuerda que un ambiente virtual es algo que aísla nuestro proyecto del resto de los que tenemos. Entonces, para desactivarlo, deactivate funciona para Windows, Linux y MacOs.
<nombre_1 =input('Cual es nombre del usuario 1: ')edad_1 =int(input(f'Ahora escribe la edad de {nombre_1}: '))nombre_2 =input('Cual es el nombre del usuario 2: ')edad_2 =int(input(f'Ahora escribe la edad de {nombre_2}: '))if edad_1 > edad_2: diferencia1 = edad_1 - edad_2
print(f'{nombre_1} es mayor que {nombre_2} por {diferencia1} años')elif edad_1 < edad_2: diferencia2 = edad_2 - edad_1
print(f'{nombre_2} es mayor que {nombre_1} por {diferencia2} años')else:print(f'{nombre_1} y {nombre_2} tienen la misma edad')>
resultado
Cual es nombre del usuario 1: Ruben
Ahora escribe la edad de Ruben: 32
Cual es el nombre del usuario 2: Alejandra
Ahora escribe la edad de Alejandra: 26
Ruben es mayor que Alejandra por 6 años
print("Bienvenido al comparador de edades.")print("Ahora descubriremos juntos quien tiene mas edad entre dos personas.")print("Para esto necesitare que me brindes información antes (Soy una computadora, no una adivina... por ahora...)")nombre_persona_1 =input("Necesito el nombre de la primer persona. ¿Como se llama?: ")edad_persona_1 =int(input("¿Que edad tiene?: "))nombre_persona_2 =input("Necesito el nombre de la segunda persona. ¿Como se llama?: ")edad_persona_2 =int(input("¿Que edad tiene?: "))print("Despejare la incertidumbre...")if edad_persona_1 > edad_persona_2:print(f"Claro como el agua, {nombre_persona_1} es mayor que {nombre_persona_2}.")elif edad_persona_1 < edad_persona_2:print(f"¡Elemental Watson!, {nombre_persona_2} es mayor que {nombre_persona_1}.")else:print(f"¡Basta de contiendas {nombre_persona_1} y {nombre_persona_2}, ambos tienen la misma edad!")print("Gracias por usar este programa. ¡Nos vemos la proxima!")```
Programas ramificados
Para que nuestros programas realicen trabajos interesantes estos deben ser capaces de tomar decisiones, test o pruebas, es desde este concepto donde salen las ramificaciones. Dentro de los test que podemos realizar son los operadores de comparación y estos nos devolveras si la comparación es verdadera (True) o falsa (False).
Igual (==): Lo utilizaremos para comparar 2 objetos.
Distinto (!=): Verificamos que los objetos sean distintos.
Mayor que (>): Igual que en algebra, comparamos si el primer termino es mayor que el segundo.
Menor que (<): Verificamos que el primer termino sea menor que el segundo.
Mayor igual que (>=): Verificamos que el primer termino sea mayor igual al segundo.
Menor igual que (<=): Verificamos que el primer termino sea menor igual al segundo.
Ademas de los operadores de comparación también tenemos los operadores lógicos, estos son 3 (and, or, not).
Una vez que podemos entender bien los operadores de comparación y lógicos podemos generar nuestros programas ramificados. Una forma típica de ocupar los operadores es con el método if.
if condition:# Evaluamos en primera instancia una condición. expresion
elif:# En caso de que no se cumpla la condición anterior evaluamos nuevamente con otra. expresion
else:# En caso de que no se cumpla ninguna condición. expresion
# En el ejemplo anterior pueden es obligatorio el 'if', sin embargo 'elif'# y 'else' son opcionales. Pueden existir cuantos 'elif' queramos, pero solo# puede haber 1 'if' y 1 'else'.if4>5:...elif4<5:print('4 es menor que 5')else:...
Para poner en práctica esto crearemos un archivo programas_ramificados.py y dentro de el escribiremos:
num_1 =int(input('Escoge un entero: '))# Preguntamos por un primer numero.num_2 =int(input('Escoge otro entero: '))# Luego preguntamos por un segundo numero.if num_1 > num_2:# Si el primer numero es mayor que el segundo.print('El primer numero es mayor que el segundo.')# Imprimimos esta expresión.elif num_1 < num_2:# En caso de que el segundo sea mayor.print('El segundo numero es mayor que el primero.')# Imprimiremos esta expresión.else:# En caso de que no cumpla ninguna condición.print('Los 2 numeros son iguales.')
Para ejecutar nuestro programa iremos a la terminal y escribiremos
y en consolo nos preguntara nuestros numeros y nos dara un resultado
Escoge un entero:8Escoge otro entero:4El primer numero es mayor que el segundo.
Escoge un entero:7Escoge otro entero:10El segundo numero es mayor que el primero.
Escoge un entero:4Escoge otro entero:4Los2 numeros son iguales.
😊 Aqui va el reto
# Que se ingrese un nombre y edad para luego compararlos para indicar cual de las dos personas(como minimo) es mayor
classPersona(object): def __init__(self,Nombre,Edad): self.nombre=Nombre self.edad=Edad # Cuando ponemos parametros para las funciones dentro de un objeto siempre debemos usar el self para que estemos referenciando siempre al mismo objeto
def compararEdades(self,persona):if self.edad> persona.edad:print(f'{self.nombre} es mayor que {persona.nombre} por {self.edad - persona.edad} años') elif self.edad< persona.edad:print(f'{self.nombre} es menor que {persona.nombre} por {persona.edad - self.edad} años')else:print(f'{self.nombre} tiene la misma edad que {persona.nombre}!!! 🤯')primeraPersona =Persona(input('Cual es tu nombre ?\n'),int(input('Cual es tu edad ?\n')))segundaPersona =Persona(input('Cual es tu nombre ?\n'),int(input('Cual es tu edad ?\n')))primeraPersona.compararEdades(segundaPersona)```
Un elif es una opción de muchas, en pocas palabras es otro if para esa misma selección. El else será la opción que contempla todas las opciones que no se han indicado en el if y los elif.
Para "rematar" al else no le puedes especificar la confidición.
if x ==1:print(1)elif x ==2:print(2):else:print('Lo que sea')`
Programar es algo que me divierte!
Mi Solucion del reto
print('Bienvenido')name_A =input('Ingresa el nombre del usuario A: ')age_A =int(input('Ingresa la edad del usuario A: '))name_B =input('Ingresa el nombre del usuario B: ')age_B =int(input('Ingresa la edad del usuario B: '))if age_A > age_B:print(f'{name_A} es mayor que {name_B}')elif age_B > age_A:print(f'{name_B} es mayor que {name_A}')else:print(f'{name_A} tiene la misma edad que {name_B}')print('Gracias por participar')