Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Faça como eu fiz: verificando permissões

permissoes_principais = set(p.strip() for p in input('Permissoes principais: ').lower().split(','))
permissoes_solicitadas = set(p.strip() for p in input('Permissoes solicitadas: ').lower().split(','))

subconjutos = permissoes_principais.issubset(permissoes_solicitadas)

if subconjunstos == True:
    print('As permissoes solicitadas fazem parte das permissoes principais.')
else:
    print('As permissoes solicitadas nao fazem parte das permissoes principais.')
1 resposta

Oi, Apollo. Tudo bem com você?

A ideia de utilizar set, juntamente com strip() e lower(), é uma boa escolha para esse exercício, pois facilita a comparação das permissões sem que espaços extras ou diferenças entre letras maiúsculas e minúsculas interfiram no resultado. Há apenas alguns pontos no código que precisam de ajuste para que a lógica funcione conforme o enunciado.

Na verificação, o método issubset() foi aplicado no sentido inverso. O objetivo é verificar se as permissões solicitadas estão contidas nas permissões principais, portanto a chamada deve ser feita a partir de permissoes_solicitadas. Além disso, a variável foi criada com o nome subconjutos, mas na estrutura if foi utilizada como subconjunstos, o que gera um erro por causa da diferença na escrita. Também é possível simplificar a condição usando apenas if subconjutos:, sem comparar explicitamente com True.

Parabéns por praticar esse conteúdo e por compartilhar sua resolução. Continue participando do fórum sempre que surgir uma dúvida. Estamos à disposição para ajudar.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!