From 79a101682dbb6e8adb02392b5f718389c124c90f Mon Sep 17 00:00:00 2001 From: Schots Date: Mon, 15 Jun 2020 15:08:33 +0200 Subject: [PATCH 1/9] Criada a classe Pessoa. --- oo/__init__.py | 0 oo/pessoa | 2 ++ 2 files changed, 2 insertions(+) create mode 100644 oo/__init__.py create mode 100644 oo/pessoa diff --git a/oo/__init__.py b/oo/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/oo/pessoa b/oo/pessoa new file mode 100644 index 000000000..eb7c0a9c1 --- /dev/null +++ b/oo/pessoa @@ -0,0 +1,2 @@ +class Pessoa: + pass From c9514fb4349be717f643d04e78a0b052e1669652 Mon Sep 17 00:00:00 2001 From: Schots Date: Mon, 15 Jun 2020 15:34:23 +0200 Subject: [PATCH 2/9] =?UTF-8?q?Criado=20o=20primeiro=20m=C3=A9todo=20da=20?= =?UTF-8?q?classe=20Pessoa.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oo/pessoa | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/oo/pessoa b/oo/pessoa index eb7c0a9c1..a514f89ee 100644 --- a/oo/pessoa +++ b/oo/pessoa @@ -1,2 +1,7 @@ class Pessoa: - pass + def cumprimentar(self): + return f"Olá, sou a pessoa {id(self)} na memória :)" + +if __name__ == "__main__": + p = Pessoa() + print(p.cumprimentar()) \ No newline at end of file From 40516d951a0e8907eabd2f78839827b521770165 Mon Sep 17 00:00:00 2001 From: Schots Date: Tue, 16 Jun 2020 15:25:57 +0200 Subject: [PATCH 3/9] Criado atributo filhos. --- oo/pessoa | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/oo/pessoa b/oo/pessoa index a514f89ee..499c00332 100644 --- a/oo/pessoa +++ b/oo/pessoa @@ -1,7 +1,11 @@ class Pessoa: + def __init__(self,*filhos,nome = None): + self.nome = nome + self.filhos = list(filhos) def cumprimentar(self): return f"Olá, sou a pessoa {id(self)} na memória :)" if __name__ == "__main__": - p = Pessoa() - print(p.cumprimentar()) \ No newline at end of file + p = Pessoa("Nina",nome = "Maykon") + print(p.cumprimentar()) + print(p.filhos) \ No newline at end of file From ef00e3d55b3018ad4991b0b3e8b26236495b7dba Mon Sep 17 00:00:00 2001 From: Schots Date: Thu, 18 Jun 2020 16:14:13 +0200 Subject: [PATCH 4/9] =?UTF-8?q?Criada=20Classes=20Motor=20e=20Dire=C3=A7?= =?UTF-8?q?=C3=A3o.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oo/carro.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 oo/carro.py diff --git a/oo/carro.py b/oo/carro.py new file mode 100644 index 000000000..5929da3fe --- /dev/null +++ b/oo/carro.py @@ -0,0 +1,42 @@ +class Motor(): + def __init__(self,velocidade_inicial = 0): + self.velocidade = velocidade_inicial + + def acelerar(self): + self.velocidade += 1 + return self.velocidade + + def frear(self): + self.velocidade -= 2 + if self.velocidade < 0: + return 0 + return self.velocidade + +class Direcao(): + def __init__(self,direcao_inicial ="Norte"): + self.direcao = direcao_inicial + + def girar_a_direita(self): + if self.direcao == "Norte": + self.direcao = "Leste" + return self.direcao + elif self.direcao == "Leste": + self.direcao = "Sul" + return self.direcao + elif self.direcao == "Sul": + self.direcao = "Oeste" + return self.direcao + return "Norte" + + +if __name__ == "__main__": + motor = Motor(10) + print(motor.velocidade) + print(motor.acelerar()) + print(motor.frear()) + direcao = Direcao() + print(direcao.direcao) + print(direcao.girar_a_direita()) + print(direcao.girar_a_direita()) + print(direcao.girar_a_direita()) + print(direcao.girar_a_direita()) From ed34f49945d3672aed69877c25c4606a20477bb6 Mon Sep 17 00:00:00 2001 From: Schots Date: Thu, 18 Jun 2020 16:39:26 +0200 Subject: [PATCH 5/9] =?UTF-8?q?Criada=20Classes=20Motor=20e=20Dire=C3=A7?= =?UTF-8?q?=C3=A3o.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oo/carro.py | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/oo/carro.py b/oo/carro.py index 5929da3fe..dd81c9309 100644 --- a/oo/carro.py +++ b/oo/carro.py @@ -26,7 +26,21 @@ def girar_a_direita(self): elif self.direcao == "Sul": self.direcao = "Oeste" return self.direcao - return "Norte" + self.direcao = "Norte" + return self.direcao + + def girar_a_esquerda(self): + if self.direcao == "Norte": + self.direcao = "Oeste" + return self.direcao + elif self.direcao == "Oeste": + self.direcao = "Sul" + return self.direcao + elif self.direcao == "Sul": + self.direcao = "Leste" + return self.direcao + self.direcao = "Norte" + return self.direcao if __name__ == "__main__": @@ -36,7 +50,9 @@ def girar_a_direita(self): print(motor.frear()) direcao = Direcao() print(direcao.direcao) + # print(direcao.girar_a_direita()) + # print(direcao.girar_a_direita()) + # print(direcao.girar_a_direita()) print(direcao.girar_a_direita()) - print(direcao.girar_a_direita()) - print(direcao.girar_a_direita()) - print(direcao.girar_a_direita()) + print(direcao.girar_a_esquerda()) + print(direcao.girar_a_esquerda()) \ No newline at end of file From cf3853f766482bb3a9cf4a0a53936c12cd2a2d84 Mon Sep 17 00:00:00 2001 From: Schots Date: Fri, 19 Jun 2020 17:33:26 +0200 Subject: [PATCH 6/9] =?UTF-8?q?Criada=20a=20se=C3=A7=C3=A3o=20de=20Doctest?= =?UTF-8?q?s.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oo/carro.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/oo/carro.py b/oo/carro.py index dd81c9309..9000058f2 100644 --- a/oo/carro.py +++ b/oo/carro.py @@ -1,5 +1,13 @@ +""" Doctests + >>> motor = Motor() + >>> motor.frear() + 0 + >>> motor.acelerar() + 1 +""" + class Motor(): - def __init__(self,velocidade_inicial = 0): + def __init__(self, velocidade_inicial=0): self.velocidade = velocidade_inicial def acelerar(self): @@ -9,11 +17,12 @@ def acelerar(self): def frear(self): self.velocidade -= 2 if self.velocidade < 0: - return 0 + self.velocidade = 0 return self.velocidade + class Direcao(): - def __init__(self,direcao_inicial ="Norte"): + def __init__(self, direcao_inicial="Norte"): self.direcao = direcao_inicial def girar_a_direita(self): @@ -50,9 +59,6 @@ def girar_a_esquerda(self): print(motor.frear()) direcao = Direcao() print(direcao.direcao) - # print(direcao.girar_a_direita()) - # print(direcao.girar_a_direita()) - # print(direcao.girar_a_direita()) print(direcao.girar_a_direita()) print(direcao.girar_a_esquerda()) - print(direcao.girar_a_esquerda()) \ No newline at end of file + print(direcao.girar_a_esquerda()) From 39c31a168b6d6406b545e4407320dcc1b2a71640 Mon Sep 17 00:00:00 2001 From: Schots Date: Sat, 20 Jun 2020 17:21:24 +0200 Subject: [PATCH 7/9] =?UTF-8?q?Criados=20dicion=C3=A1rios=20de=20rota?= =?UTF-8?q?=C3=A7=C3=A3o=20na=20classe=20Direcao.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oo/carro.py | 59 ++++++++++++++++++++--------------------------------- 1 file changed, 22 insertions(+), 37 deletions(-) diff --git a/oo/carro.py b/oo/carro.py index 9000058f2..952103e46 100644 --- a/oo/carro.py +++ b/oo/carro.py @@ -1,10 +1,23 @@ """ Doctests >>> motor = Motor() >>> motor.frear() + >>> motor.velocidade 0 >>> motor.acelerar() + >>> motor.velocidade 1 + >>> direcao = Direcao() + >>> direcao.girar_a_direita() + >>> direcao.direcao + 'Leste' + >>> direcao.girar_a_esquerda() + >>> direcao.direcao + 'Norte' """ +NORTE = 'Norte' +LESTE = 'Leste' +OESTE = 'Oeste' +SUL = 'Sul' class Motor(): def __init__(self, velocidade_inicial=0): @@ -12,53 +25,25 @@ def __init__(self, velocidade_inicial=0): def acelerar(self): self.velocidade += 1 - return self.velocidade def frear(self): self.velocidade -= 2 - if self.velocidade < 0: - self.velocidade = 0 - return self.velocidade + self.velocidade = max(0,self.velocidade) class Direcao(): - def __init__(self, direcao_inicial="Norte"): - self.direcao = direcao_inicial + rotaciona_direita_dict = {NORTE:LESTE,LESTE:SUL,SUL:OESTE,OESTE:NORTE} + rotaciona_esquerda_dict = {NORTE: OESTE, OESTE: SUL, SUL: LESTE, LESTE: NORTE} + + def __init__(self): + self.direcao = NORTE def girar_a_direita(self): - if self.direcao == "Norte": - self.direcao = "Leste" - return self.direcao - elif self.direcao == "Leste": - self.direcao = "Sul" - return self.direcao - elif self.direcao == "Sul": - self.direcao = "Oeste" - return self.direcao - self.direcao = "Norte" - return self.direcao + self.direcao = self.rotaciona_direita_dict[self.direcao] def girar_a_esquerda(self): - if self.direcao == "Norte": - self.direcao = "Oeste" - return self.direcao - elif self.direcao == "Oeste": - self.direcao = "Sul" - return self.direcao - elif self.direcao == "Sul": - self.direcao = "Leste" - return self.direcao - self.direcao = "Norte" - return self.direcao + self.direcao = self.rotaciona_esquerda_dict[self.direcao] if __name__ == "__main__": - motor = Motor(10) - print(motor.velocidade) - print(motor.acelerar()) - print(motor.frear()) - direcao = Direcao() - print(direcao.direcao) - print(direcao.girar_a_direita()) - print(direcao.girar_a_esquerda()) - print(direcao.girar_a_esquerda()) + pass From 6624540a57bf9da1e02e8f32206b7184325bc8e8 Mon Sep 17 00:00:00 2001 From: Schots Date: Sat, 20 Jun 2020 17:51:51 +0200 Subject: [PATCH 8/9] =?UTF-8?q?Criada=20a=20classe=20Carro,=20composta=20p?= =?UTF-8?q?elas=20classes=20Motor=20e=20Dire=C3=A7=C3=A3o.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oo/carro.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/oo/carro.py b/oo/carro.py index 952103e46..d3d66094e 100644 --- a/oo/carro.py +++ b/oo/carro.py @@ -13,12 +13,22 @@ >>> direcao.girar_a_esquerda() >>> direcao.direcao 'Norte' + >>> carro = Carro(motor,direcao) + >>> carro.motor.acelerar() + >>> carro.motor.velocidade + 2 + """ NORTE = 'Norte' LESTE = 'Leste' OESTE = 'Oeste' SUL = 'Sul' +class Carro(): + def __init__(self,motor,direcao): + self.motor = motor + self.direcao = direcao + class Motor(): def __init__(self, velocidade_inicial=0): self.velocidade = velocidade_inicial From 5a141f9c61a3e7db094ceefc9c1ba750c7579c99 Mon Sep 17 00:00:00 2001 From: Schots Date: Mon, 22 Jun 2020 16:02:34 +0200 Subject: [PATCH 9/9] =?UTF-8?q?Criada=20a=20classe=20Carro,=20composta=20p?= =?UTF-8?q?elas=20classes=20Motor=20e=20Dire=C3=A7=C3=A3o.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oo/carro.py | 94 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 82 insertions(+), 12 deletions(-) diff --git a/oo/carro.py b/oo/carro.py index d3d66094e..636875054 100644 --- a/oo/carro.py +++ b/oo/carro.py @@ -1,22 +1,74 @@ """ Doctests + >>> # Testando motor >>> motor = Motor() - >>> motor.frear() >>> motor.velocidade 0 >>> motor.acelerar() >>> motor.velocidade 1 + >>> motor.acelerar() + >>> motor.velocidade + 2 + >>> motor.acelerar() + >>> motor.velocidade + 3 + >>> motor.frear() + >>> motor.velocidade + 1 + >>> motor.frear() + >>> motor.velocidade + 0 + >>> # Testando Direcao >>> direcao = Direcao() + >>> direcao.valor + 'Norte' + >>> direcao.girar_a_direita() + >>> direcao.valor + 'Leste' >>> direcao.girar_a_direita() - >>> direcao.direcao + >>> direcao.valor + 'Sul' + >>> direcao.girar_a_direita() + >>> direcao.valor + 'Oeste' + >>> direcao.girar_a_direita() + >>> direcao.valor + 'Norte' + >>> direcao.girar_a_esquerda() + >>> direcao.valor + 'Oeste' + >>> direcao.girar_a_esquerda() + >>> direcao.valor + 'Sul' + >>> direcao.girar_a_esquerda() + >>> direcao.valor 'Leste' >>> direcao.girar_a_esquerda() - >>> direcao.direcao + >>> direcao.valor 'Norte' - >>> carro = Carro(motor,direcao) - >>> carro.motor.acelerar() - >>> carro.motor.velocidade + >>> carro = Carro(direcao, motor) + >>> carro.calcular_velocidade() + 0 + >>> carro.acelerar() + >>> carro.calcular_velocidade() + 1 + >>> carro.acelerar() + >>> carro.calcular_velocidade() 2 + >>> carro.frear() + >>> carro.calcular_velocidade() + 0 + >>> carro.calcular_direcao() + 'Norte' + >>> carro.girar_a_direita() + >>> carro.calcular_direcao() + 'Leste' + >>> carro.girar_a_esquerda() + >>> carro.calcular_direcao() + 'Norte' + >>> carro.girar_a_esquerda() + >>> carro.calcular_direcao() + 'Oeste' """ NORTE = 'Norte' @@ -25,13 +77,31 @@ SUL = 'Sul' class Carro(): - def __init__(self,motor,direcao): + def __init__(self,direcao,motor): self.motor = motor self.direcao = direcao + def calcular_velocidade(self): + return self.motor.velocidade + + def acelerar(self): + self.motor.acelerar() + + def frear(self): + self.motor.frear() + + def calcular_direcao(self): + return self.direcao.valor + + def girar_a_direita(self): + self.direcao.girar_a_direita() + + def girar_a_esquerda(self): + self.direcao.girar_a_esquerda() + class Motor(): - def __init__(self, velocidade_inicial=0): - self.velocidade = velocidade_inicial + def __init__(self): + self.velocidade = 0 def acelerar(self): self.velocidade += 1 @@ -46,13 +116,13 @@ class Direcao(): rotaciona_esquerda_dict = {NORTE: OESTE, OESTE: SUL, SUL: LESTE, LESTE: NORTE} def __init__(self): - self.direcao = NORTE + self.valor = NORTE def girar_a_direita(self): - self.direcao = self.rotaciona_direita_dict[self.direcao] + self.valor = self.rotaciona_direita_dict[self.valor] def girar_a_esquerda(self): - self.direcao = self.rotaciona_esquerda_dict[self.direcao] + self.valor = self.rotaciona_esquerda_dict[self.valor] if __name__ == "__main__":