Skip to content

Um Erro Comum Que Todo Iniciante em Python Deve Evitar

    Muitas vezes, tenho visto esse erro entre meus alunos iniciantes de Python, e quero torná-lo mais conhecido para ajudar quem está começando. Se você é um novo aprendiz de Python e evitar esse erro por causa deste artigo, então eu fiz meu trabalho.

    O Erro Muito Comum

    if option == 'A' or 'B':
      print('algo')
    else:
      print('outra coisa')

    Este código está incorreto.

    O que este código está tentando alcançar é o seguinte: se a variável ‘option’ for igual à string ‘A’ ou à string ‘B’, então imprima ‘algo’.

    Infelizmente, é bastante intuitivo escrever esse tipo de código devido à linguagem humana, então muitos iniciantes em Python cometem esse erro.

    Por Que Isso É Um Erro

    A expressão option == ‘A’ or ‘B’ SEMPRE avaliará como verdadeira (True). Isso significa que ‘algo’ será SEMPRE impresso, e ‘outra coisa’ NUNCA será impressa. Mas por quê?

    A expressão option == ‘A’ or ‘B’ é avaliada como se fosse (option == ‘A’) or (‘B’). Isso não verifica se ‘option’ é igual a ‘A’ ou igual a ‘B’.

    Se escrevermos apenas if ‘B’: # faça algo, a expressão ‘B’ avaliará como verdadeira (True). Isso ocorre porque TODAS as strings com comprimento acima de 0 são consideradas verdadeiras (True) e avaliam como True. E uma string vazia avalia como Falsa (False).

    if '':
      print('isso nunca será impresso')
    
    if 'a':
      print('isso sempre será impresso')

    Portanto,

    if option == 'A' or 'B':
      print('algo')
    else:
      print('outra coisa')

    É equivalente a:

    if (option == 'A') or ('B'):
      print('algo')
    else:
      print('outra coisa')

    O que é equivalente a:

    if (option == 'A') or (True):
      print('algo')
    else:
      print('outra coisa')

    Visto que ‘B’ é considerado verdadeiro (True).

    Como o Código Deve Ser

    O código correto deve ser escrito da seguinte forma:

    if option == 'A' or option == 'B':
      print('algo')
    else:
      print('outra coisa')

    Desta forma, a expressão verifica se 1) ‘option’ é igual a ‘A’ ou 2) ‘option’ é igual a ‘B’.

    Conclusão

    Se você não sabia disso, agora você sabe. Evite esse erro comum ao programar em Python e escreva seu código de forma correta para obter resultados precisos.

    Tags:

    Leave a Reply

    Your email address will not be published. Required fields are marked *