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 - 1Isso 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 -= 1abs()obtém o valor absoluto de um número.whileinterpretaráxcomo um booleano, saindo do loop depois de chegar a zero.print(x)precisa ser chamado independentemente dexser um "número hey" ou não. Isso pode ser feito fora de qualquer instruçãoif, em vez de fazê-lo em ambas.- Ambas as condições
x % 3 == 0e"3" in str(x)precisam serTrue, portanto podem ser unidas com umand.
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.