Noções de programação em Python e R
5 min de leituraPodcast13 questões
Cai no edital de Agente PF, Escrivão PF, Papiloscopista PF, Receita Federal, Receita Federal
Para revisar
Resumo
Python e R são linguagens interpretadas, de tipagem dinâmica, muito usadas em análise de dados. Python é de propósito geral; R nasceu para estatística. A prova mostra trechos curtos e pede a saída.
- Tipagem dinâmica: o tipo vem do valor; não se declara.
- Python: blocos por indentação; índice começa em 0.
- Coleções Python: lista (mutável), tupla (imutável), dicionário e conjunto.
- Operadores Python:
/divide com resultado real;//dá o quociente inteiro;%dá o resto. - R: atribuição com
<-; índice começa em 1; operações vetorizadas. - Bibliotecas: pandas e NumPy em Python; ggplot2 e dplyr em R.
Entenda
Características comuns
As duas linguagens são interpretadas: o código roda linha a linha, sem etapa separada de compilação. A tipagem é dinâmica: a variável assume o tipo do valor atribuído e pode mudar de tipo depois. Comentário de linha começa com # nas duas.
Ex.: em Python, x = 5 cria um inteiro; depois, x = "PF" faz a mesma variável guardar um texto. Não há declaração de tipo.
Python: sintaxe e tipos
A indentação faz parte da sintaxe e delimita os blocos; não há chaves. Tipos básicos: int, float, str, bool (True e False) e None. Atribuição usa =; comparação de igualdade usa ==.
Ex.:
idade = 20
if idade >= 18:
print("maior") # bloco definido pela indentação
else:
print("menor")
Python: coleções
| Coleção | Escrita | Característica |
|---|---|---|
| Lista | [1, 2, 3] | Mutável e ordenada |
| Tupla | (1, 2, 3) | Imutável |
| Dicionário | {"uf": "DF"} | Pares chave-valor |
| Conjunto | {1, 2} | Sem elementos repetidos |
Strings também são imutáveis. len(x) dá o tamanho; x.append(v) acrescenta ao fim da lista.
Ex.: t = (1, 2) seguido de t[0] = 5 gera erro, porque a tupla é imutável. Com a lista x = [1, 2], x[0] = 5 funciona.
Python: índices e fatias
O primeiro elemento tem índice 0. Índice negativo conta a partir do fim: x[-1] é o último. A fatia x[i:j] vai da posição i até a j − 1: o fim é exclusivo.
Ex.: x = [10, 20, 30]: x[0] é 10, x[1] é 20 e x[-1] é 30. Com x = [1, 2, 3, 4], x[1:3] retorna [2, 3].
Python: operadores e laços
/divide e devolve número real:7 / 2é3.5.//dá o quociente inteiro:7 // 2é3.%dá o resto:7 % 2é1.**é potência:2 ** 3é8.range(n)gera de 0 a n − 1;range(a, b)gera de a até b − 1.forpercorre uma sequência;whilerepete enquanto a condição for verdadeira; funções são definidas comdef.
Ex.:
total = 0
for i in range(1, 4): # 1, 2, 3
total += i
print(total) # 6
R: sintaxe e estruturas
A atribuição usual é <- (o = também funciona). Blocos ficam entre chaves. O vetor é criado com c(), e o primeiro índice é 1. As operações são vetorizadas: valem para todos os elementos de uma vez. Estruturas: vetor, matriz, lista, fator e data.frame (tabela). Valor ausente é NA.
Ex.: x <- c(10, 20, 30): x[1] retorna 10. c(1, 2, 3) * 2 retorna 2, 4 e 6, sem laço.
Bibliotecas e ambientes
- Python: pandas (tabelas em DataFrame), NumPy (vetores e matrizes), Matplotlib (gráficos), scikit-learn (aprendizado de máquina).
- R: funções estatísticas nativas (
mean,sd,summary,lmpara regressão); pacotes do CRAN, instalados cominstall.packages, como ggplot2 (gráficos) e dplyr (manipulação de dados). - Ambientes: Jupyter Notebook (Python e R) e RStudio (R).
Ex.: import pandas as pd e df = pd.read_csv("dados.csv") carregam um arquivo CSV em um DataFrame. Em R, mean(c(2, 4, 6)) retorna 4.
Quadro
| Ponto | Python | R |
|---|---|---|
| Primeiro índice | 0 | 1 |
| Atribuição | = | <- |
| Blocos | Indentação | Chaves {} |
| Tabela de dados | DataFrame do pandas | data.frame nativo |
| Valor ausente | None ou NaN | NA |
| Origem | Propósito geral | Estatística |
Como a banca cobra
- "Em Python, após x = [10, 20, 30], a instrução print(x[1]) exibe 10." → errado (exibe 20; o índice começa em 0).
- "Em R, após x <- c(10, 20, 30), a expressão x[1] retorna 10." → certo (em R o índice começa em 1).
- "Em Python, a expressão 7 // 2 resulta em 3." → certo (quociente inteiro).
- "Em Python, o operador / aplicado a 7 e 2 produz o valor inteiro 3." → errado (produz 3.5).
- "Em Python, as tuplas são mutáveis e as listas, imutáveis." → errado (é o inverso).
- "Em Python, range(5) gera os números de 1 a 5." → errado (gera de 0 a 4).
- "Em Python, após x = [1, 2, 3, 4], a expressão x[1:3] retorna [2, 3]." → certo (posições 1 e 2; o fim é exclusivo).
- "Python exige a declaração explícita do tipo de cada variável antes do uso." → errado (tipagem dinâmica).
- "Em R, a expressão c(1, 2, 3) * 2 resulta em 2, 4 e 6." → certo (operação vetorizada).
- Detalhe que derruba o item: o ponto de partida da contagem. Python começa em 0 e exclui o fim de
rangee das fatias; R começa em 1. Antes de julgar a saída, confira qual é a linguagem.
Revisão rápida
Qual o primeiro índice em Python?Revelar
Zero.
Qual o primeiro índice em R?Revelar
Um.
O que delimita blocos em Python?Revelar
A indentação.
Lista e tupla: qual é mutável?Revelar
A lista; a tupla é imutável.
Quanto vale 7 // 2 em Python?Revelar
O que range(5) gera?Revelar
Os números de 0 a 4.
Qual o operador usual de atribuição em R?Revelar
<-.Que biblioteca Python trabalha com tabelas?Revelar
pandas.
Referência
Mapa mental
Em comum
- Interpretadas, tipagem dinâmica
- Usadas em análise de dados
Python
- Indentação define blocos
- Índice começa em 0
- Lista mutável, tupla imutável
- Dicionário chave-valor, conjunto sem repetição
- range(5): 0 a 4
R
- Atribuição com <-
- Índice começa em 1
- Vetor c(), data.frame nativo
- Operações vetorizadas
Bibliotecas
- Python: pandas, NumPy, scikit-learn
- R: ggplot2, dplyr
⚠️ Pegadinha
- Fatia [1:3] exclui o fim
Questão 1, Agente PF, Certo ou Errado
Em Python, após x = [10, 20, 30], a instrução print(x[1]) exibe 10.
Revelar gabarito
Gabarito: Errado
Errado. Em Python, o índice começa em 0: x[0] vale 10 e x[1] vale 20. Portanto, a instrução print(x[1]) exibe 20, e não o primeiro elemento da lista.
Questão 2, Agente PF, Certo ou Errado
Em R, após x <- c(10, 20, 30), a expressão x[1] retorna 10.
Revelar gabarito
Gabarito: Certo
Certo. Diferentemente do Python, a linguagem R começa a indexação em 1. Assim, em c(10, 20, 30), a posição 1 corresponde ao primeiro elemento do vetor, e a expressão retorna 10.
Questão 3, Agente PF, Certo ou Errado
Em Python, a expressão 7 // 2 resulta em 3.
Revelar gabarito
Gabarito: Certo
Certo. O operador // faz a divisão inteira, descartando a parte fracionária: 7 dividido por 2 dá 3,5, e o resultado é 3. O operador / retornaria o valor float 3.5.
Questão 4, Agente PF, Certo ou Errado
Em Python, as tuplas são mutáveis e as listas, imutáveis.
Revelar gabarito
Gabarito: Errado
Errado. As características foram trocadas: em Python, a lista, escrita com colchetes, é mutável, e a tupla, escrita com parênteses, é imutável. Depois de criada, a tupla não pode ter elementos alterados.
Questão 5, Agente PF, Certo ou Errado
Em Python, range(5) gera os números de 1 a 5.
Revelar gabarito
Gabarito: Errado
Errado. Com um único argumento, range começa em 0 e não inclui o limite final. Logo, range(5) gera os valores 0, 1, 2, 3 e 4, cinco números no total.
- Revelar resposta
Índice inicial em Python e em R
Python: 0 (
x[-1]é o último). R: 1. - Revelar resposta
Blocos de código em Python
Definidos pela indentação, sem chaves.
- Revelar resposta
Lista × tupla em Python
Lista
[1, 2]é mutável; tupla(1, 2)é imutável. - Revelar resposta
Operadores aritméticos em Python
/divisão com float;//divisão inteira;%resto;**potência. - Revelar resposta
Atribuição e vetores em R
Atribuição com
<-; vetor comc(1, 2, 3); operações vetorizadas:c(1,2,3) * 2→2 4 6. - Revelar resposta
Índice negativo em Python
Em Python, o índice começa em zero e os índices negativos contam a partir do fim, de modo que lista[-1] devolve o último elemento da sequência.
- Revelar resposta
Fatiamento em Python
A fatia x[1:3] pega as posições 1 e 2, pois o índice final é exclusivo; como a contagem começa em zero, o resultado é a lista [2, 3].
- Revelar resposta
Operações vetorizadas em R
As operações em R são vetorizadas e atuam sobre cada elemento do vetor, de modo que multiplicar c(1, 2, 3) por 2 resulta em 2, 4 e 6.
- Revelar resposta
Divisão / × // em Python
O operador / devolve float, e 7 / 2 resulta em 3.5; o resultado 3 é obtido com o operador //, que realiza a divisão inteira em Python.
- Revelar resposta
Tipagem em Python
Python tem tipagem dinâmica, em que o tipo vem do valor atribuído, sem necessidade de declaração; o mesmo ocorre em R, também linguagem interpretada.
Estude Agente PF no app
Grátis, sem cartão