A Portuguese translation of Python: functions, modules and syntax
Project description
Portugython
Escreva Python em Português. Portugython traduz funções, tipos e módulos da biblioteca padrão do Python para nomes em português.
Instalação
pip install portugython
Uso básico
from portugython import *
escreva("Olá, Mundo!")
nome = leia("Qual é seu nome? ")
escreva("Olá,", nome)
numeros = Lista([1, 2, 3, 4, 5])
numeros.adicione(6)
numeros.classifique(reverso=Verdadeiro)
escreva(numeros)
pares = filtro(lambda x: x % 2 == 0, numeros)
escreva("Pares:", pares)
resultado = se(tamanho(pares) > 0, "tem pares", "sem pares")
escreva(resultado)
Módulos da biblioteca padrão
Cada módulo da stdlib tem uma versão em português que pode ser importada separadamente.
aleatorio (random)
from portugython import aleatorio
aleatorio.semente(42)
n = aleatorio.inteiro_aleatorio(1, 100)
item = aleatorio.escolha(["pedra", "papel", "tesoura"])
lista = [1, 2, 3, 4, 5]
aleatorio.embaralhe(lista)
amostra = aleatorio.amostra(range(50), k=5)
matematica (math)
from portugython import matematica
print(matematica.PI)
print(matematica.raiz_quadrada(16))
print(matematica.fatorial(10))
print(matematica.seno(matematica.PI / 2))
print(matematica.mdc(48, 18))
print(matematica.combinacoes(10, 3))
sistema (os + sys)
from portugython import sistema
pasta = sistema.diretorio_atual()
arquivos = sistema.listar_diretorio(".")
sistema.criar_diretorios("nova/pasta", existe_ok=Verdadeiro)
sistema.renomear("antigo.txt", "novo.txt")
print(sistema.versao)
print(sistema.plataforma)
db = sistema.variavel_ambiente("DATABASE_URL", "sqlite:///app.db")
tempo (time + datetime)
from portugython import tempo
agora = tempo.agora()
print(agora.formatar("%d/%m/%Y %H:%M"))
hoje = tempo.hoje()
print(hoje.ano, hoje.mes, hoje.dia)
dur = tempo.Duracao.de(dias=7, horas=2)
print(dur.total_segundos)
tempo.dormir(0.1)
colecoes (collections)
from portugython import colecoes
# Contagem
votos = colecoes.Contador(["sim", "nao", "sim", "sim", "nao"])
print(votos.mais_comuns(1))
# Fila dupla
d = colecoes.Deque([1, 2, 3])
d.adicione_esquerda(0)
d.adicione_direita(4)
# Pilha
pilha = colecoes.Pilha()
pilha.empurre("a")
pilha.empurre("b")
print(pilha.retire())
# Fila
fila = colecoes.Fila()
fila.enfileire("primeiro")
fila.enfileire("segundo")
print(fila.desenfileire())
# Tupla com campos nomeados
Ponto = colecoes.tupla_com_nome("Ponto", ["x", "y"])
p = Ponto(3, 4)
print(p.x, p.y)
iteradores (itertools)
from portugython import iteradores
# Combinatória
for combo in iteradores.combine([1, 2, 3, 4], 2):
print(combo)
# Produto cartesiano
for par in iteradores.produto("AB", "12"):
print(par)
# Acumulação
totais = list(iteradores.acumule([1, 2, 3, 4, 5]))
# Encadeamento
unido = list(iteradores.encadeie([1, 2], [3, 4], [5]))
funcional (functools)
from portugython import funcional
# Redução
total = funcional.reduzido(lambda a, b: a + b, range(1, 11))
# Função parcial
multiplicar_por_3 = funcional.parcial(lambda a, b: a * b, 3)
print(multiplicar_por_3(7))
# Memoização
@funcional.cache
def fibonacci(n):
if n < 2:
return n
return fibonacci(n - 1) + fibonacci(n - 2)
# Composição
dobrar = lambda x: x * 2
somar_um = lambda x: x + 1
dobrar_e_somar = funcional.compor(somar_um, dobrar)
print(dobrar_e_somar(5))
expressao (re)
from portugython import expressao
# Busca simples
m = expressao.buscar(r"\d+", "pagina 42")
if m:
print(m.group())
# Todos os resultados
numeros = expressao.encontrar_todos(r"\d+", "1 mais 2 igual 3")
# Substituição
limpo = expressao.substituir(r"\s+", " ", "texto com espacos")
# Padrão reutilizável
email = expressao.Padrao(r"[\w.+-]+@[\w-]+\.[a-z]{2,}")
if email.encontrar("contato@example.com"):
print("E-mail válido")
Referência de builtins
Entrada / Saída
| Português | Python |
|---|---|
escreva |
print |
leia |
input |
abra |
open |
Tipos
| Português | Python |
|---|---|
inteiro |
int |
texto |
str |
decimal |
float |
logico |
bool |
lista |
list |
dicionario |
dict |
conjunto |
set |
tupla |
tuple |
intervalo |
range |
Constantes
| Português | Python |
|---|---|
Verdadeiro |
True |
Falso |
False |
Nenhum |
None |
Funções de sequência
| Português | Python |
|---|---|
tamanho |
len |
soma |
sum |
maximo |
max |
minimo |
min |
absoluto |
abs |
classificado |
sorted |
reverso |
reversed |
enumerado |
enumerate |
comprimido |
zip |
mapeado |
map |
filtrado |
filter |
Operadores lógicos
| Português | Python |
|---|---|
nao(x) |
not x |
e(a, b) |
a and b |
ou(a, b) |
a or b |
Funções utilitárias
| Português | Python |
|---|---|
se(c, a, b) |
a if c else b |
para_cada(f, it) |
list(map(f, it)) |
filtro(f, it) |
list(filter(f, it)) |
reduzido(f, it) |
functools.reduce(f, it) |
Transpilador de palavras-chave
Portugython inclui um transpilador completo que traduz a sintaxe do Python (palavras-chave) para português. Isso permite escrever programas Python inteiramente em português.
CLI: ptpy
ptpy meu_programa.ptpy # executa um arquivo .ptpy
ptpy -c 'para i em intervalo(3): escreva(i)' # executa inline
ptpy --mostrar meu_programa.ptpy # imprime o Python equivalente
API Python
from portugython import traduzir, executar_texto, executar_arquivo
# Traduzir uma string
codigo_pt = """
defina fatorial(n):
se n <= 1:
retorne 1
senao:
retorne n * fatorial(n - 1)
"""
print(traduzir(codigo_pt))
# def fatorial(n):
# if n <= 1:
# return 1
# else:
# return n * fatorial(n - 1)
# Executar diretamente
executar_texto("para i em intervalo(3):\n escreva(i)")
# Executar um arquivo .ptpy
executar_arquivo("meu_programa.ptpy")
Programa completo em português (.ptpy)
# fatorial.ptpy
importe portugython
defina fatorial(n):
se n <= 1:
retorne 1
senao:
retorne n * fatorial(n - 1)
defina verificar_primo(n):
se n < 2:
retorne Falso
para i em intervalo(2, n):
se n % i == 0:
retorne Falso
retorne Verdadeiro
primos = [x para x em intervalo(2, 20) se verificar_primo(x)]
escreva("Primos:", primos)
para n em intervalo(1, 8):
escreva(f"{n}! = {fatorial(n)}")
tente:
resultado = 10 / 0
exceto ZeroDivisionError como err:
escreva("Erro capturado:", err)
finalmente:
escreva("Pronto!")
Tabela de palavras-chave
| Português | Python | Português | Python | |
|---|---|---|---|---|
se |
if |
senao |
else |
|
senaose |
elif |
para |
for |
|
enquanto |
while |
parar |
break |
|
continuar |
continue |
passar |
pass |
|
defina |
def |
classe |
class |
|
retorne |
return |
produzca |
yield |
|
anonima |
lambda |
importe |
import |
|
de |
from |
como |
as |
|
tente |
try |
exceto |
except |
|
finalmente |
finally |
levante |
raise |
|
com |
with |
nao |
not |
|
e |
and |
ou |
or |
|
em |
in |
eh |
is |
|
excluir |
del |
afirmar |
assert |
|
global |
global |
naolocal |
nonlocal |
|
assincronico |
async |
aguardar |
await |
|
Verdadeiro |
True |
Falso |
False |
|
Nenhum |
None |
Nota: Palavras como
e,ou,de,comeemsão palavras-chave reservadas no contexto de arquivos.ptpy. Evite usá-las como nomes de variáveis nesses arquivos, assim como não se usaifouforcomo variáveis em Python normal.
Contribuir
- Crie um fork deste repositório
- Crie uma branch nova a partir de main
- Envie um pull request
Licença
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file portugython-0.4.1.tar.gz.
File metadata
- Download URL: portugython-0.4.1.tar.gz
- Upload date:
- Size: 50.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca481a5401705ff9923855c89181df0935d670464de203f05b24879942e3564e
|
|
| MD5 |
6d4b44506995e55a28efb6c5af96530b
|
|
| BLAKE2b-256 |
9b42af34906b1c1069dcddd9f86deda7f2d8444df84adac8661eed4ecaa8cf31
|
File details
Details for the file portugython-0.4.1-py3-none-any.whl.
File metadata
- Download URL: portugython-0.4.1-py3-none-any.whl
- Upload date:
- Size: 53.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b058add47d20d56245c75cae3ef5a59ab560ef1f82c5037c69c754ed25547b7a
|
|
| MD5 |
79909ac31835a44f675a8ff92a416b11
|
|
| BLAKE2b-256 |
5cc46c6dd051d422f6405f48e3ea9265e1e7fb6382f791737787e4ef3e49cafa
|