Comandos da linguagem PseudoPy

Sintaxe inspirada em Python, com comandos em português e blocos por indentação.

Este guia foi otimizado para consulta rápida em aula e estudo individual.

Aprenda mais rápido com o editor interativo

Teste os exemplos em tempo real no editor principal e valide a lógica com terminal integrado.

Abrir editor agora

Estrutura obrigatória

inicio_algoritmo nome_do_algoritmo
    # código aqui
fim_algoritmo

Comandos e exemplos

1) Declaração de variáveis

Use inteiro, real, texto, logico, lista, dicionario ou var.

inteiro idade = 18
real media = 7.5
texto nome = "Ana"
logico ativo = verdadeiro
lista notas = [7, 8.5, 10]
dicionario aluno = {"nome": "Ana", "idade": 20}
var qualquer = 10

Tipos suportados de variáveis

Limitações: listas são unidimensionais e coleções não têm métodos por ponto (use funções em português).

2) Entrada de dados - leia(...)

texto nome = leia("Digite seu nome: ")
inteiro idade = leia("Digite sua idade: ")
lista notas = leia("Notas (ex.: 7,8,9 ou [7,8,9]): ")
dicionario aluno = leia("Aluno (ex.: nome:Ana,idade:20 ou {\"nome\":\"Ana\",\"idade\":20}): ")

Limitações: em declaração, a entrada é convertida para o tipo declarado; em atribuição, tenta seguir o tipo atual da variável.

Observação: para lista, aceita JSON ([1,2,3]) ou valores por vírgula; para dicionario, aceita JSON ({"nome":"Ana"}) ou pares chave:valor.

3) Saída de dados - escreva(...)

escreva("Olá")
escreva("Nome:", nome)
escreva("Resultado:", idade + 2)

Limitações: apenas saída em linha de terminal (sem formatação avançada).

4) Processamento (atribuição)

inteiro x = 5
x = x + 10
x = x * 2

Limitações: sem operadores especiais como +=, -= etc.

dicionario pessoa = {"nome": "Ana"}
pessoa.nome = "Bia"       # funciona (chave como identificador)
escreva(pessoa["nome"])    # leitura por chave

Limitações: atribuição por índice/chave (pessoa["nome"] = ...) não é suportada no momento.

5) Listas

Você pode acessar por índice e usar funções utilitárias em português.

lista nomes = ["Ana", "Bia"]
adicionar(nomes, "Caio")
escreva(nomes[0])
escreva(tamanho(nomes))

inserir(nomes, 1, "Duda")
remover(nomes, 0)

se contem(nomes, "Bia"):
    escreva("Bia está na lista")

Limitações: índices devem ser inteiros e dentro da faixa da lista.

5.1) Dicionários

Use pares chave:valor para organizar dados e consultar por chave.

dicionario pessoa = {"nome": "Ana", "idade": 20}
escreva(pessoa["nome"])
escreva(tamanho(pessoa))

se contem(pessoa, "idade"):
    escreva("Tem idade")

Limitações: em contem, para dicionário a verificação é por chave.

Observação: acesso por ponto também funciona quando a chave é identificador (ex.: pessoa.nome).

5.2) Funções utilitárias por tipo

6) Condicional - se / senaose / senao

se idade >= 18:
    escreva("Maior de idade")
senaose idade >= 16:
    escreva("Quase")
senao:
    escreva("Menor")

Limitações: os blocos dependem de indentação correta (4 espaços recomendados).

7) Repetição - enquanto

inteiro i = 1
enquanto i <= 3:
    escreva("i =", i)
    i = i + 1
texto opcao = ""
enquanto verdadeiro:
    opcao = leia("1-continuar / 0-sair: ")
    se opcao == "0":
        pare

Limitações: loops infinitos são interrompidos por limite de segurança interno e por limite global de tempo de execução.

Observação: declaração de variável dentro de loop não é permitida (declare fora e atribua dentro).

8) Repetição - para

para i de 1 ate 5:
    escreva(i)

para j de 10 ate 0 passo -2:
    escreva(j)

Limitações: o ate é inclusivo, passo não pode ser zero.

9) Comentários

# isto é um comentário
inteiro x = 1  # comentário ao lado

Limitações: apenas comentário de linha com #.

10) Funções

funcao soma(a, b):
    retorne a + b

inteiro total = soma(2, 3)
escreva("Total:", total)

Observação: leia(...) dentro de função/método é suportado pelo terminal integrado.

11) Classes e métodos

classe Pessoa:
    funcao init(nome, idade):
        eu.nome = nome
        eu.idade = idade

    funcao apresentar():
        escreva("Nome:", eu.nome)

var p = Pessoa("Ana", 20)
p.apresentar()

Limitações: construtor por convenção no método init.

12) Operadores suportados

Aritméticos: +, -, *, /, %

Comparação: ==, !=, >, >=, <, <=

Lógicos: e, ou, nao

Booleanos: verdadeiro, falso

Acesso: obj.propriedade e colecao[indice_ou_chave]

Limitações: prioridade segue o avaliador de expressões do JavaScript.

13) Execução no editor

Limitações gerais da linguagem (versão básica)

Exemplo completo

inicio_algoritmo exemplo_completo
    texto nome = leia("Nome: ")
    inteiro n = leia("Número: ")

    se n % 2 == 0:
        escreva(nome, "digitou par")
    senao:
        escreva(nome, "digitou ímpar")

    lista valores = [1, 2, 3]
    adicionar(valores, n)
    escreva("Total de valores:", tamanho(valores))

    inteiro soma = 0
    para i de 1 ate n:
        soma = soma + i

    escreva("Soma 1..n =", soma)
fim_algoritmo
← Voltar ao editor