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

Name Error nome_ a_procurar.

Olá, bom dia,boa,tarde,boa noite.

Estou com um problema, eu consigo acessar todas as opções do menu (1,2,3,4) e fazer as atualizações, porem na opção 5 que seria "procurar" o terminar da erro.

File ":C\Users\matheus\Desktop\app.py", line 57, in <module>menu()
File "C:\Users\matheus\Desktop\app.py", line 55 in menu procurar(nome_a_procurar, nomes)
NameError: global name 'nome_a_procurar' is not defined.

Ja alterei o código varias vezes e sempre da esse erro, e pelo menos eu não estou conseguindo achar aonde estou errando.

meu Codigo:

#-- coding: UTF-8 --
def cadastrar(nomes):
    print("Digite o nome:")
    nome = raw_input()
    nomes.append(nome)

def listar(nomes):
    print("Listando nomes:")
    for nome in nomes:
        print(nome)

def remover(nomes):
    print("Qual nome gostaria de remover?")
    nome = raw_input()
    nomes.remove(nome)

def alterar(nomes):
    print("Qual nome deseja alterar")
    nome_a_alterar = raw_input()

    if(nome_a_alterar in nomes):
         posicao = nomes.index(nome_a_alterar)
         print("Digite o novo nome:")
         nome_novo = raw_input()
         nomes[posicao] = nome_novo

def procurar(nomes):
    print("Qual nome você gostaria de procurar?")
    nome_a_procurar = raw_input()
    if(nome_a_procurar in nomes):
        print("O nome %s conta na lista' % (nome_a_procurar")
    else:
        print("O nome %s nao está na nossa lista' % (nome_a_procurar)")

def menu():
    nomes = []
    escolha = ''
    while(escolha != '0'):
        print("Digite 1 para cadastrar, 2 para listar, 3 para remover,4 para alterar,5 para procurar e 0 para terminar")
        escolha = raw_input()

        if(escolha == '1'):
            cadastrar(nomes)

        if(escolha == '2'):
            listar(nomes)

        if(escolha == '3'):
            remover(nomes)

        if(escolha== '4'):
            alterar(nomes)

        if(escolha == '5'):
            procurar(nome_a_procurar, nomes)

menu()

Agradeço a ajuda desde já .

2 respostas

Você ta chamando a função procurar passando nome_a_procurar na função menu

if(escolha == '5'):
            procurar(nome_a_procurar, nomes)

mas essa variavel não existe, além disso você ta passando dois valores para a função, nome_a_procurar e nomes, porém a função só recebe um valor que é a lista:

def procurar(nomes):

o correto seria chamar assim:

if(escolha == '5'):
            procurar(nomes)
solução!

Opa, é isso mesmo. muito obrigado pela ajuda!