Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Print, Listando nomes

O código está executando perfeitamente porem estou tendo um problema quando seleciono a opção 2 segue o problema: Digite 1 para cadastrar, 2 para Listar e 0 para terminar 1 Digite o Seu Nome Ana Digite 1 para cadastrar, 2 para Listar e 0 para terminar 1 Digite o Seu Nome Antenor Digite 1 para cadastrar, 2 para Listar e 0 para terminar 1 Digite o Seu Nome Andre Digite 1 para cadastrar, 2 para Listar e 0 para terminar 1 Digite o Seu Nome Flávio Digite 1 para cadastrar, 2 para Listar e 0 para terminar 2 Listando nomes: ['Ana', 'Antenor', 'Andre', 'Flávio'] ['Ana', 'Antenor', 'Andre', 'Flávio'] ['Ana', 'Antenor', 'Andre', 'Flávio'] ['Ana', 'Antenor', 'Andre', 'Flávio'] Digite 1 para cadastrar, 2 para Listar e 0 para terminar

veja, quando seleciono a opção de listar os nomes eles se repetem em arrays diferentes.

Segue o código app.py

# -*- coding: UTF-8 -*-
def listar(nomes):
    print('Listando nomes:')
    for nome in nomes:
        print(nomes)


def cadastrar(nomes):
    print('Digite o Seu Nome')
    nome = input()
    nomes.append(nome)

def menu():
    nomes = []
    escolha = ''
    while (escolha != '0'):
        print('Digite 1 para cadastrar, 2 para Listar e 0 para terminar')
        escolha = input()
        if (escolha == '1'):
                cadastrar(nomes)
        if (escolha == '2'):
            listar(nomes)

menu()

PS: ESTOU USANDO PYTHON 3.6.4

1 resposta
solução!

Olá, Antenor! Em primeiro lugar, veja que na sua função você dá print em "nomes", não "nome", o que acaba por printar a lista toda. Mas eu sugiro que para essa iteração você escolha qualquer outra variável diferente de "nome". Isso porque a variável "nome" está sendo utilizada para guardar a lista na função de cadastro. Dê qualquer outro nome e deve resolver (além de confundir menos)! Por exemplo, aqui, com 'x':

def listar(nomes):
    print('Listando nomes:')
    for x in nomes:
        print(x)

Espero que ajude. Por aqui, funcionou. Abraços!