Trabajo con banderas en Python
Bandera - es una variable especial,
que solo puede tomar dos valores:
True o False. Con la ayuda
de banderas se pueden resolver tareas que verifican
la ausencia de algo: por ejemplo, se puede
verificar que en una lista no hay un elemento con
un valor determinado.
Resolvamos la siguiente tarea: dada una lista
con números, necesitamos verificar si todos los elementos
en ella son positivos. Para esto
establecemos una variable especial flag,
que antes de comenzar el ciclo será verdadera. Y
al encontrar un número negativo en el ciclo,
cambiaremos su valor a False. Para
conocer el resultado de la verificación,
mostraremos la variable flag después del ciclo
en la consola:
lst = [1, 2, 3, 4, 5]
flag = True
for el in lst:
if el < 0:
flag = False
print(flag) # mostrará True, ya que todos los números son positivos
Una buena práctica es asignar a la
variable bandera un nombre que refleje
la condición establecida. Cambiemos el nombre de flag
a isAllPositive. Y para mayor claridad
cambiemos un número de la lista a negativo:
lst = [1, 2, 3, -4, 5]
isAllPositive = True
for el in lst:
if el < 0:
isAllPositive = False
print(isAllPositive) # mostrará False, ya que hay un número negativo
Si en la lista que se está recorriendo hay muchos valores
y es necesario detener el ciclo después de detectar
el primer número negativo, entonces se debe
aplicar la instrucción break:
for el in lst:
if el < 0:
isAllPositive = False
break
Al trabajar con banderas, para conocer el resultado
de la ejecución del ciclo, se puede mostrar no el valor
de la bandera, sino un mensaje arbitrario con la ayuda
de un if adicional.
Reescribamos el ejemplo anterior. Si
todos los elementos son positivos, que
se muestre '+++', si no -
'---':
for el in lst:
if el < 0:
isAllPositive = False
break
if isAllPositive:
print('+++')
else:
print('---') # mostrará '---'
Se da una lista. Verifique que todos sus elementos son números positivos.
Se da un número entero. Verifique si es primo, es decir, divisible solo por uno y por sí mismo.