Você está aqui: Python ::: Dicas & Truques ::: Sobrecarga de Operadores

Como sobrecarregar o operador de adição em Python para efetuar a soma de frações

Quantidade de visualizações: 1156 vezes
A sobrecarga de operadores em Python é muito útil quando precisamos estender a funcionalidade dos operadores fornecidos pela linguagem. Nesta dica abordarei a sobrecarga do operador de soma ("+") para mostrar como podemos criar uma classe Fração e usar a sobrecarga de operador para efetuar a soma de dois termos, ou seja, de dois objetos da classe Fração.

Sabemos que o operador de adição ("+") é usado em Python para somar dos valores numéricos e também para concatenar strings. Para estender este operador para classes, ou seja, dar um significado diferente a ele, podemos usar a função mágica __add__(self, other), na qual self se refere à instância atual e other se refere à instância cujos dados queremos "somar" com os dados da instância atual.

Veja um trecho de código completo contendo a classe Fracao e o método main() para testes. Note que fazemos a soma de duas frações e retornamos o resultado em sua forma simplificada, ou seja, reduzida:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

class Fracao:
  # construtor que recebe o numerador e o denominador
  # da fração
  def __init__(self, numerador = 0, denominador = 1):
    self.numerador = numerador
    self.denominador = denominador
 
  # efetua a soma de duad frações
  def __add__(self, outra_fracao):
    # cria a fração resultante
    res = Fracao()
    # o numerador da fração resultante recebe o numerador da
    # segunda fração multiplicado pelo denominador da fração atual
    res.numerador = outra_fracao.numerador * self.denominador
    # o numerador da fração resultante é somado com o produto do
    # denominador da segunda fração pelo numerador da fraçao atual
    res.numerador += outra_fracao.denominador * self.numerador
    # o denormiador da fração resultante recebe o produto do
    # denominador da segunda fração pelo denominador da fração
    # atual
    res.denominador = outra_fracao.denominador * self.denominador

    # faz a simplificação da fração resultante
    res.simplificar()
    return res # retorna a fração resultante

  # permite simplificar a fração
  def simplificar(self):
    maior = self.numerador if self.numerador > self.denominador else self.denominador

    # Máximo Divisor Comum (MDC)
    mdc = 0
    for i in range(2, maior + 1):
      if (self.numerador % i == 0) and (self.denominador % i) == 0:
        mdc = i
		
    if mdc != 0:
      self.numerador /= mdc
      self.denominador /= mdc

  # método que mostra o numerador e denominador desta fração
  def imprimir(self):
    # o resultado é 1/1
    if (self.numerador == 1) and (self.denominador == 1):
      return ("1")
    # o denominador é 1
    elif self.denominador == 1:
      return (str(self.numerador))    
    else:
      return (str(self.numerador) + "/" + (str(self.denominador)))	  

# método principal  
def main():
  # primeira fração
  a = Fracao(4, 3)
  # segunda fração
  b = Fracao(5, 7)
  # fração resultante
  c = a + b
  # mostra o resultado
  print("O resultado é: " + c.imprimir())

if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

c:\estudos_python>python estudos.py
O resultado é: 43/21

Link para compartilhar na Internet ou com seus amigos:

Python ::: NumPy Python Library (Biblioteca Python NumPy) ::: Matemática e Estatística

Python para estatística - Como calcular a mediana de um conjunto de valores usando o método median() da biblioteca NumPy da linguagem Python

Quantidade de visualizações: 16317 vezes
A mediana (Md) representa o valor central de um conjunto de dados. Para encontrá-la, é necessário colocar os valores em ordem crescente ou decrescente.

Quando o número elementos de um conjunto é par, a mediana é encontrada pela média dos dois valores centrais. Assim, esses valores são somados e divididos por dois.

Veja a seguinte figura:



A biblioteca NumPy do Python nos oferece o método median(), que recebe um vetor de valores númericos (inteiro ou decimais) e retorna a mediana deles. Veja um exemplo com os primeiros valores da figura (um conjnto ímpar):

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

# importamos a biblioteca NumPy
import numpy

def main():
  # valores a serem observados
  valores = [2, 2, 3, 7, 8, 9, 9]

  # vamos obter a mediana
  mediana = numpy.median(valores)

  # vamos mostrar o resultado
  print("A mediana dos valores é:", mediana)

if __name__== "__main__":
  main()

Ao executarmos este código nós teremos o seguinte resultado:

A mediana dos valores é: 7.0

Veja agora o exemplo usando o segundo grupo de valores da imagem (conjunto par):

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

# importamos a biblioteca NumPy
import numpy

def main():
  # valores a serem observados
  valores = [1, 4, 4, 5, 6, 7, 7, 7]

  # vamos obter a mediana
  mediana = numpy.median(valores)

  # vamos mostrar o resultado
  print("A mediana dos valores é:", mediana)

if __name__== "__main__":
  main()

O resultado da execução desse código será:

A mediana dos valores é: 5.5

É importante observar que o método median() da NumPy não exige que os valores estejam ordenados. A própria função se encarrega dessa tarefa.


Python ::: Dicas & Truques ::: Data e Hora

Como retornar o dia do mês em Python como um decimal no intervalo 01-31 usando strftime("%d")

Quantidade de visualizações: 8035 vezes
Como retornar o dia do mês em Python como um decimal no intervalo 01-31 usando strftime("%d")

Este exemplo mostra como usar a função strftime() e o sinalizador ("%d") para retornar o dia do mês a partir de um datetime. Observe que o dia do mês será retornado como um decimal no intervalo 01-31.

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

from datetime import datetime

def main():
  # Obtém um datetime da data e hora atual
  hoje = datetime.today()

  # Exibe o dia do mês como um decimal
  print(hoje.strftime("O dia do mês é: %d"))

if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

O dia do mês é: 26


Python ::: Dicas & Truques ::: Matemática e Estatística

Como calcular porcentagem em Python - Como efetuar cálculos de porcentagem em Python

Quantidade de visualizações: 25673 vezes
Cálculos de porcentagens estão presentes em boa parte das aplicações que desenvolvemos. Porém, há momentos em que a mente trava e não conseguimos lembrar com clareza como estes cálculos são feitos, principalmente em Python.

Esta anotação tem o objetivo de ser uma fonte de pesquisa para os momentos em que suas habilidades matemáticas insistirem em continuar ocultas.

Ex: 1 - Suponhamos que um produto que custe R$ 178,00 sofra um acréscimo de 15%. Qual o valor final do produto? Veja o código em Python:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

# Algoritmo que calcula porcentagem em Python
def main():
  valor = 178.00 # valor original
  percentual = 15.0 / 100.0 # 15%
  valor_final = valor + (percentual * valor)

  # mostra o resultado
  print("O valor final do produto é: {0}".format(valor_final))

  # O resultado será 204,70
  
if __name__== "__main__":
  main()

Ex: 2 - Um produto, cujo valor original era de R$ 250,00, teve um desconto de 8%. Qual foi seu valor final? Veja o código em Python:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

# Algoritmo que calcula porcentagem em Python
def main():
  valor = 250.00 # valor original
  percentual = 8.0 / 100.0 # 8%
  valor_final = valor - (percentual * valor)

  # mostra o resultado
  print("O valor final do produto é: {0}".format(valor_final))  
  # O resultado será 230,00
  
if __name__== "__main__":
  main()

Ex: 3 - Em um concurso de perguntas e respostas, um jovem acertou 72 das 90 perguntas apresentadas. Qual foi a porcentagem de acertos? E a porcentagem de erros? Veja o código em Python:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

# Algoritmo que calcula porcentagem em Python
def main():
  perguntas = 90.0
  acertos = 72.0

  # mostra a porcentagem de acertos
  print("Porcentagem de acertos: {0}%".format((acertos / perguntas) * 100))

  # mostra a porcentagem de erros
  print("Porcentagem de erros: {0}%".format(((perguntas - acertos) / perguntas) * 100))

  # Os resultados serão 80% e 20%
  
if __name__== "__main__":
  main()

Ex: 4 - Um aparelho de CD foi adquirido por R$ 300,00 e revendido por R$ 340,00. Qual foi a porcentagem de lucro na transação? Veja o código em Python:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

# Algoritmo que calcula porcentagem em Python
def main():
  valor_anterior = 300.0 # valor anterior
  novo_valor = 340.0 # valor novo

  # calcula a porcentagem de lucro
  # efetua o cálculo
  porcentagem_lucro = ((novo_valor * 100) / valor_anterior) - 100

  print("A porcentagem de lucro foi de: {0}%".format(porcentagem_lucro))

  # O resultado será 13,33
  
if __name__== "__main__":
  main()

Ex: 5 - Uma loja repassa 5% do lucro a seus vendedores. Se um produto custa R$ 70,00, qual o valor em reais repassado a um determinado vendedor? Veja o código em Python:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

# Algoritmo que calcula porcentagem em Python
def main():
  valor = 70.0 # valor do produto
  percentual = 5.0 / 100.0 # 5%

  # calcula a comissão
  comissao = percentual * valor

  # mostra o resultado
  print("O valor repassado ao vendedor é: {0}".format(comissao))

  # O resultado será 3,5
  
if __name__== "__main__":
  main()



Desafios, Exercícios e Algoritmos Resolvidos de Python

Veja mais Dicas e truques de Python

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 29 usuários muito felizes estudando em nosso site.