2  Primeiros passos no Python

2.1 Introdução

Criado em 1989 por Guido van Rossum no Centro de Matemática e Tecnológia da Informação na Holanda, o Python é uma linguagem de programação amplamente utilizada em ciência de dados, estatística e desenvolvimento científico em geral. Ao longo desta disciplina, Python será utilizado como ferramenta central para manipular dados, realizar cálculos numéricos, produzir gráficos e implementar rotinas que aparecem com frequência em trabalhos empíricos em economia.

Neste momento inicial do curso, o objetivo não é compreender toda a linguagem nem escrever programas complexos. O foco desta aula é muito mais operacional: aprender a executar comandos simples, entender como o ambiente de programação funciona e desenvolver familiaridade com a lógica básica de interação com o computador por meio de código. É importante destacar que programar não é memorizar comandos, mas aprender a ler, testar e corrigir código. Erros farão parte do processo desde o início. Isso não indica falta de habilidade nem desconhecimento do conteúdo; pelo contrário, erros são a principal fonte de informação sobre como o programa está sendo interpretado pelo computador.

Figura 2.1: Meu cachorro Clayton dando seus primeiros passos em Python.

Ao final deste capítulo, espera-se que você seja capaz de:

  • Executar comandos simples em Python.
  • Reconhecer mensagens de erro e localizar a origem do problema.
  • Desenvolver uma postura ativa de experimentação e verificação.

Essas competências serão usadas continuamente ao longo do curso e são essenciais para o desenvolvimento em tópicos futuros, como construção de funções, manipulação de objetos, análise de dados e visualização. Antes de aprender novos comandos, no entanto, é fundamental compreender o ambiente no qual o programa roda e como ocorre a interação entre o usuário e o interpretador.

2.1.1 Pré-requisitos

Este foi escrito para que o aluno que acompanhou e absorveu o conteúdo do capítulo anterior, sobre fundamentos de computação, seja plenamente capaz de acompanhar. Não há outros pré-requisitos.

2.2 O Python

Assim como tudo na vida, o Python é uma linguagem de programação com muitas qualidades mas que também possui seus defeitos (em geral ligados à velocidade de execução dos programas). Em sendo uma linguagem de alto nível, é uma linguagem bastante indicada, por exemplo, para aplicações que demandam replicabilidade, dada a facilidade de escrever e interpretar o código. Por outro lado, aplicações que demandam uma interação mais eficiente entre o código e o gerenciamento de memória da máquina, por exemplo, podem se beneficiar de outras linguagens.

No entanto, o conjunto de qualidades do Python e as inúmeras bibliotecas que foram desenvolvidas nos últimos anos parecem ter mais do que compensado as falhas da linguagem. Hoje o Python é uma das principais linguagens de programação (senão a principal) quando o assunto é ciência dos dados e aprendizado de máquina (data science e machine learning, respectivamente). É também uma das principais linguagens de programação por trás de vários dos sistemas de grandes empresas, como Uber, GoldmanSachs, Netflix e Google (fonte: link).

Por todos esses fatores, Python é uma das linguagens com a comunidade mais ativa em fóruns online voltados à programação e é a linguagem que mais cresce no mundo. As figuras abaixo ilustram bem esse crescimento da linguagem nos últimos anos:

Figura 2.2: Indíce PyPL de popularidade de linguagens. Janeiro de 2026

2.2.1 Como instalar

Existe mais de uma forma de instalar o Python no seu sistema e ainda mais formas de interagir com a linguagem. Você pode baixar o Python puro (https://www.python.org/downloads/) e instalá-lo diretamente em sua máquina, porém, essa distribuição vem com poucos pacotes já instalados e instalá-los um a um requer paciência. Além disso, a instalação do Python puro pode demandar algumas alterações em configurações do sistema via prompt de comando do Windows, por exemplo, para que seja possível dialogar com a linguagem.

Uma forma mais simples de instalar o Python em seu computador é através da distribuição Anaconda. Além de ser gratuita e já conter vários dos pacotes que iremos utilizar, ela nos fornece diversas ferramentas que facilitam nossa interação com a linguagem. É hoje uma das distribuições do Python mais populares no mundo! Recomendo fortemente utilizar esse caminho.

O passo a passo a seguir foi feito para o sistema Windows 10. Embora o caminho seja parecido, podem haver algumas divergências em relação ao passo a passo para sistemas Linux e MacOS.

  1. Baixar e instalar o Anaconda é fácil. Basta acessar a aba de downloads no site do Anaconda, fornecer um email para cadastro e baixar o arquivo executável necessário para a instalação a depender do seu sistema operacional.
Figura 2.3: Tela de download da distribuição Anaconda. Janeiro de 2026
  1. Depois de baixado, basta clicar duas vezes sobre o arquivo e ir acompanhando o instalador, mantendo sempre as opções padrão e escolhendo a opção de instalação preferida. Note, porém que a instalação para todos os usuários do computador requer permissões de administrador.
Figura 2.4: Tela de instalação da distribuição Anaconda. Janeiro de 2026
  1. Pronto, o Anaconda está instalado e os principais pacotes e programas que utilizaremos também!

2.2.2 Anaconda e suas particularidades

Como dito acima, Anaconda é uma distribuição do Python para computação científica (e.g, ciência de dados e aprendizado de máquina), que visa simplificar o gerenciamento e a implantação de pacotes. As versões de pacotes no Anaconda são gerenciadas pelo sistema de gerenciamento de pacotes conda. Através do conda é possível criar ambientes e instalar pacotes distintos de forma a evitar incompatibilidades entre versões de pacotes já instalados.

Além disso, o Anaconda traz consigo o Anaconda Navigator, um ambiente user-friendly para a gestão de pacotes e aplicativos necessários para a utilização do Python sem que seja preciso ter qualquer conhecimento acerca da utilização correta de terminais. Ao abrir o Anaconda Navigator no Windows, você deve ver algo assim:

Figura 2.5: Tela inicial do Anaconda Navigator. Janeiro de 2026

É possível instalar pacotes e fazer muito mais coisa diretamente pelo Anaconda Navigator. Para os que tiverem interesse em saber um pouco mais, esse link é um bom começo.

2.2.3 IDEs

Com Anaconda ou sem Anaconda, interagir diretamente com a linguagem ainda depende do uso de um ambiente próprio para esse fim, como no caso das chamadas IDEs. IDE é um acrônimo para Integrated Development Environment, em português, Ambiente de Desenvolvimento Integrado. Ele é um programa que reúne ferramentas necessárias para a construção de outros softwares. A utilização de um IDE ajuda muito os programadores e empresas, pois torna mais rápido o desenvolvimento de aplicações, aumentando a produtividade e reduzindo custos. Existem IDE’s específicas para plataformas, e outras que são mais flexíveis. As mais famosas são o Sublime Text e o Visual Studio Code.

Quais são os componentes típicos de uma IDE?

  • Editor de código-fonte: Permite edição do código nas linguagens de programação suportadas pelo IDE.

  • Preenchimento inteligente: Esse é um recurso trazido pelos IDEs que agiliza o desenvolvimento, pois escreve automaticamente trechos do código como, por exemplo, comandos de função.

  • Compilador: O compilador que você escreveu em uma determinada linguagem de programação para a linguagem de máquina, de modo que os computadores o entendam.

  • Debugger: É outra ferramenta que contribui para no código-fonte, melhorando o desempenho do programa.

  • Geração de código: Com esse recurso, é possível predefinir trechos de códigos para serem usados de modelo em outros projetos, agilizando o desenvolvimento de trabalhos futuros.

Como podemos ver, os IDEs reúnem diversas ferramentas que tornam mais simples a vida dos programadores. Dentre todos os benefícios que a utilização desses programas pode trazer para seus projetos, podemos citar alguns:

  • Reduz o tempo gasto em cada aplicação;
  • Permite o desenvolvimento de um código mais limpo, organizado e legível;
  • Aumenta a produtividade dos desenvolvedores e das empresas;
  • Reduz a quantidade de bugs e falhas no código-fonte;
  • Reúne diversas ferramentas em um só lugar.

2.2.3.1 Spyder

O Spyder é uma ferramenta leve, simples e ao mesmo tempo poderosa. É um IDE Python de código aberto que conta com elementos avançados de edição, depuração e testes interativos. Ele é bastante utilizado para o aprendizado de Data Science, apesar de não fornecer ferramentas tão avançadas nesse sentido como outras disponíveis. Mas ele é prático e seu depurador destaca bem funções, variáveis e erros. Conta também com um recurso de exploração de variáveis, que exibe os conteúdos armazenados dentro de cada uma. Isso poupa a escrita de comandos de impressão de variáveis na tela.

Disponível com a instalação do Anaconda, uma das maiores e mais utilizadas plataformas de distribuição do Python.

2.2.3.2 Jupyter

É um IDE Python gratuito, utilizado principalmente na análise e ciência de dados. Ele é fácil e intuitivo, proporcionando um bom ambiente para iniciantes em Python. Também conta com muitos materiais de referência, tornando-se um dos IDEs mais utilizados pela comunidade. Ele trabalha muito bem com grandes conjuntos de dados. Além disso, é ótimo para a estética do código e atua como uma. É possível visualizar e editar facilmente seu código para deixá-lo mais atraente e apresentável.

Além de tudo isso, a estrutura do Jupyter serve muito ao propósito de tornar o código mais facilmente replicável, já que é possível intercalar células de comentários e explicações em linguagem Markdown com células de código propriamente dito, seguidas do resultado (ou erros) das instruções. Ele possui ainda integrações com HTML, por exemplo, que fazem a diferença principalmente na hora de apresentar projetos ou utilizá-los para o aprendizado. O material aula a aula do nosso curso, por exemplo, foi inteiramente desenvolvido e criado no Jupyter!

2.2.3.3 Google Colaboratory

O Google Colaboratory, carinhosamente chamado de Colab, é um serviço de nuvem gratuito hospedado pelo próprio Google para incentivar a pesquisa de Aprendizado de Máquina e Inteligência Artificial.

É uma ferramenta que permite que você misture código fonte (geralmente em python) e texto rico (geralmente em markdown) com imagens e o resultado desse código, assim como o próprio Jupyter e sua estrutura de notebooks (“cadernos” em inglês). Uma diferença importante é que no caso do Colab os recursos computacionais utilizados para a execução do código são os da Google e não do seu computador. Apesar da versão gratuita disponibilizar apenas algo como 12GB de RAM, é possível ampliar essa capacidade de processamento da máquina virtual por uma conta paga que começa em $5 mensais.

2.3 Construindo o primeiro programa

Uma vez entendido o papel do ambiente de programação, o próximo passo é escrever e executar instruções simples. Isso permite observar diretamente como o Python interpreta o código e produz resultados, estabelecendo a base para todo o restante do curso. Tradicionalmente, o primeiro programa que se escreve em uma nova linguagem chama-se “Hello, World!”, porque tudo o que faz é exibir as palavras “Hello, World!” na tela. No Python, ele se parece com isto:

print('Hello, World!')
Hello, World!

Este é um exemplo de uma instrução print (instrução de impressão), embora na realidade ela não imprima nada em papel. Ela exibe um resultado na tela. As aspas apenas marcam o começo e o fim do texto a ser exibido; elas não aparecem no resultado. Os parênteses indicam que o print é uma função.

2.3.1 Operadores aritméticos

Depois do “Hello, World”, o próximo passo natural é a aritmética. O Python tem operadores, que são símbolos especiais representando operações de computação, como adição e multiplicação. Os operadores \(+\), \(-\) e \(*\) executam a adição, a subtração e a multiplicação, Finalmente, o operador \(**\) executa a exponenciação; isto é, eleva um número a uma potência, como nos seguintes exemplos:

40 + 2
42
43 - 1
42
6 * 7
42
84 / 2
42.0
6 ** 2 + 6
42

Em algumas outras linguagens, o \(^\) é usado para a exponenciação, mas no Python é um operador bitwise, chamado XOR. Se não tiver familiaridade com operadores bitwise, o resultado o surpreenderá. Não abordaremos operadores bitwise neste curso, mas você pode ler sobre eles em http://wiki.python.org/moin/BitwiseOperators.

6 ^ 2
4

2.3.2 Instruções e variáveis

Uma instrução é uma unidade básica de código que produz algum efeito, como criar uma variável ou exibir um valor na tela. Entre os recursos mais importantes de uma linguagem de programação está a possibilidade de trabalhar com variáveis, que permitem armazenar e reutilizar informações ao longo do código. Uma variável pode ser entendida como um nome que faz referência a um valor. No Python, uma variável é criada por meio de uma instrução de atribuição, feita a partir de um sinal de igual.

message = 'And now for something completely different'
n = 17
pi = 3.141592653589793

Esse exemplo faz três atribuições. A primeira atribui uma string a uma nova variável chamada message; a segunda dá o número inteiro \(17\) a n; a terceira atribui o valor (aproximado) de \(\pi\) a pi. Uma vez definida, você pode chamar a variável e fazer operações com o valor a ela atribuído apenas referenciando o seu nome.

n + 25
42
z = n*2 + 16
print(z)
50

Os programadores geralmente escolhem nomes significativos para as suas variáveis – eles documentam o uso da variável. Nomes de variáveis podem ser tão longos quanto você queira. Podem conter tanto letras como números, mas não podem começar com um número. O caractere de sublinhar (_) pode aparecer em um nome. Muitas vezes é usado em nomes com várias palavras, como full_name.

Se você der um nome ilegal a uma variável, recebe um erro de sintaxe:

76trombones = 'big parade'
  Cell In[11], line 1
    76trombones = 'big parade'
     ^
SyntaxError: invalid decimal literal
class = 'Advanced Theoretical Zymurgy'
  Cell In[12], line 1
    class = 'Advanced Theoretical Zymurgy'
          ^
SyntaxError: invalid syntax

76trombones é ilegal porque começa com um número. Mas o que há de errado com class?

A questão é que class é uma das palavras-chave do Python. O interpretador usa palavras-chave para reconhecer a estrutura do programa e elas não podem ser usadas como nomes de variável. O Python 3 tem estas palavras-chave:

and         del         from        None        True
as          elif        global      nonlocal    try
assert      else        if          not         while
break       except      import      or          with
class       False       in          pass        yield
continue    finally     is          raise
def         for         lambda      return

Você não precisa memorizar essa lista. Na maior parte dos ambientes de desenvolvimento, as palavras-chave são exibidas em uma cor diferente; se você tentar usar uma como nome de variável, vai perceber.

2.3.3 Leitura de erros

Você viu anteriormente que quando o Python se depara com algum erro no código ele interrompe a execução e exibe uma mensagem de erro. Essa mensagem não é aleatória: ela segue uma estrutura relativamente padronizada e contém informações úteis para diagnosticar o que aconteceu. De forma geral, uma mensagem de erro em Python possui três componentes principais:

  1. O tipo do erro. Indica a natureza do problema (por exemplo, SyntaxError, NameError, TypeError). Esse é o ponto de partida para entender que tipo de falha ocorreu.
  2. A descrição do erro. Uma frase curta que detalha o problema detectado pelo interpretador, como “invalid syntax” ou “name is not defined”.
  3. A localização do erro. Normalmente inclui o arquivo, a linha do código e, em alguns casos, um indicador visual apontando o ponto exato onde o Python identificou o problema.

Considere o seguinte exemplo:

print("Olá mundo"
  Cell In[13], line 1
    print("Olá mundo"
                     ^
_IncompleteInputError: incomplete input

Ao executar esse código, o Python retorna um erro do tipo _IncompleteInputError. Logo após o tipo há uma breve descrição do erro, que nesse caso é incomplete input. Isso ocorre porque o parêntese de fechamento está ausente, tornando o código inválido do ponto de vista da linguagem. A própria mensagem de erro replica a linha de código com problema e indica a posição em que há o problema de sintaxe. Com o tempo, esse processo de indentificar o tipo, entender o erro para além do tipo e a provável localização no código torna-se quase automático. A habilidade de interpretar mensagens de erro é uma das competências mais importantes em programação e será exercitada continuamente ao longo do curso.

2.4 Pacotes de terceiros e funções não-nativas

2.4.1 Como instalar

Para instalar novos pacotes para o Python precisamos fazê-lo via prompt de comando. O Anaconda nos fornece um prompt de comando próprio, o Anaconda Prompt que facilita a instalação desses pacotes através dos comandos conda ou pip. Vamos instalar como exemplo o pacote tqdm, que nos permite criar barras de progresso em atividades repetidas.

  1. Abra o Anaconda prompt.
  2. Veja se o pacote já não está instalado: digite conda list.
  3. Você pode utilizar 2 comandos distintos para instalar o pacote: conda install tqdm ou pip install tqdm.

Note também que alguns dos principais pacotes sobre os quais falarei ao longo do curso, NumPy, SciPy, Matplotlib e Pandas, já vem instalados com o Anaconda, o que não é verdade no Python puro. Mais do que mostrar o que temos instalado na nossa máquina local, o comando conda list nos mostra as versões de cada uma das bibliotecas disponíveis e qual o ambiente utilizado em sua instalação.

Diferença entre conda e pip: falar mais sobre a diferença entre esses dois comandos populares para instalação de pacotes vai um pouco além do escopo desse curso. De forma bastante resumida, podemos dizer que o pip é um gerenciador de pacotes que nos permite instalar qualquer biblioteca escrita em Python e disponível no Python Package Index (PyPI), o principal repositório de pacotes para a linguagem. O conda, no entanto, é mais do que um simples gerenciador de pacotes já que é possível fazer diferentes instalações em diferentes ambientes de modo a reduzir problemas de incompatibilidade entre versões. Além disso, através do conda podemos instalar pacotes escritos em outras linguagens também, como R e C++. Por outro lado, é possível que você demore mais e tenha problemas para instalar alguns pacotes utilizando o conda. Aos que quiserem saber um pouco mais sobre a diferença entre esses dois métodos para instalação, esses links (1 e 2) podem ser um bom começo.

2.4.2 Como importar

Sempre que quisermos trazer algo “de fora”, devemos carregar as bibliotecas específicas, seja por completo ou apenas um subconjunto de suas funções. Fazemos isso por meio do comando import. Vamos utilizar como exemplo a biblioteca NumPy, uma das principais bibliotecas de comando do Python em se tratando de operações algébricas e matriciais.

Dedicaremos uma aula inteira para trabalhar com o NumPy daqui algumas semanas, mas por hora trabalharemos apenas com as funções geradoras de números aleatórios, em especial a função geradora de números aleatórios distribuídos de acordo com uma Distribuição Uniforme padrão (vocês devem se lembrar das características dessa distribuição das aulas de estatística, mas caso ainda restem dúvidas sempre existe o Wikipedia).

Há 3 formas de trabalhar com essa função específica, contida no NumPy:

  1. Podemos importar a biblioteca inteira
import numpy
  1. Podemos importar a biblioteca inteira mas dando-lhe um “apelido”
import numpy as np
  1. Podemos importar apenas a função que nos interessa nesse caso
from numpy.random import uniform

Qual a diferença entre esses métodos? No Python, sempre que formos utilizar uma função de algum pacote “de fora” é preciso dizer ao Python de onde que essa função está vindo. Se quisermos usar a função uniform() através do 1º método, por exemplo, é preciso chamá-la utilizando o nome do pacote, nesse caso numpy.random.uniform(). O 2º método encurta esse nome de tal forma que é possível chamar a mesma função usando np.random.uniform(). Por fim, no 3º caso basta chamar a função diretamente, isto é, uniform().

Mas se o 3º caso é mais direto, porque não usá-lo sempre? Por duas razões bem simples: (i) usar a sintaxe dos 2 primeiros casos torna o código mais compreensível e depurável, já que no caso de algum problema de execução sabemos onde procurar a resposta, e (ii) é comum pacotes distintos usarem o mesmo nome para funções que fazem operações distintas, o que pode gerar problemas de incompatibilidade e/ou de executarmos algo diferente daquilo que gostaríamos de executar.

Na maioria das vezes, acabamos utilizando o 2º método, já que isso permite reduzir linhas desnecessárias de código ao mesmo tempo que facilita a replicabilidade e a atividade de depuração do código.

2.5 Conclusão

Neste capítulo, você aprendeu a executar seus primeiros comandos em Python, a interagir com o ambiente de programação e a interpretar mensagens básicas de erro. Mais importante do que os comandos específicos é o desenvolvimento de uma postura adequada frente ao código: testar, observar, errar, corrigir e testar novamente. Nos próximos capítulos, introduziremos objetos básicos da linguagem, como números, textos e listas, sempre construindo sobre as habilidades operacionais estabelecidas aqui.

2.6 Exercícios

  1. Utilize o Python para responder as seguintes perguntas:

    1. Quantos segundos há em 42 minutos e 42 segundos?
    2. Quantas milhas há em 10 quilômetros? Dica: uma milha equivale a 1,61 quilômetro.
    3. Se você correr 10 quilômetros em 42 minutos e 42 segundos, qual é o _pace__ médio (tempo por quilômetro em minutos e segundos)?
  2. Crie uma variável chamada salario_mensal com valor igual a \(3500\).

    1. Crie uma variável chamada rendimento_anual que seja construída a partir de salario_mensal e considere o recebimento do 13º salário no mês de dezembro. Utilize uma instrução para exibir rendimento_anual na tela.
    2. Calcule e exiba na tela o valor do rendimento anual após o pagamento de impostos, considerando a incidência de uma alíquota média de \(16.5\%\).
  3. Explique, com suas próprias palavras, a diferença entre escrever código em um editor de texto simples e escrever código em uma IDE ou ambiente interativo. Sua resposta deve mencionar pelo menos dois recursos que facilitam o aprendizado em IDEs.

  4. Considere o código abaixo:

    print("Resultado:"
    resultado == 10 + 5
    1. Execute o código e identifique o tipo e posição do(s) erro(s) no código.
    2. Explique com suas palavras o que está de errado.
    3. Corrija o(s) erro(s) e execute novamente.