Escolar Documentos
Profissional Documentos
Cultura Documentos
Programação Aplicada
Material Teórico
Conceitos Gerais, IDEs e Introdução à Linguagem Python
Revisão Textual:
Prof. Esp. Claudio Pereira do Nascimento
Conceitos Gerais, IDEs e
Introdução à Linguagem Python
• Introdução;
• Ambiente de Desenvolvimento Python para Análise de Dados;
• Introdução ao Python.
OBJETIVOS DE APRENDIZADO
• Apresentar a linguagem Python como uma alternativa para Análise de Dados;
• Entender como funcionada o ecossistema Python para Análise de Dados e como fazer
sua instalação;
• Conhecer a sintaxe e principais estruturas da linguagem como condicionais, repetições,
listas e funções built-in.
Orientações de estudo
Para que o conteúdo desta Disciplina seja bem
aproveitado e haja maior aplicabilidade na sua
formação acadêmica e atuação profissional, siga
algumas recomendações básicas:
Conserve seu
material e local de
estudos sempre
organizados.
Aproveite as
Procure manter indicações
contato com seus de Material
colegas e tutores Complementar.
para trocar ideias!
Determine um Isso amplia a
horário fixo aprendizagem.
para estudar.
Mantenha o foco!
Evite se distrair com
as redes sociais.
Seja original!
Nunca plagie
trabalhos.
Não se esqueça
de se alimentar
Assim: e de se manter
Organize seus estudos de maneira que passem a fazer parte hidratado.
da sua rotina. Por exemplo, você poderá determinar um dia e
horário fixos como seu “momento do estudo”;
No material de cada Unidade, há leituras indicadas e, entre elas, artigos científicos, livros, vídeos
e sites para aprofundar os conhecimentos adquiridos ao longo da Unidade. Além disso, você
também encontrará sugestões de conteúdo extra no item Material Complementar, que ampliarão
sua interpretação e auxiliarão no pleno entendimento dos temas abordados;
Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de discus-
são, pois irão auxiliar a verificar o quanto você absorveu de conhecimento, além de propiciar o
contato com seus colegas e tutores, o que se apresenta como rico espaço de troca de ideias e
de aprendizagem.
UNIDADE Conceitos Gerais, IDEs e Introdução à Linguagem Python
Introdução
Nesta disciplina iremos aprender a utilizar a linguagem Python para Análise
de Dados. Agora você se pergunta: mas por que iremos utilizar essa linguagem?
A explicação é simples, Python se tornou uma linguagem poderosa com o passar
do tempo e atualmente é uma das mais utilizadas para Análise de Dados, Data
Science e Inteligência Artificial.
Mas surge outra pergunta, por que escolhemos Python se existem outras lingua-
gens para Análise de Dados no mercado? Algumas das razões são: coleta de dados,
limpeza dos dados, transformação dos dados, processamento, criação de modelos,
avaliação de modelos e construção de gráficos e dashboard, ou seja, podemos fazer
tudo isso com a linguagem Python.
Existem quatro linguagens que são amplamente utilizadas quando se fala em ciên-
cia de dados, temos o Python, linguagem R, Scala e Java. Aqui, como já foi falado,
iremos aprender toda a estrutura da linguagem para, então, nas próximas unidades,
possamos explorar seu poder no processamento de dados e análise de dados.
Ressaltamos ainda que o Python possui uma vasta comunidade que auxilia seu
desenvolvimento e atualizações, além de possuir uma enorme quantidade de biblio-
tecas específicas para Análise de Dados.
O nome da linguagem Python não foi inspirado no nome da cobra píton, seu nome teve
como base um programa de comédia chamado Monty Python’s Flying Circus, contudo, seu
logo se manteve com a imagens de duas cobras (azul e amarela).
Assista ao vídeo sobre a história do Python narrada pelo seu criador Guido van Rossum,
Explor
8
Acesse o site do Python para consultar sua documentação, fazer o download e aprender mais
Explor
Ambiente de Desenvolvimento
Python para Análise de Dados
O Python possui uma quantidade enorme de pacotes para uso, alguns autores
chamam um conjunto de pacotes destinados para Análise de Dados como PyData
Stack. Na Figura 1 podemos ver alguns dos principais pacotes relacionados à aná-
lise de dados.
Como você percebeu, na Figura 1 existem muitos pacotes. Nesta disciplina, nas
próximas unidades, iremos estudar os principais pacotes que nos darão base para
fazermos nossas análises e com isso nos permitam criar gráficos e processamento
de alguns conjuntos de dados.
Antes de aventurarmos nesse mundo, você tem que se perguntar: O que preci-
so ter no meu computador para trabalhar com o Python voltado para Análise de
Dados? Em primeiro lugar e mais óbvio é a linguagem Python, contudo, somente a
linguagem não fornece todos os pacotes que iremos utilizar, lógico que você pode
instalar os pacotes individualmente, conforme sua necessidade, mas isso pode tra-
zer transtornos, então, para minimizar nosso trabalho de instalação, iremos utilizar
um ecossistema que podemos dizer ser completo para nossos objetivos na discipli-
na, estamos falando do Anaconda Python.
9
9
UNIDADE Conceitos Gerais, IDEs e Introdução à Linguagem Python
mencionamos, não usaremos o Python puro, iremos usar a distribuição Anaconda que
traz os pacotes que precisamos para fazer análise de dados. Fique tranquilo, o Anaconda
traz o interpretador Python 3 também como seu core.
10
vontade para instalar e usar a que você achar melhor, tenha em mente que nosso
objetivo é aprender a linguagem Python independente da ferramenta.
Outra ferramenta que podemos utilizar é o IDLE do próprio Python, para isso,
digite na pesquisa o Windows ou procure no seu sistema por “IDLE”, abra a ferra-
menta e faça o mesmo teste com a expressão 2+2, Figura 5.
11
11
UNIDADE Conceitos Gerais, IDEs e Introdução à Linguagem Python
Pronto, neste momento você dever ter percebido que temos uma variedade de
ferramentas para se trabalhar com Python voltado para Análise de Dados, escolha
a ferramenta que você se adaptar melhor. Nesta disciplina, usaremos bastante o
Jupyter Notebook (são criados arquivos com a extensão ipynb) e eventualmente
o IDLE do Python para gerar arquivos .py (arquivo do código fonte do Python).
12
Ressaltamos que podemos exportar nossos códigos feitos no Jupyter para arquivos
.py e com isso executá-los no IDLE ou prompt de comando. Vamos então começar
com a linguagem.
Existem dois sites do Anaconda, o .com (destinado a parte corporativa) e o .org (destinado
Explor
para o serviço em nuvem (Cloud). Em ambos os sites podemos baixar nossa ferramenta de
trabalho, basta clicar em Download. Disponível em: http://bit.ly/2Qnu4JA
Navegue pelo site do Jupyter Notebook para conhecer mais sobre a ferramenta,
disponível em: http://bit.ly/2Qg71QA
Como alternativa e para o desenvolvimento tradicional em Python, teste o PyCharm,
disponível em http://bit.ly/2QdAsTw
Introdução ao Python
Como vimos na introdução, utilizaremos o Python. Nesta seção, você irá estu-
dar toda a sintaxe da linguagem que lhe dará a base necessária para acompanhar as
demais unidades da disciplina. Mesmo que você tenha algum conhecimento sobre
a linguagem, é sempre válido repassar alguns conceitos.
Operações matemáticas
Podemos utilizar o interpretador do Python para fazer operações matemáticas
simples ou complexas. Basicamente temos o tipo inteiro (int) e real (float) para
representar os números. Para criar suas expressões matemáticas, utilize a mesma
forma da matemática básica, inclusive a precedência é a mesma e você ainda pode
usar parênteses para mudar a ordem de execução.
Você pode ainda utilizar o comando (função) type para identificar o tipo de da-
dos de um valor, veja o exemplo no código a seguir:
13
13
UNIDADE Conceitos Gerais, IDEs e Introdução à Linguagem Python
>>> type(5)
>>> type(4.56)
Variáveis e Operadores
Para criarmos nossas expressões matemáticas, precisamos, além de trabalhar
com os números, saber quais são os operadores que a linguagem trabalha e como
criar variáveis que irão compor nossas expressões.
Agora vamos criar variáveis em Python, você deve lembrar que variável é basica-
mente um espaço em memória que reservamos para armazenar valores que serão
utilizados durante a execução do código. Podemos criar diversas variáveis em nosso
código. As regras para criação de variáveis são:
• não podem começar com número;
• não pode haver espaços entre os nomes, devemos utilizar _;
• Não podemos usar caracteres especiais como <>\|/ etc.
14
Também não podemos usar as palavras reservadas da linguagem, ou seja, você
deve criar seus próprios nomes de variáveis e de preferência que tenha um signifi-
cado conforme a informação que ela irá guardar.
Você pode criar variáveis em Python simplesmente atribuindo um valor para ela,
por exemplo, para criar a variável x com o valor 10, basta digitar x = 10.
Veja que apareceu um operador “=” na instrução acima, esse operador faz parte
dos operadores de atribuição da linguagem.
A relação entre esses operadores é dada pela tabela verdade (Tabela 5).
Tabela 5 – Tabela com a relação dos operadores lógicos
expressão 1 expressão 2 expressão 1 and expressão 2
Falso Falso Falso
Falso Verdadeiro Falso
Verdadeiro Falso Falso
Verdadeiro Verdadeiro Verdadeiro
expressão 1 expressão 2 expressão 1 or expressão 2
Falso Falso Falso
Falso Verdadeiro Verdadeiro
Verdadeiro Falso Verdadeiro
Verdadeiro Verdadeiro Verdadeiro
expressão 1 not expressão 2
Falso Verdadeiro
Verdadeiro Falso
15
15
UNIDADE Conceitos Gerais, IDEs e Introdução à Linguagem Python
O comando para leitura por meio do teclado é o input, destacamos que esse
comando faz a leitura somente de valores em formato texto (string), sendo as-
sim, caso queira ler dados numéricos, utilize as funções de conversão apresen-
tadas anteriormente.
Vamos agora colocar isso em prática, iremos fazer a soma de 2 valores inteiros
por meio de variáveis e apresentar a resposta com o comando print.
Para iniciar essa prática, abra o IDLE do Python e digite as instruções abaixo:
>>> a = 10
>>> b = 30
16
Você pode utilizar o IDLE ou o Jupyter Notebook, agora ficará a seu critério.
Strings
Strings nada mais são que sequências de caracteres. Em Python, elas podem
ser representadas por aspas “” ou apóstrofo ‘’, por exemplo: “Olá Mundo” tem o
mesmo efeito de ‘Olá Mundo’.
Podemos atribuir valores do tipo string a variáveis e fazer concatenação com va-
lores numéricos, a concatenação se dá por meio da função str, veja alguns exemplos:
nome = “Alcides”
altura = 1.69
A função str() faz a conversão de um valor qualquer para o tipo string em Python.
print(texto)
17
17
UNIDADE Conceitos Gerais, IDEs e Introdução à Linguagem Python
Para fatiar uma string, utilizamos o símbolo de : (dois pontos) dentro dos colche-
tes para manipular os índices. Vejamos alguns exemplos:
>>> texto2 = texto[1:] #indica que iremos capturar a partir da posição 1 até
o final
>>> texto2
>>> texto2 = texto[:6] #indica que iremos capturar a string do inicio até a
posição 6-1
>>> texto2
‘Anális’
Podemos ainda utilizar valores negativos para acessar de trás para frente, exemplo:
>>> texto[-1]
‘n’
>>> texto[-2]
‘o’
letra = “w”*3
print(letra)
www
x = “curso ead”
CURSO EAD
18
curso ead
Curso ead
[‘curso’, ‘ead’]
-1
Você percebeu que ao usar a função split o resultado retornado foi um conjunto de
valores entre colchetes? Chamamos isso de lista, iremos estudá-la na próxima seção.
Listas
Listas são representadas com o uso dos colchetes [] e o tipo de dados é list. Pode-
mos inclusive usar o slicing como fizemos com as strings. Vejamos alguns exemplos:
#vamos criar uma lista de frutas
uva
‘maça’
19
19
UNIDADE Conceitos Gerais, IDEs e Introdução à Linguagem Python
Uma lista é uma estrutura de dados mutável, ou seja, podemos alterar os valores
das posições dela. Exemplo
lista = [1,2,3]
lista[0]
1
lista[0]=1000
lista
[1000, 2, 3]
Para finalizar, iremos comentar algumas funções para se manipular listas, fique
à vontade para testá-las no Python. Seguem algumas funções:
• len(nome_lista): retorna a quantidade de elementos da lista;
• max(nome_lista): retorna o valor máximo da lista;
• min(nome_lista): retorna o valor mínimo da lista;
• operador “in” para verificar se um valor existe na lista:
» lista=[1,2,3];
» print(10 in lista);
» False;
» print(1 in lista);
» True.
• nome_lista.sort(): ordena a lista.
20
Dicionários
Dicionários em Python também representam um conjunto de valores, porém
essa representação se dá por meio de um mapeamento chave:valor. Os dicionários
são criados utilizando as chaves { }.
nome_idades
print(nome_idades[“alcides”])
39
nome_idades[“Pedro”]=55
{‘alcides’: 39, ‘lukas’: 18, ‘bruna’: 24, ‘leonardo’: 25, ‘Pedro’: 55}
Tuplas
Tuplas são semelhantes as listas, contudo, são imutáveis, o que significa que não
podem ser alteradas após serem criadas.
As tuplas são criadas com parênteses ( ). Essa estrutura não é muito utilizada,
iremos usar somente quando queremos ter certeza de que os dados que criamos
não serão alterados, mantendo assim a integridade.
animais
21
21
UNIDADE Conceitos Gerais, IDEs e Introdução à Linguagem Python
animais[0] #podemos acessar cada elemento pelo seu índice igual lista
‘leão’
Comando condicional
Agora que já estudamos os conceitos iniciais da linguagem, podemos avançar
para aprender como inserir desvios em nossos códigos. Um desvio é basicamente
falar para o computador qual ação tomar a partir de uma dada condição.
Em nosso dia a dia, estamos acostumados a tomar decisões, como, por exem-
plo: ao acordar, posso pensar que “se estiver chovendo então terei que levar o
guarda-chuva, senão, deixo ele em casa”. Perceba que podemos desempenhar uma
ação ou outra conforme a condição “estar chovendo” seja verdadeira ou falsa.
Na programação também temos esse desvio que pode ser feito com a estrutura
if, veja a sintaxe básica abaixo:
if (condição):
else:
Existem casos em que precisamos testar mais de uma condição, se isso ocorrer
em seus códigos, use a instrução elif, isso elimina o uso excessivo de “else if”. Veja
a sintaxe:
if (condição 1):
elif (condição 2:
else:
Antes de avançarmos, note que no final das linhas do if, elif e else é obrigatório
inserir :, fique atento.
22
Você pode usar diversos elif em seu código, tudo vai depender da quantidade de
condições que precisa testar, importante ressaltar que o elif e o else sempre devem
vir após o if, nunca antes.
if valor > 0:
Importante! Importante!
O Python exige uma tabulação para indicar os blocos de comando que fazem parte da
estrutura, geralmente a tecla TAB já insere a tabulação necessária, mas caso queira, pode
inserir 4 espaços para ter o mesmo efeito. Veja que é obrigatório ter a tabulação à direita
para indicar os comandos que fazem parte do IF.
if valor > 0:
else:
Exemplo 2: Precisamos ler 3 notas de um aluno para calcular sua média, em se-
guida, devemos imprimir a média calculada e um conceito que pode ser Aprovado
(média maior ou igual a 6); Reprovado (média inferior a 3) e Exame (média maior
ou igual a 3 e menor que 6).
media = (nota1+nota2+nota3)/3
if media >= 6:
23
23
UNIDADE Conceitos Gerais, IDEs e Introdução à Linguagem Python
else:
Fique atento, no primeiro print, inserimos a função str, pois usamos o operador
“+”para juntar texto com o valor da média. Já nos demais, como usamos “,” não é
necessário colocar a função de conversão str. Escolha a forma de trabalhar que se
sentir mais confortável.
Comandos de repetição
Outra estrutura muito utilizada em programação é a estrutura de repetição, a
linguagem Python tem somente duas, o comando for e o comando while. Iremos
estudar nas próximas seções.
Estrutura for
A estrutura for é uma das mais utilizadas em programação, essa é uma estrutura
de iteração, ou seja, podemos repetir um bloco de código por um número determi-
nado de vezes.
A sintaxe básica é:
Você verá que utilizaremos esta estrutura muitas vezes quando entrarmos no tó-
pico de análise de dados. O uso é comum para percorrermos listas, strings, tuplas,
dicionários e arquivos diversos.
for i in range(0,11):
print(i)
Note que devemos estipular o valor final igual a 11 para que possamos imprimir
até o 10, visto que o valor final é exclusivo.
Exemplo 2
Em exemplos anteriores, fizemos uma lista de frutas, neste exemplo iremos
imprimir cada elemento da lista em uma linha com a string “Nome da fruta: “. Para
isso, devemos usar uma repetição, note que a variável de iteração será no singular
24
para ficar mais obvio que estamos manipulando um elemento somente dentro do
conjunto de elementos que é a lista de frutas. Vamos ainda deixar a primeira letra
de cada fruta em maiúscula.
Exemplo 3
Precisamos de um programa que mostre na tela os números pares de 0 a 999,
deve ser utilizada a estrutura for e a estrutura if para resolver essa questão.
for i in range(0,1000):
if i % 2 == 0:
print(i)
Exemplo 4
Um script deve ser capaz de ler um texto digitado pelo usuário e em seguida
imprimir na tela todas as letras separadas por um traço “-“.
saida=””
saida += letra+”-”
print(saida)
Exemplo 5
Temos um conjunto de dados representado em um dicionário contendo o nome,
idade e salário de n funcionários de uma empresa. Precisamos imprimir um relató-
rio na tela com todos esses dados.
dados={“func1”:{“nome”:”Fulano1”,”idade”:24,”salario”:1000.00},
“func2”:{“nome”:”Fulano2”,”idade”:25,”salario”:2000.00},
“func3”:{“nome”:”Fulano3”,”idade”:45,”salario”:3000},
“func4”:{“nome”:”Fulano4”,”idade”:55,”salario”:3456},
“func5”:{“nome”:”Fulano5”,”idade”:66,”salario”:34687},
“func6”:{“nome”:”Fulano6”,”idade”:77,”salario”:34123},
“func7”:{“nome”:”Fulano7”,”idade”:84,”salario”:1123},
25
25
UNIDADE Conceitos Gerais, IDEs e Introdução à Linguagem Python
“func8”:{“nome”:”Fulano8”,”idade”:34,”salario”:5761},
“func9”:{“nome”:”Fulano9”,”idade”:36,”salario”:5672},
“func10”:{“nome”:”Fulano10”,”idade”:18,”salario”:32412}}
print(“Nome...: “, dados[funcionario][“nome”] )
print(“Idade..: “, dados[funcionario][“idade”] )
print(“Salário: “, dados[funcionario][“salario”])
print(“-”*30)
Neste último exemplo, podemos ter outras formas mais diretas de resolver, con-
tudo, o foco deste material é entender os conceitos básicos do Python, logo, a
solução proposta atinge esses objetivos.
Estrutura while
Além do comando for, temos o segundo comando de iteração do Python
que é a estrutura while, esta estrutura faz a repetição de instruções até que
uma dada condição se torne falsa, ou seja, a repetição é executada enquanto a
condição for verdadeira.
Sintaxe do comando:
while (expressão):
Exemplo 1
Vamos imprimir na tela os valores de 1 a 10 e para cada valor devemos calcular
a expressão x3 , sendo que x será o valor de cada iteração.
i=1
while i<=10:
print(i, “ - “,(i**3))
i+=1
Exemplo 2
Vamos criar um script para ler n valores inteiros; quando o usuário digitar 0,
devemos parar a leitura e mostrar a somatória dos valores lidos. Iremos utilizar
26
um laço infinito e quando o usuário digitar 0, chamaremos o comando break para
encerrar o laço.
soma = 0
while True:
if valor != 0:
soma += valor
else:
break
print(soma)
Funções
As funções também são chamadas de sub-rotinas, ou seja, pequenos trechos de
códigos que podem ser “chamados” ou executados sempre que necessário. Uma
função é executada através do nome que criamos para ela. Criar funções é uma
forma de otimizar nosso algoritmo e logicamente de reutilizar nosso código.
Podemos chamar as funções em qualquer ponto do nosso código. No momento
da chamada, a função é executada e ao ser finalizada, o controle volta para a linha
imediatamente abaixo da chamada. É possível chamar quantas vezes forem neces-
sárias as funções.
A utilização de funções torna nosso algoritmo mais fácil de alterar, e permite
dividir a nossa lógica em códigos bem específicos ou genéricos que possam ser
utilizados várias vezes.
As funções podem ter retorno (usamos a palavra reservada return) ou não, tudo
vai depender do que você deseja fazer ao criar e executar a função. Caso tenha
retorno, geralmente o guardamos dentro de uma variável na chamada da função,
fique tranquilo que veremos como fazer isso nos exemplos a seguir.
A sintaxe de uma função em Python é:
#instruções da função
Uma função pode ou não ter argumentos, esses valores são passados na chama-
da da função para que ela os utilize em sua lógica.
Vejamos alguns exemplos de função em Python:
Exemplo 1
Faça um script que chame uma função 5 vezes para ler o nome de uma fruta
digitada pelo usuário e na sequência imprima esse nome em letras maiúsculas.
27
27
UNIDADE Conceitos Gerais, IDEs e Introdução à Linguagem Python
def lerFrutas():
print(fruta.upper())
for i in range(1,6):
lerFrutas()
Exemplo 2
Faça uma função que receba dois valores inteiros como parâmetros, calcule e
retorne a soma desses valores. A leitura dos valores deve ser feita fora da função,
o usuário deve digitar esses dois valores solicitados. O cálculo será feito dentro da
função e a leitura/exibição deve ser feita no bloco principal do nosso script.
def soma(a,b):
return a+b
print(resultado)
#ou
print(soma(valor1, valor2))
Exemplo 3
Faça uma função que receba um número inteiro como parâmetro, essa função
deverá calcular a soma dos números inteiros entre o número 1 até o número infor-
mado no parâmetro. Após calcular a soma, a função deve imprimir na tela. Chame
a função 3 vezes com valores distintos.
def calcula(num):
soma=0
for i in range(1,num+1):
soma += i
return soma
calcula(3) #resposta 6
calcula(5) #resposta 15
calcula(10) #resposta 55
28
Expressões lambda
A expressão lambda, também conhecida como função on-line, é um recurso que
nos permite criar funções anônimas (sem nome) e sem a palavra def. Os valores
retornados pela expressão lambda são iguais aos valores retornados por uma função
criada com a palavra def que possua o return, ou seja, até aqui não possuem
diferenças. Você se questiona agora, então não existe diferença? Em execução não,
somente na forma de escrever.
Exemplo 1
Criamos na seção anterior uma função soma(a,b) que somava dois valores e
retornava essa soma para o ponto de chamada. Agora, faremos a mesma coisa
usando a expressão lambda.
def func_soma(a,b):
return a+b
print(soma(10,10)) # resposta 20
Veja que com uma única linha resolvemos o mesmo problema. Embora seja
interessante, essa expressão não substitui o uso das funções criadas com def, fique
atento! Seu uso é para casos específicos.
List comprehension
Estamos quase finalizando, veremos agora a instrução chamada list
comprehension. Essa expressão nos permite criar de maneira simples e concisa
sequências ou conjuntos de dados no formato de listas.
Você perceberá que é praticamente uma linha com a estrutura for construída
como uma lista, ou seja, com o uso de [].
29
29
UNIDADE Conceitos Gerais, IDEs e Introdução à Linguagem Python
A sintaxe básica é:
Veremos um exemplo.
Exemplo 1: Vamos criar uma lista com 10 elementos, faremos com o modelo
tradicional e na sequência com a list comprehension para que você perceba seu
uso e relação.
list1 = []
for i in range(10):
list1.append(i)
print(list1)
print(list2)
Percebeu o ganho que temos? Vale destacar que aqui mostramos a sintaxe bási-
ca, mas podemos usar inclusive dentro do for a estrutura if, por exemplo.
Explor
30
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:
Vídeos
A quem se destina este curso
Curso de Python básico (IME/USP).
https://youtu.be/WT_zCgSHSTQ
Leitura
An Informal Introduction to Python¶
Documentação Python 3: Números, Strings e Listas.
http://bit.ly/2Qg12LC
More Control Flow Tools
Documentação Python 3: Ferramentas de controle de fluxo.
http://bit.ly/2AjEpeD
Data Structures
Documentação Python 3: Estruturas de dados.
http://bit.ly/2ApapxW
31
31
UNIDADE Conceitos Gerais, IDEs e Introdução à Linguagem Python
Referências
BECKER, J. L. Estatística básica: transformando dados em informação. Porto
Alegre: Bookman, 2015.
32