Article image
Anderson Martins
Anderson Martins27/12/2025 17:33
Compartilhe

Dízima Periódica em Código

  • #Python

Sobre a Matemática

Dízima periódica é um número decimal infinito e repetitivo, no qual um ou mais algarismos se repetem indefinidamente após a vírgula. Surge quando uma divisão não é exata e o resto passa a se repetir.

Na divisão 31/99 o quociente é 0,313131… onde esse resultado é um exemplo de dízima periódica. Os algarismos 3 e 1 (que formam o período) repetem-se infinitamente.

Sobre o Código

Na linguagem de programação Python,

def – é a palavra-chave que define uma função em Python, permitindo agrupar instruções reutilizáveis.

= – é o operador de atribuição que associa um valor a uma variável.

// – é o operador de divisão inteira, retorna apenas a parte inteira do quociente.

{} – delimitador de dicionário,estrutura de dados que armazena pares chave–valor.

[] – delimitador da lista, estrutura de dados ordenada e mutável para armazenar vários valores.

while – é a estrutura de repetição que executa um bloco enquanto a condição for verdadeira.

!= – é o operador relacional que verifica se dois valores são diferentes.

if..in.. – é a estrutura condicional que verifica se um valor pertence a uma coleção.

restos[resto] – acessa ou armazena um valor no dicionário usando a chave resto.

[inicio_periodo:] – é o fatiamento (em inglês, slicing) de lista ou string a partir de um índice até o final.

[:inicio_periodo] – é o fatiamento de lista ou string do início até um índice específico.

break – interrompe imediatamente a execução de um laço.

*= – é o operador de atribuição com multiplicação (multiplica e atribui).

.append – é o método de lista que adiciona um elemento ao final.

str() – é a função que converte um valor para o tipo string.

%= – é o operador de atribuição com módulo (resto da divisão).

+= – é o operador de atribuição com soma (incrementa um valor).

else: – é o bloco executado quando a condição anterior não é satisfeita.

f"..." – f-string, abreviação de literal de string formatado (em inglês, formatted string literal), permite inserir variáveis dentro de textos.

.join – une elementos de uma lista de strings em uma única string.

print() – exibe informações no console (saída padrão).

from – importa elementos específicos de um módulo.

fractions – é o módulo da biblioteca padrão para trabalhar com números racionais.

import – é o comando para carregar módulos ou bibliotecas.

Fraction – é a classe que representa frações exatas (números racionais).

float() - é a função que converte um valor para número decimal de ponto flutuante.

# – é usado para criar comentários ao código, que são notas para se entender melhor o que o código faz.

Vamos ao código…

def dizima_periodica(numerador, denominador):
  """
  Calcula a dízima periódica de uma fração
  e identifica o período da repetição.
  """
  
  parte_inteira = numerador // denominador
  resto = numerador % denominador
  
  restos = {}
  casas_decimais = []
  posicao = 0

  while resto != 0:
      # Se o resto já apareceu, existe período
      if resto in restos:
          inicio_periodo = restos[resto]
          periodo = casas_decimais[inicio_periodo:]
          nao_periodica = casas_decimais[:inicio_periodo]
          break
      
      restos[resto] = posicao
      resto *= 10
      casas_decimais.append(str(resto // denominador))
      resto %= denominador
      posicao += 1
  else:
      # Caso não exista dízima periódica
      periodo = []
      nao_periodica = casas_decimais

  # Montagem da representação decimal
  if periodo:
      decimal = f"{parte_inteira},{''.join(nao_periodica)}({''.join(periodo)})"
  else:
      decimal = f"{parte_inteira},{''.join(casas_decimais)}"

  print(f"Fração: {numerador}/{denominador}")
  print(f"Representação decimal: {decimal}")

# Exemplo clássico de dízima periódica
dizima_periodica(31, 99)

image

Saída do código (valor de retorno)…

Fração: 31/99

Representação decimal: 0,(31)

# Utilizando biblioteca Python para frações
from fractions import Fraction

def dizima_periodica_com_biblioteca(numerador, denominador):
  """
  Representa uma fração como dízima periódica
  utilizando biblioteca Python.
  """
  
  fracao = Fraction(numerador, denominador)
  valor_decimal = float(fracao)

  print(f"Fração: {fracao}")
  print(f"Valor decimal aproximado: {valor_decimal}")
  print("Observação: se o decimal for infinito e repetitivo, trata-se de uma dízima periódica.")

# Exemplo clássico
dizima_periodica_com_biblioteca(31, 99)

image

Saída do código (valor de retorno)…

Fração: 31/99

Valor decimal aproximado: 0.31313131313131315

Observação: se o decimal for infinito e repetitivo, trata-se de uma dízima periódica.

Fonte:

  • Editora Didática Paulista. Ensino Didático 2000: Ensino Fundamental e Ensino Médio. Sorocaba: Editora Didática Paulista, [s.d.].
  • Códigos e comentários gerados por ChatGPT com revisão nossa.
  • https://docs.python.org/pt-br/3/ [Documentação Oficial do Python]
Compartilhe
Comentários (0)