Oi!
O seu código, Kauane, está correto em termos de lógica, e por isso ele realmente funciona no exemplo mostrado.
Mas o “problema” que alguns alunos enfrentam nesse tipo de exercício costuma estar relacionado à forma como o input() é digitado e como o .split(", ") separa os itens. Vamos entender o porquê:
O que o código faz:
Ele define uma lista com permissões principais:
permissao_principal = ['leitura', 'escrita', 'execução', 'compartilhamento']
Depois lê uma entrada:
permissao_solicitada = input("Digite a permissão solicitada: ").split(", ")
e verifica se todas as permissões digitadas fazem parte das principais:
if set(permissao_solicitada).issubset(set(permissao_principal)):
print("As permissões solicitadas fazem parte das permissões principais")
else:
print("As permissões solicitadas não fazem parte das permissões principais")
O detalhe do .split(", ")
O método .split(", ") só funciona corretamente se o usuário digitar a vírgula seguida de espaço (exatamente assim: , ).
Por exemplo:
Funciona:
execução, leitura
Não funciona:
execução,leitura
ou
execução , leitura
Porque nesses casos, o texto é dividido de forma diferente, e as palavras ficam com espaços extras, o que faz com que o issubset() não encontre correspondência exata.
Como corrigir definitivamente:
Para tornar o código mais robusto (independente de como o usuário digite), você pode remover espaços extras com strip() e dividir apenas pela vírgula:
permissao_principal = ['leitura', 'escrita', 'execução', 'compartilhamento']
entrada = input("Digite a(s) permissão(ões) solicitada(s): ")
permissao_solicitada = [p.strip() for p in entrada.split(",")]
if set(permissao_solicitada).issubset(permissao_principal):
print("As permissões solicitadas fazem parte das permissões principais")
else:
print("As permissões solicitadas não fazem parte das permissões principais")
Resuminho:
- O código está conceitualmente correto.
- O erro (quando ocorre) é por formatação da entrada.
- Usar
split(",") e strip() evita problemas de espaço.
Se a pessoa digitar apenas uma permissão (como execução), o código original já funciona, mas se digitar mais de uma, é aí que o ajuste acima faz diferença.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!