Minimalista III: Agora você é um booleano

Confira os princípios do código minimalista na introdução do primeiro desafio.

Na aba Código, você encontrará um código ao qual falta um único caractere para passar nos testes. No entanto, seu objetivo é enviar uma função que seja o mais minimalista possível. Use as dicas da seção de dicas abaixo.

Escreva uma função que retorne True se o inteiro não negativo fornecido for um número primo e False caso contrário. Zero e um não são primos.

Dicas

Tudo o que você escrever depois de if, not, while ou ao redor de and, or, is, in é interpretado como um booleano.

Uma função que exibe uma contagem regressiva a partir do valor absoluto de x e também exibe "hey" se o número for múltiplo de 3 e contiver o dígito "3" poderia ser escrita assim:

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

Isso pode ser simplificado para:

def countdown(x):
    x = abs(x)
    while x:
        print(x)
        if not x % 3 and "3" in str(x):
            print("hey")
        x -= 1
  • abs() obtém o valor absoluto de um número.
  • while interpretará x como um booleano, saindo do loop depois de chegar a zero.
  • print(x) precisa ser chamado independentemente de x ser um "número hey" ou não. Isso pode ser feito fora de qualquer instrução if, em vez de fazê-lo em ambas.
  • Ambas as condições x % 3 == 0 e "3" in str(x) precisam ser True, portanto podem ser unidas com um and.

Bônus

Uma abordagem mais típica do 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")

Observações

  • Esta é uma série aberta: não existe uma lista definitiva de recursos para os desafios. Não hesite em deixar suas sugestões na aba de comentários.
  • Legibilidade é, de fato, um conceito subjetivo. Vamos discutir isso! Sinta-se à vontade para deixar sua opinião na aba de comentários.
  • Você pode encontrar todos os exercícios desta série aqui.