Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Porque quando coloco apenas o if no lugar do elif, continua funcionando porém no final o print do "else" aparece em qualquer um dos comandos no final?

usuario = input("Informe o usuário do sistema!")

if(usuario == "Flávio"):
    print("Seja bem-vindo Flávio!")
if(usuario == "Douglas"):
    print("Seja bem-vindo Douglas!")
if(usuario == "Nico"):
    print("Seja bem-vindo Nico")
else:
    print("Usuário não identificado!")
1 resposta
solução!

Olá Fabricio, tudo bem?

Então, o else if pode ser traduzido literalmente como um "senão se", ou seja, ele exige que você tenha uma condição anterior, leia-se:

Se (usuario == "Flávio") Faça alguma coisa; Se não, Se (usuario == Nico) faça tal coisa.

Ou seja, se a primeira condição foi Verdadeira, ele não irá testar a segunda, do mesmo modo que, se a primeira for false, a segunda poderá ser testada. o else if é uma forma de "conectar" um if ao outro, economizando alguns passos caso uma opção exclua a outra (se o nome é X, não pode ser Y).

No teu código, foram utilizados diversos ifs, o que acontece é o seguinte:

Independentemente de a primeira condição ser verdadeira, as demais serão testadas, logo, não importa se a anterior é verdadeira ou falsa, a sua lógica será sempre testada. o else serve como um modo "default" caso nenhuma das hipóteses sejam válidas, mas ele só pode ser vinculado a 01 if... digo, Conforme citei anteriormente, o else if serve como uma "ligação" entre os testes... então o else pode englobar todos os ifs e else ifs...

mas com o código que apresentou no post, o seu else só estará vinculado ao último if, em que o teste do nome nico é realizado. Portanto, sempre que qualquer outro nome diferente de Nico for testado, o else entrará em ação.

Espero ter ajudado, se não ficou muito clara a explicação, pode chamar ^^.

new Saudacoes();

; )