Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] Dicionário não funciona corretamente

Boa tarde! Não consigo fazer esse código funcionar corretamente. O objetivo era cadastrar o município e o estado para onde a pessoa viajou e a atividade que a pessoa realizou quando viajou para o local inserido.

local = {}
atividade = {}

def entrada_nome_municipio():
    nome_municipio = input('Município: ')
    return nome_municipio


def entrada_estado():
    nome_estado = input('Estado: ')
    return nome_estado


def entrada_atividade():
    atividades_no_local = []
    while True:
        atividade_no_local = input('Atividade realizada no local ou <enter> para encerrar')
        if atividade_no_local is None or atividade_no_local == '':
            break
        else:
            atividades_no_local.append(atividade_no_local)
    return atividades_no_local


def relatorio_local():
    print(local)
    print(atividade)


def inclui_viagem():
    nome_municipio = entrada_nome_municipio()
    nome_estado = entrada_estado()
    local[nome_municipio] = nome_estado
    atividades_no_local = entrada_atividade
    atividade[nome_municipio] = atividades_no_local
    print('Viagem inserida com sucesso!')


def buscar_viagem():
    nome_municipio = entrada_nome_municipio()
    municipio = local.get(nome_municipio)
    if municipio is None:
        print('Viagem não encontrada')
    else:
        print('Viagem para', municipio)


def main():
    while True:
        print('~~~~~~~~~~~~~~~~~~~~~~~')
        print('sistema cadastro local')
        print('1 - incluir viagem')
        print('2 - Inserir atividade')
        print('3 - Buscar viagem')
        print('4 - Relatório das viagens')
        print('9 - Sair do sistema')

        opcao = input('Informe a opção: ')
        if opcao == '1':
            inclui_viagem()
        elif opcao == '2':
            entrada_atividade()
        elif opcao == '3':
            buscar_viagem()
        elif opcao == '4':
            relatorio_local()
        elif opcao == '9':
            break
        else:
            print('Opção inválida')


main()
2 respostas
solução!

Olá, Thaissa. Tudo bem? Espero que sim.

Executei o seu código e percebi que ele não entrava na parte de cadastrar as atividades realizadas quando tentamos incluir uma nova viagem. Notei que dentro da função inclui_viagem(), na chamada da função entrada_atividade está faltando um par de parênteses ().

Assim, onde está escrito:

atividades_no_local = entrada_atividade

Basta substituir por:

atividades_no_local = entrada_atividade()

Acredito que com essa alteração seu código vai funcionar corretamente.

Espero que sua dúvida tenha sido solucionada. Qualquer outra questão estou a disposição.

Abraços. Bons estudos!

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

Obrigada! Fiquei mais de hora tentando achar e era só isso kkkk ó vida