Dízima Periódica em Código
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)


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)

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ódigo gerado por ChatGPT com revisão nossa.
- https://docs.python.org/pt-br/3/ [Documentação Oficial do Python]



