1
resposta

[Sugestão] Erro ao utilizar índice em tupla

tuplas não possui índice = TypeError: 'set' object is not subscriptable

possivel solução:

permissoes_principais = set(['leitura', 'escrita', 'execução', 'compartilhamento'])

permissoes_solicitada = set(input('Quais permissoes deseja obter').lower().replace(',', '').split())

if 	permissoes_principais >= permissoes_solicitada:
    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.')
1 resposta

Oi Mateus! Como vai?

A mensagem de erro que você encontrou, TypeError: 'set' object is not subscriptable, indica que você tentou acessar um elemento de um conjunto usando um índice, o que não é possível, pois conjuntos não são indexados.

No seu código, você está no caminho certo ao usar conjuntos para verificar se as permissões solicitadas estão contidas nas permissões principais. Isso é feito de forma eficiente com conjuntos, pois eles permitem operações como união, interseção e verificação de subconjuntos.

Aqui está o seu código com um pequeno ajuste para garantir que ele funcione conforme o esperado:

permissoes_principais = set(['leitura', 'escrita', 'execução', 'compartilhamento'])

# Solicita as permissões do usuário, remove vírgulas e divide em uma lista
permissoes_solicitada = set(input('Quais permissoes deseja obter: ').lower().replace(',', '').split())

# Verifica se todas as permissões solicitadas estão nas permissões principais
if permissoes_principais >= permissoes_solicitada:
    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.')

Certifique-se de que, ao solicitar as permissões do usuário, você está removendo as vírgulas e dividindo corretamente a entrada em palavras individuais. Isso garantirá que a comparação entre os conjuntos funcione corretamente.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.