Está en la página 1de 34

12

Python II Paradigmas IFTS12

Concatenación de operadores de comparación

Condicionales
Operadores lógicos “and” y “or”

Operadores “in”
Python II Concatenación de operadores de comparación Paradigmas IFTS12

Como evalúa la condición, primero


compara 0<edad como esto es
correcto ejecuta en primer print
Python II Concatenación de operadores de comparación Paradigmas IFTS12

En la segunda como la primera


opción no es válida va por la
segunda edad<100 como se va de
rango ejecuta el segundo print
que es el caso contrario o else
Python II Concatenación de operadores de comparación Paradigmas IFTS12

Ahora haremos un programa que evalúe el salario de una serie de personas que trabajan en una empresa , evaluaremos el salario del gerente de la empresa,
de un director y de un administrativo, esta claro que estos salarios no van a ser iguales , van a disminuir según el cargo, se supone que el mas bajo es el del
administrativo.
Lo que va a hacer el programa es evaluar si se está cumpliendo esa lógica, si esto se cumple emitirá un mensaje que todo funciona correctamente y si no se
cumple que diga que algo falla en esta empresa

sueldo_Gerente=Int(input(“ingrese el sueldo del gerente “)) En este caso no podemos concatenar un datos tipo string con en número porque
print(“Sueldo Gerente: “ +str(sueldo_gerente)) tienen que ser del mismo tipo

Por ello sueldo_gerente es numérica


y la tengo que convertir a caracter
con la función string
Python II Concatenación de operadores de comparación Paradigmas IFTS12

En la primera corrida colocamos


los sueldos de mayor a menor
como controla la aplicación

Y el resultado es:

En la segunda corrida no lo
respetamos

Y el resultado es:
Python II Concatenación de operadores de comparación Paradigmas IFTS12

En este procedimiento vamos a evaluar el Distancia al colegio > 40 Kms.


Para el otorgamiento debe cumplir con las 3
otorgamientos de beca para alumnos para Cantidad de hermanos > 2
condiciones
ello vamos a tener en cuenta varios factores Salario familiar < 480.000
Python II Concatenación de operadores de comparación Paradigmas IFTS12

Ahora vamos a flexibilizarlo un poco con


un or y diciendo que vive a 3 kms, tiene
1 hermano y tiene muy bajos ingresos
esto calificaría para la beca

No cumple las primeras dos, pero si la tercera


Python II Concatenación de operadores de comparación Paradigmas IFTS12

Ahora utilizaremos el operador “in” entonces, definimos que tengo que elegir entre varias asignaturas optativas y el programa me dice si es correcta o no la elección.

Podremos jugar con distintas variantes y en algún momento Python va a dar error, porque es “case
upper() => convierte minúsculas en Mayúscula
sensitive”, lo que quiero decir que distingue entre mayúsculas y minúsculas y si escribo mal e intercambio
lower() => convierte Mayusculas en minúsculas
las letra no me lo va a tomar, para solucionar esto puedo utilizar lo siguiente:
Python II Concatenación de operadores de comparación Paradigmas IFTS12

Hagamos unos cambios para no tener problemas con la escritura de las opciones

Agregamos la variable opción donde


carga el alumnos su elección

a asignatura le asigno el contenido


de opción convertido en mayúsculas

En el in coloco todas la opciones en


mayúscula

Este es el resultado

Ahora estamos en condiciones de inventarnos variante para incorporar el concepto


Python II Paradigmas IFTS12
Bucle for
Repetir una o varias líneas de códico Tipos de Bucles

Esto seria una solución


rápida pero si necesitaría que
Supongamos que Determinados Indeterminados
apareciera 100 veces y no
tenemos el siguiente
solo esa línea de código sino
programa y necesitamos
un bloque, tendría que Se ejecutan un número
que el print se haga 3 Se ejecutan un número
automatizarlo de alguna indeterminado de veces
veces, la solución rápida determinado de veces
manera para escribirlo una
seria repetirlo tantas
sola vez y se repita sin tener
veces lo necesita No se sabe con
que escribirlo 100 veces Se sabe con anterioridad
anterioridad cuantas
cuantas veces se va a
veces se va a ejecutar el
Codigo ejecutar el código del
código del interior del
Codigo interior del bucle
Codigo bucle
Codigo Codigo
Codigo Print “mensaje” El número de veces
dependerá de las
Print “mensaje” Print “mensaje” circunstancias durante la
Codigo Print “mensaje” ejecución del programa
Codigo Codigo
codigo Codigo
codigo
Python II Paradigmas IFTS12
Bucle for
Codigo
Codigo Bucle (determinado) for . sintaxis
Codigo
Declaración del bucle Palabras reservadas
cuerpo del bucle

Codigo
Codigo for variable in elemento a recorrer:
codigo
cuerpo del bucle
cuerpo del bucle
cuerpo del bucle Lista, Tupla, cadena de texto, etc.
identación
Python II Paradigmas IFTS12
Bucle for

Declaración del bucle

palabra Una palabra Que puede ser una lista de tres


+ + + Elemento a recorrer
reservada variable reservada números sencilla

Es porque la lista tiene los numero del 1 al 3 pues no.


Es porque la lista posee 3 elementos
Cuerpo del
bucle

Es lo que nuestro programa va a repetir


un número determinado de veces Pero ahora con con el ejemplo vamos a ver que el 1,2,3
no es la cantidad de veces sino es que son 3 elementos
Yo tengo que saber cuantas veces va a por consiguiente el mensaje se va a repetir 3 veces
repetir esa líneas “Hola”
Python II Paradigmas IFTS12
Bucle for
Índice i La variable va tomando los valores de la lista

En otro ejemplo
vemos que se
repite el mensaje
4 veces

Cuando el bucle se ejecuta representa 1) i=“invierno” y ejecuta el cuerpo


2) i=“otoño” y ejecuta el cuerpo
3) i=“verano” y ejecuta el cuerpo
4) i=“primavera” y ejecuta el cuerpo
Cuando no encuentran mas valores sale
del bucle
Si hacemos otro cambio veremos
que va imprimir el valor que toma
en cada vuelta la variable i

Y si cambiamos el nombre de la
variable actúa de la misma manera
el bucle
Python II Paradigmas IFTS12
Bucle for

Ahora supongamos que el


resultado no me lo muestre uno
debajo del otro, sino en una sola
línea

El espacio entre “ “ hace que deje un espacio en blanco de


Para ello utilizaremos la instrucción end=“ “
separación en cada elemento de la lista

En este caso pondremos un


texto que es la dirección de un
correo electrónico y no lista
como estábamos haciendo la
palabra “HOLA” tantas veces
como letras tenga el texto en
una sola línea
Python II Paradigmas IFTS12
Bucle for

Tambien podemos utilizar este


bucle para evaluar si un mail es
correcto, chequeando si se
encuentra la @ en el texto

Otra cosa a tener en cuenta que cuando ponemos


email=True estamos agignando un valor a una
variable que este caso es verdadero, estamos
diciendo que es un operador de asignación Si queremos simplificar el código
sacamos de la pregunta ==True
python asume que estoy
Pero cuando ponemos == estamos utilizando el
preguntando por verdadero
operador de comparación
Python II Paradigmas IFTS12
Bucle for

Hacemos unos cambios para


pedir que el operador ingrese
una dirección de mail y el
programa los verifica

Queda como ejercicio a resolver como ajustaríamos


este procedimiento para que evalúe correctamente
También podemos hacer esto
una dirección, dado que la planteada podria dar por
utilizando un contador
incorrecta una dirección que tenga dos punto o mas y
eso es factible
Python II Paradigmas IFTS12
Bucle for
Por último otra forma de bucle
es utilizando range que me
genera un vector de nueve
elementos partiendo del cero

Para verlo mostramos la variable


i y el resultado es el siguiente

16
Python II Paradigmas IFTS12
Bucle for
Hora si queremos unir textos con
el valor que va tomando i por
cada vuelta del bucle

Acá utilizaremos una función de Cuando colocamos entre llaves la


tipo f que nos permite jugar con variable, concatenamos el texto con el
formatos de tipo diferente valor que toma i

Si le sacamos la f python no va a
entender la i entre llaves

16
Python II Paradigmas IFTS12
Bucle for

Le diremos que comience en el número 5

Que llegará hasta 59 porque arranca de cero

Que saltara de 4 en 4
Hora si queremos utilizar el
range de otra manera, haremos Llegó hasta el 57 porque el próximo saltos se pasa del
los siguientes cambios limite del rango

16
Python II Paradigmas IFTS12
Bucle for
Cuando pida el mail por teclado ingresaríamos un mail
incorrecto “enrique.beraudo”

¿Qué es lo que está haciendo ¿Qué devuelve len(email)? = 15 que es la logitud del strig
este bucle for?

¿Qué devuelve range? = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14

¿Qué evalúa en cada vuelta de bucle? = que encuentre una @

Cuando la encuentra le asigna un verdadero, no lo va a


encontrar por lo tanto valido sigue siendo falso

Valido no es verdadero por consiguiente el mail no es verdadro

16
Python II
Bucle while Paradigmas IFTS12

Sintaxis

while Condición
Mientras se cumpla la condición
Cuerpo del bucle se ejecuta el cuerpo del bucle
sentencia
sentencia Cunando deje de cumplirse la condición
sentencia que pasa ser falsa y continúa con las
sentencia sentencias fuera del bucle

En cuanto a la finalización es incierta


dado que no sabemos con certeza
cuantas veces se va a ejecutar y es muy
común y más cuando se comienza a
programar, que al colocar una
condición errónea quede con un loop
infinito

17
Python II
Bucle while Paradigmas IFTS12

Declaramos una variable i y le daremos el valor inicial 1

Ahora en el while decimos, hacer mientras i sea menor o igual a 10, o


sea que va a ser la cantidad de veces que se va a ejecutar las sentencias
que están dentro del bucle

En el cuerpo me va a mostrar el mensaje y el valor de la variable i por


cada ciclo e incrementa en 1 la variable

En el momento que i llega a 11 sale del bucle e imprime el mensaje


“Terminó la ejecución”

17
Python II
Bucle while Paradigmas IFTS12

Mientras se ingrese una edad negativa el programa no me deja salir


Contruiremos otro ciclo while solicitando la edad del parcicipante
como se ve en la ejecución

Podemos afinarlo mas en el control y decir que no tome en cuenta las


edades < 10 y >100

17
Python II
Bucle while Paradigmas IFTS12

Realicemos un programa que permita calcular la raíz cuadrada de un número

Para ello pondremos un título y el pedido que al operador para que


ingrese un número
También pondremos un límite para el número de intentos fallidos
para ello utilizaremos una variable para contarlos la que
inicializamos en cero
Donde decimos si el numero de intentos es igual a 2, entrega un
mensaje donde da por finalizado el programa

La instrucción breack me saca de ciclo while y ejecuta la primera


instrucción después del ciclo

Si hay un número erróneo incremente el contador de intentos

En el momento de encontrar un numero > 0 y no llegó al tope de


los intentos, calcula al raíz cuadrada utilizando la función
math.sqrt(), que en realidad es una clase dentro de los que es la
programación orientada a objetos

Ahora la pregunta es si sabemos la cantidad de veces que se va a ejecutar el


blucle, no lo sabemos porque si intoduce un numero mayor que cero al inicio,
ninguno, pero sabemos cuantas veces es el máximo que es 3 porque inicia en
cero
17
Python II
Bucle while Paradigmas IFTS12

Hacemos un intento ingresando un número negativo, que es -7 inmendiatamente salta el error


en el mensaje que no dice que ingresemos un nuevo número

La aplicación ejecutó estas dos primeras líneas y se


queda a la espera de ingreso del número

Como el número ingresado es negativo muestra el


mensaje

Luego pide el ingreso de un nuevo número

incrementa la variable intentos

17
Python II
Bucle while Paradigmas IFTS12

En este momento se ejecuto 3 veces porque ingresamos números negativos

Secuencia hecha 3 veces

Por último como ejecuto 3 veces e intentos es igual a 3 emite


el mensaje y sale del bucle con el break

17
Python II
Bucle while Paradigmas IFTS12

Lo volvemos a ejecutar y en el primer intento ponemos un número negativo


y vuelve a actuar en consecuencia

Pero en la segunda ingresamos un número mayor que cero, pero me tira un


error en vez de sacar la raíz cuadrada y es por que no reconove “math” que
me dice que no esá definida

Simplemente tenemos que importar la clase para poder utilizarla


con todos sus métodos y funciones que lo acompañan

17
Python II
Bucle while Paradigmas IFTS12

Lo volvemos a ejecutar y en el primer intento ponemos un número negativo


y vuelve a actuar en consecuencia

Pero cuando ingresamos un número mayor que cero nos muestra el


resultado de la raíz cuadrada

17
Python II
Bucle while Paradigmas IFTS12

Salta a la siguiente iteración de bucle, lo que hace es interrumpir la ejecución del


continue bucle, es como salta y empieza de nuevo

Devuelve un null en cuanto se lee en el interior de un bucle, es como si no ejecutara


pass el bucle, esta instrucción se utiliza en contadas ocaciones en casos muy concretos, se
suele utilizar mucho en la definición de clases

else Funciona igual a como lo hace en un condicional es un sino o caso contrario

18
Python II
Bucle while Paradigmas IFTS12

Comezaremos utilizando esta instrucción y para ello definiremos un bucle for para
continue recorrer un string

El bucle recorre el texto con la leyenda “python” e


imprime la letra que va encontrando hasta terminar el
mismo

Ahora al mismo código le agregamos una nueva


pregunta, evaluando que sea la letra h, en este caso el
“continue” lo que va a hacer es interrumpir la iteracción
e ignorar la impresión de la letra h, continuando con el
resto de las letras

Hagamos otro ejemplo donde vamos a contar las letras


de un texto, ignorando los espacios en blanco, donde
cada vez que encuentra uno, interrumpe el bucle y
vuelve a evaluar el siguente carácter del texto

18
Python II
Bucle while Paradigmas IFTS12

pass Como dijimos esta instrucción devuelve un null y se utiliza en muy pocas ocaciones

Por ejemplo si realizamos un bucle infinito como el que estamos viendo en while
true, que significa que haga mientras sea verdadero y queda invovilizado con un
pass, de donde saldré con la combinación de tecla Crl+c

Otro es creando una clase o empezamos a crear y la suspendemos para después


seguir programando y se interrumpe con el pass

18
Python II
Bucle while Paradigmas IFTS12

else
Supongamos como ya hemos visto validar una dirección de mail.
Para ello pedimos que la ingrese en una variable email
Una vez ingresada la recorreremos con la sentencia for letra por letra
Preguntando cuando el índice es igual a @
Cuando encuenta el @ le asigna un verdadero a una variable booleana
Saliendo del bucle con el break

Ahora incorporamos el else al ciclo for y esto nos dice que no encotro en todo el
texto que analizamos ninguna @ y le asigna falso a la variable booleana

Ahora incorporamos en else al ciclo for


y esto nos dice que encotro en el texto
que analizamos una @ y le asigna
verdadero a la variable booleana
18
Python II Paradigmas IFTS12

También podría gustarte