Bifurcación
Contents
1.3. Bifurcación#
1.3.1. Contenido#
1.3.2. La estructura if-elif-else
#
Enlaces
Una bifurcación en un programa es un punto en el cual existen varias opciones para continuar con su ejecución. La opción que se escoge depende de que se cumplan ciertas condiciones.
Ejemplo Cuando llegues a la esquina, si el semáforo de peatones está en verde cruza la calle. Si no, espera a que cambie a verde
La estructura de la bifurcación if es:
if (condición):
(acción)
else:
(acción)
Observación: El uso de else
es opcional. Por ejemplo:
semaforo = 'no verde'
if semaforo != 'verde':
print('¡Espera la luz verde!')
¡Espera la luz verde!
numero = float(input('Escriba un número: '))
if numero < 5:
print('El número es menor que 5')
Con acción alternativa si no se verifica la condición
semaforo = 'verde'
if semaforo == 'verde':
print('cruza')
else:
print('espera la luz verde')
cruza
semaforo = 'no verde'
if semaforo == 'verde':
print('cruza')
else:
print('espera la luz verde')
espera la luz verde
numero = float(input('Escriba un número: '))
if numero < 5:
print('El número es menor que 5')
else:
print('El número es mayor o igual que 5')
print('Acabamos')
Observad el sangrado y los colores de las palabras que aparecen en el programa
1.3.2.1. Esquema de una bifurcación simple#
1.3.2.2. Elementos de una bifurcación:#
Un test (expresión cuyos valores son
True
orFalse
)Un bloque de expresiones que se ejecutarán si el valor del test es
True
Un bloque opcional que se ejecutará si el valor del test es
False
. Cuando este bloque no existe y la condición deif
tiene valorFalse
no se ejecuta ninguna expresión.
Ejercicio: Escribe un script que pregunte tu edad e imprima:
Eres mayor de edad
, si tu edad es mayor o igual a 18. Nada en caso contrario.Eres mayor de edad
, si tu edad es mayor o igual a 18. En caso contrario, que imprima cuantos años aún te faltan para ser mayor de edad
1.3.3. Bifurcaciones con varias opciones#
if (condición1):
(acción1)
elif (condición2):
(acción2)
elif (condición3):
(acción3)
else:
(acción_alternativa)
1.3.3.1. Observaciones#
El bloque correspondiente a la primera de las condiciones (tests) que hay en
if
oelif
, se ejecutará y no se explorarán más posibilidades.El bloque de código
else
se ejecuta cuando todos condicionesif
oelif
anteriores no se verifican (el correspondiente test arroja un valorFalse
)La sección
else
sigue siendo opcional. Cuando este bloque no existe y todas las condiciones deif
yelif
que haya tienen valorFalse
no se ejecuta ninguna expresión, no ocurre nada.
1.3.4. Ejemplos#
Ejemplo 1
Escribir un programa que dado un número escriba en la pantalla, según el caso, ‘El número es negativo’, ‘El número es positivo’ o ‘Es el número cero’
número = float(input('Escriba un número: '))
if número < 0:
print('El número es negativo')
elif número > 0:
print('El número es positivo')
else:
print('Es el número cero')
print('Hemos acabado')
Ejemplo 2
Escribir un programa que, dado un color en la variable color
escriba por pantalla:
bonito color
, si el color es azulmi favorito
, si el color es narajano me gusta ese color
, en caso contrario
color = 'verde'
if color == 'azul':
print('bonito color')
elif color == 'naranja':
print('mi favorito')
else:
print('no me gusta ese color')
no me gusta ese color
Podemos introducir el color por teclado:
color = input('¿De que color son tus calcetines? ')
if color == 'azul':
print('bonito color')
elif color == 'naranja':
print('mi favorito')
else:
print('no me gusta ese color')
Ejemplo 3
Bifurcación con tres elecciones: dado un número n
, el programa debe decir si es mayor, igual o menor el 5
n = int(input('Dame un número: '))
if n > 5:
print('Es mayor que cinco')
elif n == 5:
print('Es igaul a 5')
else:
print('Es menor que cinco')
Ejemplo 4
Bifurcación con cuatro o más elecciones: si un número es mayor, igual o menor que el 3 y 5
n = int(input('Dame un número: '))
if n > 5:
print('Es mayor que cinco')
elif n == 5:
print('Es igual a 5')
elif n < 5 and n > 3:
print('Es menor que 5 y mayor que 3')
elif n == 3:
print('Es igual a 3')
else:
print('Es menor que 3')
Ejemplo 5
Programa que escribe en la pantalla si un entero es par o impar
x = int(input('Escribe un entero: '))
if x%2 == 0:
print('')
print(' Par ')
else:
print('')
print(' Impar')
print('')
print('Se ha acabado el condicional')
Ejemplo 6
Determinar el menor de tres números enteros
x = int(input('Escribe un número entero x: '))
y = int(input('Escribe un número entero y: '))
z = int(input('Escribe un número entero z: '))
if x < y and x < z:
print('x es el menor')
elif y < z:
print('y es el menor')
else:
print('z es el menor')
Ejemplo 7
Bifurcaciones anidadas: Determinar si un número es mayor que 5 y en caso de que sea menor, determinar si es positivo o no.
n = int(input('Dame un número: '))
if n > 5:
print('Es mayor que cinco')
else:
if n > 0:
print('Es un número positivo menor que 5')
else:
print('Es un número negativo menor que 5')
Ejemplo 8
Bifurcaciones anidadas: Determinar si un número entero es divisible por 2 y por 3, solo por 2 o por 3, o por ninguno de los dos.
Primera versión
x=int(input("Escribe un número entero "))
if x%2 == 0 and x%3==0:
print("Divisible por 2 y 3")
if x%2 != 0 and x%3==0:
print("no divisible por 2 y si por 3")
if x%2 == 0 and x%3!=0:
print("Divisible por 2 y no por 3")
if x%2 != 0 and x%3!=0:
print("No divisible por 2 ni 3")
Segunda versión
x=int(input("Escribe un número entero "))
if x%2 == 0:
if x%3 == 0:
print("Divisible por 2 y 3")
else:
print("Divisible por 2 pero no por 3")
elif x%3 == 0:
print("Divisible por 3 pero no por 2")
else:
print("No divisible por 2 ni por 3")
Tercera versión
x=int(input("Escribe un número entero "))
if x%2 == 0:
if x%3 == 0:
print("Divisible por 2 y 3")
else:
print("Divisible por 2 pero no por 3")
else:
if x%3 == 0:
print("Divisible por 3 pero no por 2")
else:
print("No divisible por 2 ni por 3")
Ejemplo 9
Un bifurcación especial
if True:
print('hola')
else:
print('adiós')
hola
Ejemplo 10
Pedimos al usuario que escriba dos número enteros y devolvemos un mensaje que indica cual es el mayor
x = int(input('Escribe un número entero: '))
y = int(input('Escribe otro número entero: '))
if x>y:
print("el mayor de los dos números es ",x)
else:
print("el mayor de los dos números es ",y)
Ejemplo 11
Pedimos al usuario la edad y que escriba la palabras SI o NO si tiene un permiso paternal.
si es mayor de edad o tiene permiso parental debe imprimir
Puedes acceder
en caso contrario, imprimirá
Acceso denegado
edad=int(input("Escribe tu edad "))
permiso=input("Escribe la palabra SI encaso de tener permiso y NO en caso de no tenerlo ")
if edad>=18 or permiso=="SI":
print("Puedes acceder")
else:
print("Acceso denegado")
1.3.5. Ejercicios#
En los siguientes ejercicios, escribe un script que realice las acciones que se indican:
Definir la variable
N
pidiendo por teclado su valor. ImprimirTrue
siN
es mayor que 7 yFalse
en caso contrario.Definir la variable
N
pidiendo por teclado su valor. ImprimirTrue
siN
es mayor que 5 y menor que 18 yFalse
en caso contrario.Nos pregunta un número \(0\) ó \(1\) e imprime
A
si hemos introducido \(0\) yB
si hemos introducido \(1\).Pide los valores de dos números
a
yb
e imprimeHola
si \(a>b\) yAdiós
en caso contrario.Pide los valores de dos números e imprime el mayor de ellos. Si los números son iguales, debe imprimir Números iguales.
Pide los valores de cuatro números e imprime el mayor de ellos.
Pide los valores de cuatro números e imprime
Hay números repetidos
oNo hay números repetidos
segun sea el caso.Pide las coordenadas \(x\), \(y\) de un punto del plano e imprime en qué cuadrante se encuentra el punto.
Escribir un programa que permita determinar si un número entero es múltiplo de 3 o no. En caso afirmativo debe imprimir
Es múltiplo de 3
; en caso contrario imprimiráNo es múltiplo de 3
.Pregunta el valor de
x
e imprimeTrue
óFalse
según se cumplan las dos condiciones\(p(x) = x^3 - 2x >0\) y
\( q(x) = x^2 + 3x +1 <0\).
Pide los valores de los coeficientes \(p\) y \(q\) e imprime el número de soluciones reales de la ecuación \(x^2+px+q=0\).
Pide los valores de los coeficientes \(p\) y \(q\) e imprime las soluciones reales de la ecuación \(x^2+px+q=0\). En caso de no tener, debe imprimir
Soluciones complejas
.Dado el polinomio \(P(x) = x^4 -3x^2 -x +1\) decir si se cumplen las dos siguientes condiciones:
\(P(3) < 0\)
\(P(1) > P(0.5)\)