Não sei se tem algo haver. Mas to colocando um contador com a variável “i”. Desta forma i = i + 1, mas ele fica louco. Começa em 1, depois vai pra zero, outra hora vai pra 3. Não segue uma sequencia tipo 1, 2 ,3 ,4…
Achei que fosse a forma de colocar i = i + 1, então troquei por i+=1, não resolveu nada. Então mudei o nome da variável por “incremento” e funcionou.
Pode colocar o trecho de código onde isso acontece? Com o problema acontecendo.
Leilson_Frantchelino
As vezes é algo simples que não estou vendo. Testa assim, insira uns 2 clientes, depois manda imprimir e volte a inserir outro cliente. O contador não é sequencial. Mas se mudar o nome da variável, funciona normal.
Contas={'cod':[],'saldo':[],'tr':[]}Clientes={'cod':[],'nome':[],'tel':[],'cc':[]}numClientes=0i=1ok1=Truewhileok1:print("")print("1 - Inserir novo cliente")print("2 - Imprimir lista de clientes")print("6 - Sair")menuCliente=input("\nDigite o numero da opçao desejada: ")##Sairdomenucliente----------------------------------------------------------------------//ifmenuCliente=='6':ok1=False##1-Inserirnovocliente------------------------------------------------------------------//ifmenuCliente=='1':ifnumClientes<50:cod=int(i)nome=input("Informe o nome do cliente: ")tel=input("Informe o telefone do cliente: ")cc=input("Informe o numero da conta corrente do cliente: ")pdeposito=input("Informe o valor do deposito inicial: ")pdeposito=float(pdeposito)Clientes['cod'].append(cod)Clientes['nome'].append(nome)Clientes['tel'].append(tel)Clientes['cc'].append(cc)Contas['cod'].append(cc)Contas['saldo'].append(pdeposito)numClientes=numClientes+1i=i+1else:print("\nNumero maximo de clientes atingido!!")##5-Imprimirlistadeclientes-----------------------------------------------------//ifmenuCliente=='2':print("Codigo \t Nome \t\t Telefone \t Conta \t Saldo")print()foriinrange(numClientes):print("{0} \t {1} \t {2} \t {3} \t {4}".format(Clientes['cod'][i],Clientes['nome'][i],Clientes['tel'][i],Clientes['cc'][i],Contas['saldo'][i]))#FIMdoMenuCliente--------------------------------------------------------------------------//print("Finalizando...")
Jonathan_Medeiros1 like
O erro ocorre porquê você está reutilizando a variável i dentro de um contexto em que não deveria, ao utilizá-la na iteração para imprimir os clientes ela perde o valor carregado anteriormente pelo ato de cadastrar um cliente.
Altere o nome da variável de iteração do laço e o comportamento vai ficar como você espera!