def obter_tarefas_a() -> set[str]:
"""
Obtem as tarefas do grupo a;
Retorna as tarefas em um conjunto;
"""
return{"planejar reunião", "revisar documento", "testar sistema"}
def obter_tarefas_b() -> set[str]:
"""
Obtem as tarefas do grupo b.
Retorna as tarefas em um conjunto;
"""
return{"testar sistema", "implementar funcionalidade", "corrigir bug"}
def combinar_tarefas(equipe_a: set[str], equipe_b: set[str]) -> set[str]:
"""
Recebe as tarefas da equipe 'a' e da equipe 'b' e une ambas em 1 conjunto de string;
"""
return equipe_a.union(equipe_b)
def remover_tarefa(tarefas : set[str]) -> set[str]:
"""
Pede que seja inserido uma tarefa a ser removida;
Se a tarefa inserida for encontrada dentro da lista, retorna True e a remove;
Se não for encontrada retorna False e repete a função;
Pergunta se deseja remover outra tarefa ou encerrar o programa;
"""
while True:
tarefa_removida = input('Digite a tarefa que deseja remover: ').strip().lower()
tarefa_lower = {t.lower(): t for t in tarefas}
if tarefa_removida in tarefa_lower:
tarefa_original = tarefa_lower[tarefa_removida]
tarefas.remove(tarefa_original)
print(f'A tarefa {tarefa_original} foi removida com sucesso!')
else:
print('Digite uma tarefa válida. Tente novamente.')
continue
if not continuar_programa("Deseja remover outra tarefa? (s/n)"):
break
return tarefas
def continuar_programa(mensagem: str) -> bool:
"""
Recebe uma mensagem personalizada perguntando se o usuário deseja continuar (EX: "Deseja continuar adicionando itens à lista? s/n")
Retorna True para 's' e False para 'n'.
"""
while True:
continuar = input(mensagem).strip().lower()
if continuar in ('s', 'n'):
return continuar == 's'
print('Por favor, responda com "s" ou "n".')
def main():
a = obter_tarefas_a()
b = obter_tarefas_b()
tarefas = combinar_tarefas(a, b)
remover_tarefa(tarefas)
print(f'Tarefas finais: {tarefas}')
if __name__ == '__main__':
main()