Estou com uma dúvida! Quero fazer um programa simples de cadastro de cliente, porém não consigo fazer uma função que adiciona esse cliente a uma lista, poderiam me ajudar?
Eu tenho o seguinte código até agora. #cadastro de cliente em programacao procedural
option = int(input('''
[1] - Cadastrar cliente
[2] - Consultar Clientes
[3] - Editar Cliente
[4] - Sair do programa
'''))
clientes = []
while option != 4:
if option == 1:
for i in range(clientes):
clientes = input('Digite o nome do cliente: ')
clientes = input('Digite o cep do cliente: ')
clientes = input('Digite o telefone do cliente: ')
clientes.append(clientes)
print('Cliente adicionado')
print(clientes)
Considere criar para cada cliente um tupla com seus dados (nome, cep, telefone, etc);
Para cada dado crie uma nova variavel. Por exemplo CEP: cliente_cep;
Eu estou sem IDE, usei um interpretador online, então debuguei colocando um option fixo (=1) e coloquei o número de clientes a serem cadastrados (para não rodar o laço indefinidamente);
Com as tuplas na lista fica facil acessar os dados de cada cliente. Dê uma pesquisada sobre.
Código:
option = 1
clientes = []
n_clientes = 1 # numero de clientes para cadastro
if option != 4: # trocar while para if
if option == 1:
for i in range(n_clientes):
cliente_nome = input('Digite o nome do cliente: ') # dados com input
cliente_cep = input('Digite o cep do cliente: ')
cliente_tel = input('Digite o telefone do cliente: ')
cliente_dados = (cliente_nome, cliente_cep, cliente_tel) # tupla contendo todos os dados
clientes.append(cliente_dados) # anexando as tuplas à lista clientes
print('Cliente adicionado')
print(clientes)
Certo! Consegui adicionar e dei uma estudada sobre tuplas. Mas estou com uma dúvida, como faço para que assim que eu cadastrar um cliente, meu programa volte para o menu para poder consultar por exemplo? Fiz isso uma vez em java usando um do while, mas não sei como fazer isso em Python
O código atual ficou assim #cadastro de cliente em programacao procedural
from functions import cadastra_cliente
option = int(input('''
[1] - Cadastrar cliente
[2] - Consultar Clientes
[3] - Editar Cliente
[4] - Sair do programa
'''))
if option != 4:
if option == 1:
cadastra_cliente()
if option == 2:
print(f'''
Nome: {clientes[0]}
Cep: {clientes[1]}
Telefone: {Clientes[2]}''')
e o cadastra cliente esta dentro de outra pasta da seguinte forma
clientes = []
def cadastra_cliente():
n_clientes = 1
for i in range(n_clientes):
cliente_nome = input('Digite o nome do cliente: ')
cliente_cep = input('Digite o cep do cliente: ')
cliente_telefone = input('Digite o telefone do cliente: ')
clientes_dados = (cliente_nome,cliente_cep,cliente_telefone)
clientes.append(clientes_dados)
print(clientes)
print('Cliente adicionado')
Como eu estou sem a IDE não vou “visualizar” algumas coisas.
Contudo, nesse caso eu faria uma função para realizar o laço menu o chamaria ao final do código.
(tem várias maneiras de resolver e encapsular isso)
Exemplo:
def menu():
option = int(input('''
[1] - Cadastrar cliente
[2] - Consultar Clientes
[3] - Editar Cliente
[4] - Sair do programa
'''))
return option
def programa():
option = menu() # retorna o valor da variavel option de menu()
# linhas de codigo do programa e laço de tratamento para option
# ...
# fim do laço
print(clientes)
print('Cliente adicionado')
programa() # chama programa() para ler input e realizar o laço novamente
Cara, desculpa, estava sem tempo. Removi minha última resposta, pois estava com discordâncias. Resolvi o problema utilizando um main() para chamar programa(). O main no python tem sintaxe um pouco diferente e é a primeira função chamada a partir do run do código. Ao final do laço eu chamo programa() novamente.
clientes = []
n_clientes = 1
def menu() :
option = int(input('''
[1] - Cadastrar cliente
[2] - Consultar Clientes
[3] - Editar Cliente
[4] - Sair do programa
'''))
return option
def mostrar_cliente() :
print(f'''
Nome: {clientes[0]}
Cep: {clientes[1]}
Telefone: {Clientes[2]}''')
def cadastra_cliente() :
cliente_nome = input('Digite o nome do cliente: ')
cliente_cep = input('Digite o cep do cliente: ')
cliente_telefone = input('Digite o telefone do cliente: ')
clientes_dados = (cliente_nome,cliente_cep,cliente_telefone)
clientes.append(clientes_dados)
print(clientes)
print('Cliente adicionado')
def programa() :
condition = True
option = menu()
while option != 4 :
if option == 1 :
cadastra_cliente()
if option == 2 :
mostrar_cliente()
programa()
if __name__ == '__main__':
programa()