Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

If e Else na aula 08, atividade 02

Quando é utilizado:

    if self._saldo != outro._saldo:
      return self._saldo < outro._saldo

Logo após, caso não seja satisfeita a condição, não é utilizado "else", mas apenas dada a condição que irá ser executada:

    return self._codigo < outro._codigo

Minha dúvida é por quê não há falha no código com a falta do else?

3 respostas
solução!

Bom dia, Tatiana!

Geralmente quando o código percorre por blocos de if/else, ele analisa a condição do if e entra neste bloco caso a condição seja satisfeita. Caso contrário irá entrar no bloco do else. Depois que este bloco como um todo é avaliado, o programa continuará a executar o que vem abaixo dele.

...
if condicao:
    pass  # codigo do if
else:
    pass  # codigo do else

...  # continua a percorrer o programa

Este caso, entretanto, tem uma particularidade. Como dentro do bloco if existe o comando return, se ele entrar neste bloco, o programa não continuará a percorrer o que vem após do if, visto que ele já retornará o valor definido. Portanto, nesse caso específico, se ele entra no bloco do if ele não percorre o resto do programa e, caso contrário, ele irá percorrer. Desta forma, o que vem após o if já é como se fosse o else e, então, não é necessário adicionar o comando else.

if condicao:
    # se o código entra neste bloco, a função irá retornar o valor definido e não haverá mais motivo 
    # para continuar a percorrer o resto do código e então ele finaliza aqui
    return True 

...  # caso o bloco if não tenha sido analisado, a função continua a execução do resto do código
     # a procura de outro valor para retornar    

Espero ter ajudado! Bons estudos e um abraço!

Entendi, queria mesmo confirmar isso, obrigada. Mas teve algo que não entendi, se o else é uma condição após o if, então ele é dispensável caso seja apenas algo simples a ser apresentado (como no exemplo do vídeo)?

Sim, nem todo if necessita de um else. Ele é necessário quando queremos fazer alguma ação se uma condição for verdadeira e alguma outra ação se a condição for falsa. Se não existe esta outra ação, o else não é necessário. Por exemplo, se quisermos fazer print('Olá Mundo!') se a variável mundo for verdadeira e não printar nada caso seja falsa, não precisamos adicionar o bloco else.