Minimalista III: Ahora eres un booleano

Consulta los principios del código minimalista en la introducción del primer desafío.

En la pestaña Código encontrarás código al que le falta un solo carácter para superar las pruebas. Sin embargo, tu objetivo es enviar una función lo más minimalista posible. Usa los consejos de la sección de consejos que aparece a continuación.

Escribe una función que devuelva True si el entero no negativo dado es un número primo, y False si no lo es. Cero y uno no son primos.

Consejos

Todo lo que escribas después de if, not, while o alrededor de and, or, is, in se interpreta como un booleano.

Una función que muestra una cuenta regresiva desde el valor absoluto de x y que también muestra "hey" si el número es múltiplo de 3 y contiene el dígito "3" podría escribirse así:

def countdown(x):
    if x < 0:
        x = x * -1
    while x > 0:
        if x % 3 == 0:
            if "3" in str(x):
                print(x)
                print("hey")
        else:
            print(x)
        x = x - 1

Esto se puede simplificar así:

def countdown(x):
    x = abs(x)
    while x:
        print(x)
        if not x % 3 and "3" in str(x):
            print("hey")
        x -= 1
  • abs() obtiene el valor absoluto de un número.
  • while interpretará x como un booleano, saliendo del bucle después de llegar a cero.
  • print(x) debe llamarse independientemente de si x es un «número hey» o no. Esto se puede hacer fuera de cualquier instrucción if, en lugar de hacerlo en ambas.
  • Ambas condiciones x % 3 == 0 y "3" in str(x) deben ser True, por lo que se pueden unir con un and.

Bonus

Un enfoque más propio de Python:

def countdown(x):
    for i in range(abs(x), -1, -1):
        print(x)
        if not x % 3 and "3" in str(x):
            print("hey")

Notas

  • Esta es una serie abierta: no existe una lista definitiva de características para los desafíos. No dudes en dejar tus sugerencias en la pestaña de comentarios.
  • La legibilidad es, en efecto, un concepto subjetivo. ¡Hablemos de ello! Siéntete libre de dejar tu opinión en la pestaña de comentarios.
  • Puedes encontrar todos los ejercicios de esta serie aquí.