Python - Detectives and Assassins

1

I'm having trouble understanding what this exercise in the link below is requesting:

link

What I've understood so far is that I should build an algorithm so that when the data is provided that algorithm will find out who the killer is and who the detective is. Is that what the exercise is proposing? If so, is it very sophisticated? I have basic knowledge in Python, but I know how to handle dictionaries and IF statements well.

If someone can give a just how to start, it will help me a lot.

Many thanks to all of you.

    
asked by anonymous 30.04.2018 / 23:30

2 answers

2

You must discover murderers, victims and detectives. The program is relatively simple, you just need to be careful with the printing rules.

A basis:

• Receber a quantidade de casos. Exemplo: 1,2,3...100
• Verificar se a quantidade é >=1 e <=100
• Guardar os dados digitados em um dicionario
    -> <assassino> <vítima> <detetive>, com essa informação você pode criar um dicionário assim:
    relat = {'assassino':[], 
             'vitima':[],
             'detetive': []}
    nomes = set() # O meu conjunto vai guardar todos os nomes digitados ordenados e sem repetição, isso vai ajudar na impressão em ordem alfabética

    relat['assassino'].append('Ze')
    relat['vitima'].append('Xico')
    relat['detetive'].append({'Rafael':1}) # coloquei como dicionário para saber quantos casos cada detetive resolveu.
• Depois de criado seu dicionário com as entradas, só passar um for em nomes e recuperar a informação no dicionário, não esqueça de atender as regras.

Search for .split (), it will help you with the entries (have in the task tips).

I hope to have helped, any questions just comment there.

    
01.05.2018 / 01:02
1
# coletando dados
N = input("Digite o numero de casos: ")
casos = []
if N < 1 or N > 100:
    print("Valor inválido na entrada.")
else:
    for i in range(N):
        caso = input("Digite assassino, vitima e detetive: ")
        caso = caso.split(' ')
        assassino, vitima, detetive = caso
        # caso = {"assassino":assassino,"vitima":vitima,"detetive":detetive} # dica do professor
        casos.append(caso)

To know if the person is alive, it has two conditions: not to have been a victim and to be summoned either as a murderer or as a detective. The 'cases' list will have 'case' lists as elements, whose index elements 0, 1 and 2 will respectively be names of the killer, the victim, and the detective.

    
01.05.2018 / 00:14