⊗pyPmLpFl 162 of 208 menu

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.

azbydeenesfrkakkptruuz