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

entrada de dados

Gostaria de saber como faço para dar entrada através do input. Sei fazer dessa forma abaixo. Estou tentando desenvolver um sistema de cadastro de cliente, controle financeiro, controle de estoque e quero fazer a entrada de dado com input. Já fiz as classes e as funções mas não estou conseguir fazer no main.

jose = Junior()
jose.mostrar_tarefas()
jose.busca_pergunta_sem_resposta()

luan = Pleno()
luan.busca_curso_do_mes()
luan.mostrar_tarefas()
luan.busca_pergunta_sem_resposta()
2 respostas
solução!

Oii Amon, como você está?

Podemos coletar a entrada do usuário através do input(), salvarmos essa entrada em uma variável e fornecê-la como atributo para o objeto da classe.

Considere que temos uma classe Cliente possui o atributo nome_cliente declarado no método inicializador (__init__), esse atributo deverá ser fornecido através de uma entrada do usuário e podemos instanciar nosso objeto como apresentado abaixo:

nome_do_usuario = input("Digite seu nome: ")
objeto = Cliente(nome_do_usuario)

Ao executarmos nosso código, será apresentado a mensagem pedindo que o usuário informe o nome do usuário, e esse nome será fornecido como parâmetro para a criação do objeto. Abaixo a classe Cliente com a declaração completa:

class Cliente:

  def __init__(self, nome_cliente):
    self.nome_cliente = nome_cliente

  def formata_nome_cliente(self):
    return print(f"Nome do Cliente: {self.nome_cliente.upper()}")


nome_do_usuario = input("Digite seu nome: ")

objeto = Cliente(nome_do_usuario)
objeto.formata_nome_cliente()

Você também pode usar o input diretamente no construtor __init__ da classe, como mostro abaixo:

class Cliente:
    def __init__(self):
        self.nome_cliente = input("Digite seu nome: ")

    def formata_nome_cliente(self):
        return print(f"Nome do Cliente: {self.nome_cliente.upper()}")

objeto = Cliente()
objeto.formata_nome_cliente()

Porém, dessa forma não fica explícito para quem invoca a classe, quais parâmetros a classe Cliente trabalha e seguindo o princípio do Zen do Python, ”explícito é melhor que implícito”. Lembrando que o Zen do Python é uma coleção de 19 princípios para escrever códigos em Python. Mas vale ressaltar que você pode encontrar as entradas de usuário desses dois modos apresentados: tanto dentro da classe, como passando os parâmetros na criação do objeto.

Como recomendação de leitura, deixo o seguinte artigo, onde aborda com mais detalhes sobre os tópicos presentes no Zen do Python.

Qualquer dúvida fico à disposição.

Abraços e bons estudos!

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

Fala Felippe, blz? obrigado pela atenção. No codigo quando eu atribuia o objeto a classe não estava passando o valor dentro dos parenteses... abraco