Como Converter Texto para Número com Python
Aprenda a converter texto para número com Python! Transforme o texto “vinte e um” no número 21 usando Python.
Há duas formas de converter texto para número em Python. Se o texto é um número em formato de string (como “21”), use as funções nativas int("21") ou float("3.14"). Se o texto está por extenso (como “vinte e um”), use a biblioteca numerizer (em inglês) junto de um tradutor como o deep-translator, que ajuda a converter a expressão para o número 21.
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
O que você aprende neste vídeo
Resposta rápida: Nesta aula, o instrutor ensina a converter texto por extenso em número com Python, pegar um número escrito (“vinte e um”) e transformar no número real. Ele usa uma biblioteca pronta (numerizer) que faz isso automaticamente, inclusive identificando os números dentro de uma frase, e mostra como instalá-la e usá-la para depois fazer contas com esses valores.
Neste vídeo (14 min):
- 0:00 - O objetivo: converter um número escrito por extenso no número real.
- 2:00 - A biblioteca pronta (numerizer) que faz a conversão automaticamente.
- 6:00 - Identificar os números dentro de uma frase inteira.
- 8:00 - Instalar a biblioteca (
pip install) e usá-la. - 12:00 - Fazer contas com os números convertidos.
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Como Converter Texto para Número com Python
Na aula de hoje, vou te mostrar como converter texto para número com Python. Isso mesmo! Você aprenderá a transformar um número escrito por extenso, como “vinte e um”, no número 21 usando Python.
Utilizaremos a biblioteca Numerizer do Python, responsável por essa conversão de texto para número.
Com este código, você conseguirá converter texto para número com Python de forma fácil e prática. Faça o download do material disponível na aula e venha comigo aprender, pois vou te ensinar o passo a passo para esse conversor.
Importância da Transcrição de Texto para Número com Python
Por que é tão importante conseguir converter texto para número com Python? Imagine que você esteja analisando uma base de dados e queira extrair os valores de contratos dela. No entanto, esses valores estão escritos por extenso.
Fazer essa transcrição de texto para número não será uma tarefa fácil. Isso ocorre porque é necessário fazer com que o Python identifique que o padrão de texto corresponde a um número.
Em alguns casos, como “um”, “dez” e “duzentos”, a correspondência é mais direta, pois uma única palavra corresponde a um número.
Contudo, em outros cenários, como “mil quinhentos e trinta e sete“, cada palavra individualmente corresponde a um número, mas juntas elas se referem a um único número: 1537.
Criar a lógica para esse código seria muito trabalhoso. No entanto, a biblioteca Numerizer em Python já faz isso para nós.
Instalando e Importando a Biblioteca Numerizer e Deep-Translator
Para nos auxiliar no processo de converter texto para número com Python, utilizaremos a biblioteca Numerizer.
No entanto, essa biblioteca opera apenas com textos em inglês. Portanto, faremos uso da biblioteca Deep-Translator, que exploramos em uma aula anterior, para nos ajudar a traduzir o texto para inglês antes de realizar a conversão.
Então, vamos instalar essas duas bibliotecas. No terminal do seu editor de código, execute o comando:
pip install numerizer deep-translatorFeito isso, podemos importá-las para o nosso código.
from numerizer import numerize
from deep_translator import GoogleTranslatorDa biblioteca Numerizer, importaremos a função numerize, responsável pela conversão do texto por extenso para número.
E da Deep-Translator, importaremos o GoogleTranslator, que será o serviço de tradução que utilizaremos para traduzir nosso texto do português para o inglês antes de realizar a conversão para número.
Como a Função Numerize Funciona
A aplicação da função numerize é bastante simples; basta passar o texto que você deseja transformar em número, e pronto. Lembre-se de que esse texto precisa estar em inglês para que o numerize possa realizar a conversão.
from numerizer import numerize
from deep_translator import GoogleTranslator
texto = "twenty nine"
numero = numerize(texto)
print(numero)
print(type(numero))
Observe que, junto com o print do número, verifiquei também o tipo da variável numero. Apesar de ser representado numericamente (29), ele ainda é uma variável de texto (str).
No entanto, o Python consegue converter facilmente essa string para um número inteiro utilizando a função int() ou float().
Dessa forma, podemos adaptar o nosso código da seguinte maneira.
from numerizer import numerize
from deep_translator import GoogleTranslator
texto = "twenty nine"
numero = int(numerize(texto))
print(numero)
print(type(numero))
O numerize não realiza a conversão direta do número para int porque pode ser usado para converter números que estão escritos por extenso dentro de um texto. Por exemplo:
from numerizer import numerize
from deep_translator import GoogleTranslator
texto = "I have twenty-nine computers"
texto_numerizado = numerize(texto)
print(texto_numerizado)
Nesse caso, ele não poderia converter todo o texto para inteiro, pois isso resultaria em erro.
Converter Texto para Número com Python – Numerizer e Deep-Translator
Já vimos que a biblioteca Numerizer consegue realizar de forma eficiente a conversão de textos em inglês para textos em inglês com números, ou simplesmente converter o número por extenso para a forma numérica.
No entanto, provavelmente, você desejará utilizar essa biblioteca para trabalhar com textos em português ou com uma base de dados em português. Para esses casos, utilizaremos a biblioteca deep_translator.
No início da aula, deixei um link para que você possa rever as etapas detalhadas dessa biblioteca. De forma resumida, precisamos apenas criar um tradutor a partir dessa biblioteca, especificando o idioma original do texto (source) e o idioma para o qual você deseja traduzir (target).
from numerizer import numerize
from deep_translator import GoogleTranslator
texto = "Oi, eu sou o Lira, tenho vinte e nove anos e ganho dois mil reais."
tradutor = GoogleTranslator(source="pt", target="en")
texto_traduzido = tradutor.translate(texto)
texto_numerizado = numerize(texto_traduzido)
print(texto_numerizado)Aqui, estamos criando nosso tradutor, passando os idiomas que iremos utilizar. Traduzimos esse texto de português para inglês e, em seguida, “numerizamos” o texto, ou seja, convertemos o texto para número com Python.
O resultado será a mesma frase, só que escrita em inglês e com os números representados numericamente.

Provavelmente, você desejará seu texto em português também. Nesse caso, podemos criar um segundo tradutor que irá pegar esse texto com os números escritos de forma correta e traduzir para o português novamente.
from numerizer import numerize
from deep_translator import GoogleTranslator
texto = "Oi, eu sou o Lira, tenho vinte e nove anos e ganho dois mil reais."
tradutor = GoogleTranslator(source="pt", target="en")
texto_traduzido = tradutor.translate(texto)
texto_numerizado = numerize(texto_traduzido)
print(texto_numerizado)
tradutor2 = GoogleTranslator(source="en", target="pt")
texto_numerizado_pt = tradutor2.translate(texto_numerizado)
print(texto_numerizado_pt)
Entretanto, esse processo adicional só é necessário caso esteja trabalhando com algum texto que precise ser mantido.
Se estiver lidando com uma base de dados em que uma coluna contenha apenas os números escritos por extenso, não será necessário traduzir novamente para o português. Basta traduzir para o inglês e, em seguida, converter para número.
from numerizer import numerize
from deep_translator import GoogleTranslator
texto = "vinte e nove"
tradutor = GoogleTranslator(source="pt", target="en")
texto_traduzido = tradutor.translate(texto)
texto_numerizado = numerize(texto_traduzido)
numero = float(texto_numerizado)
print(numero)
print(type(numero))
Dessa forma, você conseguiria tratar a coluna de uma tabela que contenha os números escritos por extenso, convertendo-os para o formato numérico.
Perguntas frequentes
1. Como converter texto para número em Python?
Para texto que já é um número (string ’21’), use int() ou float(). Para números por extenso (‘vinte e um’), use a biblioteca numerizer, que interpreta a expressão em palavras e devolve o valor numérico correspondente.
2. Qual a diferença entre int() e float() em Python?
int() converte para número inteiro, sem casas decimais (int(’21’) vira 21). float() converte para número com casas decimais (float(‘3.14’) vira 3.14). Use int para contagens e float quando houver parte fracionária.
3. Como converter número por extenso em Python?
Use a biblioteca numerizer: numerize(‘twenty one’) retorna ’21’. Como ela trabalha em inglês, números em português podem ser traduzidos antes com o deep-translator e então convertidos para o valor numérico.
4. O que fazer se o texto não for um número válido?
int() e float() geram um erro (ValueError) quando o texto não representa um número. Para tratar isso, use try/except ao redor da conversão e trate o caso inválido, evitando que o programa pare inesperadamente.
Conclusão – Como Converter Texto para Número com Python
Nessa aula, você aprendeu como converter texto para número com Python. Utilizando a biblioteca Numerizer do Python, foi possível transformar um número escrito por extenso em uma representação numérica.
Além disso, junto com essa biblioteca, você aprendeu a utilizar a Deep-Translator para traduzir seus textos de inglês para português e vice-versa, permitindo a conversão de texto para número em qualquer idioma necessário.
Essa ferramenta pode ser extremamente útil em situações em que seja necessário analisar contratos que contenham valores escritos por extenso ou mesmo bases de dados com colunas preenchidas dessa forma.
Hashtag Treinamentos
Para acessar outras publicações de Python, clique aqui!


