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

encadeamento condicional " if else"

Não entendi direito esse encadeamento do dois "else" em sequência.

Estou acostumado com o formato que usa else só no final:

if elif (else if) ... elif (else if) else

A questão indica o formato

if else else

como correto. Por que esse encadeamento está correto?

Testei os códigos das alternativas b) e c) e deu erro nas duas por questão de identação. Tem que colocar em uma única linha?

3 respostas
solução!

Oi Jonathan! Tudo bom contigo?

Nas opções, dentro do lambda é utilizado o que chamamos de expessão condicional. Uma expressão condicional é um conjunto de condicionais if e else em uma mesma linha, com ele um código com estrutura if e else de várias linhas é definido por uma estrutura de linha única:

## A estrutura:
if (condicao):
    acao_caso_condicao_verdadeira
else:
    acao_caso_condicao_falsa
## É o mesmo que
acao_caso_condicao_verdadeira if condicao else acao_caso_condicao_falsa

Na questão devemos encontrar qual opção gera um erro na execução, e como a expressão condicional explicada acima não leva o condicional elif, ela gera um erro e a letra C será a resposta correta a ser marcada. A letra B permite uma execução correta dos dados pois segue corretamente a expressão condicional, como você pode verificar pelo código abaixo:

import pandas as pd
alunos = pd.DataFrame({'Nome': ['Ary', 'Cátia', 'Denis', 'Beto', 'Bruna', 'Dara', 'Carlos', 'Alice'], 
                        'Sexo': ['M', 'F', 'M', 'M', 'F', 'F', 'M', 'F'], 
                        'Idade': [15, 27, 56, 32, 42, 21, 19, 35], 
                        'Notas': [7.5, 2.5, 5.0, 10, 8.2, 7, 6, 5.6]}, 
                        columns = ['Nome', 'Idade', 'Sexo', 'Notas'])
alunos['Faixa Etária'] = alunos['Idade'].apply(lambda x: 'Menor que 20 anos' if x<20 else ('Entre 20 e 40 anos' if (x>=20 and x<=40) else 'Maior que 40 anos'))

Quanto ao erro na execução da alternativa B, gostaria de, se possível ter acesso ao seu código para que eu possa verificar o que realmente aconteceu.

Fico no aguardo do seu retorno!

Bons estudos!

Olá, Mirla. Obrigado.

Não teve erro na minha execução de B, apenas achei estranho a estrutura.

Mas já entendi o funcionamento.

Oi Jonathan!

Fico muito feliz que tenha dado certo!! Continue sempre praticando, qualquer dúvida estou à disposição.

Bons estudos ^^