<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 <font color='blue'>Data Science Academy - Python Fundamentos - Capítulo 5</font>
Download
Step1:  Classes
Para criar uma classe, utiliza-se a palavra reservada class. O nome da sua classe segue a mesma convenção de nomes
para criação de funções e variáveis, mas normalmente se usa a primeira letra maiúscula em cada palavra no nome da 
classe.
<ASSISTANT_TASK:>
Python Code:
# Versão da Linguagem Python
from platform import python_version
print('Versão da Linguagem Python Usada Neste Jupyter Notebook:', python_version())
Explanation: <font color='blue'>Data Science Academy - Python Fundamentos - Capítulo 5</font>
Download: http://github.com/dsacademybr
End of explanation
# Criando uma classe chamada Livro
class Livro():
    
    # Este método vai inicializar cada objeto criado a partir desta classe
    # O nome deste método é __init__
    # (self) é uma referência a cada atributo de um objeto criado a partir desta classe
    def __init__(self):
        
        # Atributos de cada objeto criado a partir desta classe. 
        # O self indica que estes são atributos dos objetos
        self.titulo = 'O Monge e o Executivo'
        self.isbn = 9988888
        print("Construtor chamado para criar um objeto desta classe")
        
    # Métodos são funções, que recebem como parâmetro atributos do objeto criado    
    def imprime(self):
        print("Foi criado o livro %s e ISBN %d" %(self.titulo, self.isbn))
# Criando uma instância da classe Livro
Livro1 = Livro()
# Tipo do Objeto Livro1
type(Livro1)
# Atributo do objeto Livro1
Livro1.titulo
# Método do objeto Livro1
Livro1.imprime()
# Criando a classe Livro com parâmetros no método construtor
class Livro():
    def __init__(self, titulo, isbn):
        self.titulo = titulo
        self.isbn = isbn
        print("Construtor chamado para criar um objeto desta classe")
        
    def imprime(self, titulo, isbn):
        print("Este é o livro %s e ISBN %d" %(titulo, isbn))
# Criando o objeto Livro2 que é uma instância da classe Livro
Livro2 = Livro("A Menina que Roubava Livros", 77886611)
Livro2.titulo
# Método do objeto Livro2
Livro2.imprime("A Menina que Roubava Livros", 77886611)
# Criando a classe cachorro
class Cachorro():
    def __init__(self, raça):
        self.raça = raça
        print("Construtor chamado para criar um objeto desta classe")
# Criando um objeto a partir da classe cachorro
Rex = Cachorro(raça='Labrador')
# Criando um objeto a partir da classe cachorro
Golias = Cachorro(raça='Huskie')
# Atributo da classe cachorro, utilizado pelo objeto criado
Rex.raça
# Atributo da classe cachorro, utilizado pelo objeto criado
Golias.raça
Explanation: Classes
Para criar uma classe, utiliza-se a palavra reservada class. O nome da sua classe segue a mesma convenção de nomes
para criação de funções e variáveis, mas normalmente se usa a primeira letra maiúscula em cada palavra no nome da 
classe.
End of explanation
<END_TASK>