Curso Python - Tema 2 - Estructuras Condicionales - Byte Mind

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 9

 

Curso Python – tema 2 – Estructuras condicionales

Curso Python – tema 2 – Estructuras condicionales


Aprende a trabajar con estructuras condicionales en Python
 25 marzo, 2017    bytemind    Curso Python 3.5, Python

Hasta ahora, en el curso de Python, hemos visto cómo resolver los problemas más sencillos pero no
podemos resolver todo utilizando estructuras secuenciales. Cuando tenemos que tomar una decisión
aparecen las estructuras condicionales. Por ejemplo, en nuestra vida diaria hay momentos donde
tenemos que decidir entre un pantalón u otro, un camino u otro. En estos casos es común resolver un
problema combinando estructuras secuenciales y condicionales.
 

Índice

Estructura condicional simple


Estructura condicional compuesta
Estructuras condicionales anidadas
Uso de operadores lógicos
Operadores
Operadores relacionales
Operadores matemáticos
Operadores lógicos
Problemas propuestos

Estructura condicional simple


Podemos ver un ejemplo de una simple estructura condicional con el siguiente esquema
Podemos observar en el esquema que el rombo representa la condición y tenemos dos opciones que
podemos tomar. Si la condición devuelve un resultado verdadero, ejecutará las opciones que se
encuentren en su interior, si por el contrario es falso no realizará dicha acción.
Explicado esto, vamos a realizar el primer ejercicio, se plantea el siguiente problema.
Ingresar un valor por teclado, si es mayor que 5 mostrar un mensaje confirmándolo.
 
1 num=int(input("Ingrese el valor del numero:"))
2 if num>5:
3     print("El numero es mayor de 5")

 
Podemos observar que siempre se hace la carga del número pero, en caso de ser inferior a 5, no
mostraría ningún mensaje. La palabra clave if implica el inicio de una condición, seguidamente
incluimos la condición y finalizamos la línea con el carácter dos puntos.
Una de las características de python que además ayuda a tener una estructura organizada es
la indentación o sangrado de texto con cuatro espacios. Es decir, si queremos incluir una condición, el
texto que deba ir en su interior debe ir con cuatro espacios con respecto al inicio de la palabra if.
Podemos ver un listado de los posibles operadores, al final de este capítulo, justo antes de los
ejercicios.
 

Estructura condicional compuesta


Podemos ver un ejemplo en el siguiente esquema
Cuando se presenta una elección, tenemos la opción de realizar una actividad u otra, es decir, tenemos
operaciones diferentes a ejecutar si la condición es verdadera o es falsa. Lo más importante se tener
claro que, una operación incluida en uno de los dos resultados de la condición, jamás se podrá ver
desde el resultado opuesto al que esperamos. Por ejemplo, volviendo al ejercicio anterior, nunca habrá
un momento en el cual nos aparezca el mensaje de que el número es mayor que 5 si el número no lo es
(a no ser que cambiemos la condición).
Vamos a volver a realizar el ejercicio anterior pero, con la diferencia, de que si el número es menor de 5
nos informará también de este resultado. El problema en python sería de la siguiente forma:
1 num=int(input("Ingrese el valor del numero:"))
2 if num>5:
3     print("El numero es mayor de 5")
4 else:
5     print("El numero es menor de 5")

 
 
Como podemos ver, si la condición es falsa, y queremos que realice una operación la forma sería
incluyendo la palabra else en una línea nueva seguida del carácter dos puntos. Después las
operaciones necesarias que queramos ejecutar separadas con 4 espacios con respecto a la línea de la
palabra else.
 

Estructuras condicionales anidadas


Podemos ver un ejemplo en el siguiente esquema
Podemos tener infinidad de condiciones anidadas al igual que podemos ver en el ejemplo de la imagen.
La principal condición que podemos ver es una estructura compuesta y la segunda condición es en este
caso, una estructura simple. Es común que se representen este tipo de condiciones anidadas aunque
esto es un simple ejemplo en comparación con lo que se puede ver normalmente en cualquier código.
Planteamos un ejemplo con el siguiente problema.
Confeccionar un programa que pida por teclado 3 notas de 3 alumnos diferentes, calcular el promedio e
imprimir por pantalla alguno de los siguientes mensajes.
Si el promedio es mayor o igual a 7, mostrar “Promocionado”
Si el promedio es mayor o igual a 4 y menor que 7, mostrar “Regular”
Si el promedio es menor que 4, mostrar “Suspendido”
Ahora mostramos el problema ya codificado como ejemplo.
1 nota1=int(input("Ingrese la primera nota:"))
2 nota2=int(input("Ingrese la segunda nota:"))
3 nota3=int(input("Ingrese la tercera nota:"))
4 promedio=(nota1+nota2+nota3)/3
5 if promedio>=7:
6     print("Promocionado")
7 else:
8     if promedio>=4:
9         print("Regular")
10     else:
11         print("Suspendido")

 
Como podemos ver, lo primero es obtener el valor de las tres notas. Una vez obtenidas calculamos el
promedio, como podemos observar, podemos realizar operaciones separadas, separando cada
operación entre paréntesis () y calculando posteriormente el valor en base a este primer resultado.
Tratando la condición, podemos observar cómo además la indentación es mayor conforme anidamos
más condiciones.
 

Uso de operadores lógicos


Aparte de los operadores relacionales y matemáticos que podemos ver después de este pequeño
apartado, podemos encontrar los operadores lógicos, los cuales nos permiten agrupar varias
condiciones simples en una misma condicional.
Podemos ver un ejemplo en el siguiente problema.
Realizar un programa que permita la carga por teclado de un número entero e imprimir un mensaje si el
número es mayor que 5 y menor que 10.
 
1 num=int(input("Ingresar el valor:"))
2 if num>5 and num<10:
3     print(“El número es superior a 5 e inferior a 10”)

 
Como podemos ver en el ejemplo, realizamos dos comprobaciones en la misma condicional. En este
caso, se utiliza el operador lógico ‘and’ que permite obtener un resultado si las dos condiciones son
verdaderas, también podríamos utilizar el operador ‘or’, si queremos que realice nuestras operaciones si
se cumple alguna de las condiciones, por ejemplo con el siguiente problema.
Se pide realizar un programa que permita cargar 2 números enteros y muestre un mensaje si uno de los
dos tiene un valor superior a 5.
 
1 num1=int(input("Ingresar el primer valor:"))
2 num2=int(input("Ingresar el primer valor:"))
3 if num1>5 or num2>5:
4     print(“Uno de los valores es superior a 5”)

 
Con este ejemplo, vemos como utilizando el operador or, podemos realizar la operación si se realiza
una de las dos condiciones, es decir, que uno de los dos números sea superior a 5.
 

Operadores
En una condición deben disponerse únicamente variables, valores constantes, operadores relacionales
y operadores lógicos. Entre los diferentes operadores podemos ver los siguientes:
Operadores relacionales
== Igualdad
!= Desigualdad
< Menor
> Mayor
<= Menor o igual
>= Mayor o igual
Operadores matemáticos
+ Suma
– Resta
* Multiplicación
/ División de flotantes
// División de enteros
% Resto de una división
** Exponenciación
Operadores lógicos
and Y
or O
Los operadores and y or, nos permiten crear una mejor estructura condicional, permitiéndonos de esta
manera, incluir varias comprobaciones en una misma condicional.
Los problemas que pueden presentarse son infinitos y la correcta elección del operador dependerá de lo
que queramos obtener.
Se plantean los siguientes problemas para las estructuras condicionales simples y compuestas.
 

Problemas propuestos
Ejercicio1
Realizar un programa que solicite la carga por teclado de dos valores enteros. Si el primero es mayor al
segundo, informar de la suma y la resta de ambos valores, si por el contrario es inferior, calcular el
producto y la división de estos números.

Ocultar

1 num1=int(input("Ingresar el primer valor:"))


2 num2=int(input("Ingresar el segundo valor:"))
3 if num1>num2:
4     suma=num1+num2
5     resta=num1-num2
6     print("La suma de los valores es: ")
7     print(suma)
8     print("La diferencia de los valores es:")
9     print(resta)
10 else:
11     producto=num1*num2
12     division=num1/num2
13     print("El producto de los valores es:")
14     print(producto)
15     print("La division de los valores es:")
16     print(division)

 
Ejercicio 2
Se ingresa la nota de un alumno, si la nota es igual o superior a 5 informar de que ha aprobado, si es
inferior informar de que ha suspendido.

Ocultar

1 nota=int(input("Ingrese la nota: "))


2 if nota>=5:
3     print("El alumno ha aprobado")
4 else:
5     print("El alumno ha suspendido")

 
Ejercicio 3
Se ingresa por teclado un número entero positivo de uno o dos dígitos, mostrar un mensaje con el
número de dígitos de los que está compuesto.

Ocultar
1 num=int(input("Ingrese un valor entero de 1 o 2 digitos:"))
2 if num<10:
3     print("El numero tiene un dígito")
4 else:
5     print("El numero tiene dos dígitos")

 
 
Ejercicio 4
Realizar un programa que pida cargar tres números enteros. Mostrar por pantalla el mayor de ellos.

Ocultar

1 num1=int(input("Ingrese el primer valor:"))


2 num2=int(input("Ingrese el segundo valor:"))
3 num3=int(input("Ingrese el tercer valor:"))
4 if num1>num2:
5     if num1>num3:
6         print(num1)
7     else:
8         print(num3)
9 else:
10     if num2>num3:
11         print(num2)
12     else:
13         print(num3)

 
Ejercicio 5
Realizar un programa que pida cargar un número entero por teclado. Mostrar un mensaje si el número
es positivo, negativo o nulo (es decir, 0)

Ocultar

1 num=int(input("Ingrese el valor entero:"))


2 if num==0:
3     print("El valor es 0")
4 else:
5     if num>0:
6         print("Es un valor positivo")
7     else:
8         print("Es un valor negativo")

 
Ejercicio 6
Realizar un programa que permita cargar un número entero de 1, 2 o 3 dígitos. Mostrar un mensaje con
el número de dígitos de que está compuesto o un mensaje de error si tiene más de 3 dígitos.

Ocultar
1 num=int(input("Ingresa un valor entero:"))
2 if num<10:
3     print("Es un numero de 1 digito")
4 else:
5     if num<100:
6         print("Es un numero de 2 digitos")
7     else:
8         if num<1000:
9             print("Es un numero de 3 digitos")
10         else:
11             print("El numero tiene mas de 3 digitos")

 
Ejercicio 7
Un alumno realiza un examen. Se requiere la creación de un programa que solicite cargar el total de
preguntas del examen y el total de respuestas correctas que ha ingresado el alumno.  Calcular el
promedio y mostrar un mensaje en función de las respuestas correctas.
Sobresaliente -> promedio mayor o igual al 90%
Notable -> promedio mayor o igual al 70% y menor del 90%
Aprobado -> promedio mayor o igual al 50% y menor del 70%
Suspendido -> promedio menor del 50%

Ocultar

1 preguntas=int(input("Ingrese el total de preguntas:"))


2 correctas=int(input("Ingrese el total de preguntas correctas:"))
3 porcentaje=correctas * 100 / preguntas
4 if porcentaje>=90:
5     print("Sobresaliente")
6 else:
7     if porcentaje>=70:
8         print("Notable")
9     else:
10         if porcentaje>=50:
11             print("Aprobado")
12         else:
13             print("Suspendido")

 
Ejercicio 8
Realizar un programa que solicite la carga de tres valores enteros. Estos valores serán día, mes y año.
Comprobar si corresponde al día 1 de los meses enero o febrero.

Ocultar

1 dia=int(input("Ingrese el dia: "))


2 mes=int(input("Ingrese el mes: "))
3 year=int(input("Ingrese el año: "))
4 if dia==1 and mes==1:
5     print("Es el 1 de Enero de ",year)
6 elif dia==1 and mes==2:
7     print("Es el 1 de Febrero de ",year)
8 else:
9     print("Es ",dia," - ",mes," - ",year)

 
Ejercicio 9
Realizar un programa que solicite la carga de tres valores enteros. Si los tres números son iguales
realizar la suma de los dos primeros y el producto de estos con el tercero. Si son diferentes mostrar un
mensaje informando de ello.

Ocultar

1 num1=int(input("Ingrese el primer valor: "))


2 num2=int(input("Ingrese el segundo valor: "))
3 num3=int(input("Ingrese el tercer valor: "))
4 if num1==num2 and num1==num3:
5     total=num1+num2
6     total=total*num3
7     print("El resultado es: ",total)
8 else:
9     print("Los numeros no son iguales")

 
Ejercicio 10
Realizar un programa que solicite 3 valores enteros. Imprimir un mensaje mostrando si todos son
menores de 10.

Ocultar

1 num1=int(input("Ingrese un valor: "))


2 num2=int(input("Ingrese un valor: "))
3 num3=int(input("Ingrese un valor: "))
4 if num1<10 and num2<10 and num3<10:
5     print("Los numeros son menores de 10")
6 else:
7     print("Alguno o todos los numeros son iguales o mayores a 10")

 
Además tenéis la lista completa de ejercicios en nuestro repositorio en github.
Con esto acabamos el segundo capítulo de nuestro curso de python 3.5. Si tienen cualquier duda
relacionada con el contenido explicada en este capítulo, pueden exponerla en sus comentarios y le
ayudaremos a resolverla lo antes posible. Nos vemos en el siguiente capítulo con las estructuras
repetitivas.

También podría gustarte