Por que True * 7 = 7 e False * 7 = 0 em Python? Desvendando essa Pegadinha!
Introdução: Uma surpresa no código
Ei, você já se deparou com algo em Python que fez você coçar a cabeça e pensar: “Mas como assim?!” 🤣 Pois é, recentemente me peguei numa dessas ao testar print(True * 7) e print(False * 7). Resultado? 7 e 0, respectivamente. Se isso soa como uma pegadinha do Python, vem comigo que eu te explico direitinho o que tá rolando – e garanto que é mais simples (e divertido) do que parece!
O segredo dos booleanos em Python
Aqui vai a primeira revelação: em Python, `True` e `False` não são apenas valores booleanos para dizer “sim” ou “não”. Eles são, na verdade, *inteiros disfarçados*! Isso mesmo! No fundo, Python trata:
- True como 1
- False como 0
Quer uma prova? Tenta rodar isso no seu terminal:
print(int(True)) # Saída: 1
print(int(False)) # Saída: 0
Viu? Python tá te contando o segredo sem nem piscar!
O que Acontece com True * 7 e False * 7?
Agora que sabemos que True é 1 e False é 0, vamos destrinchar as multiplicações:
- Quando você faz True * 7, o Python vê isso como 1 * 7. Resultado? 7.
- Já com False * 7, ele interpreta como 0 * 7. Resultado? 0.
Simples, né? Mas confesso que, na primeira vez que vi isso, fiquei com cara de “Python, você tá de brincadeira comigo, né?”
Por que Python Faz Isso?
Essa “mágica” acontece porque, em Python, os valores booleanos são uma subclasse da classe int. Isso é herança direta do design da linguagem, inspirado em linguagens como C, onde 1 é verdade e 0 é falso. Então, quando você joga um booleano numa operação aritmética, Python automaticamente o converte para seu valor inteiro correspondente. É como se o Python dissesse: “Relaxa, eu sei o que fazer com isso!”
Testando pra Valer
Quer se divertir um pouco? Tenta essas variações no seu código:
print(True + True) # Saída: 2 (porque 1 + 1 = 2)
print(False + True) # Saída: 1 (porque 0 + 1 = 1)
print(True * False) # Saída: 0 (porque 1 * 0 = 0)
É quase como brincar de matemática com superpoderes booleanos!
Cuidado com as Pegadinhas
Embora isso seja legal, esse comportamento pode te pegar desprevenido em projetos maiores. Imagina somar um monte de valores booleanos sem querer e acabar com um número que não faz sentido no contexto! Minha dica? Sempre cheque se você realmente quer misturar booleanos com operações aritméticas. Se precisar garantir que está lidando só com True ou False, use condicionais ou métodos como isinstance() pra evitar surpresas.
Conclusão: Python, Você é Genial (e um Pouco Troll)
E se você curtiu esse papo descontraído, dá uma força pro blog: compartilha esse post, assina a newsletter pra mais dicas e vem desvendar outras curiosidades da programação comigo!