Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Unidade 1
Introdução a Linguagem Python
Aula 1
A Linguagem Python
A linguagem Python
Este conteúdo é um vídeo!
Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender
conteúdos importantes para a sua formação pro�ssional. Vamos assisti-la? 
Bons estudos! 
Ponto de Partida
Python é uma linguagem de programação de alto nível amplamente usada na indústria de
tecnologia. Nesta aula, você começará a entender por que a
Python é tão popular e como pode ser utilizada em diversas aplicações.
Você conhecerá as ferramentas necessárias para dar início à programação em Python, o que
inclui a instalação do Python em seu computador e a seleção de um ambiente de
desenvolvimento adequado.
As variáveis são fundamentais na programação, pois permitem armazenar e manipular dados.
Durante esta etapa de estudos, você aprenderá a criar variáveis e descobrirá os diferentes tipos
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
de dados disponíveis em Python.
Como professor, preciso avaliar constantemente os estudantes. Sendo assim, quero automatizar
a média de notas dos alunos. É possível fazer isso utilizando Python?
Vamos Começar!
Introdução à linguagem Python
In [1]:
print("hello world!")
hello world!
Há uma lenda entre programadores segundo a qual se você não imprimir o “hello world” quando
começar a aprender uma linguagem, não conseguirá assimilar nada sobre ela (Ciência da
Computação, 2015). Para não correr tal risco, essa foi a primeira linha de comando apresentada
a você dentre as muitas que aprenderá nesta disciplina.
Python é uma linguagem de programação versátil e fácil de aprender. Foi criada por Guido van
Rossum e lançada em 1991. Guido é o principal autor da Python, embora haja muitas
contribuições de outros pesquisadores (Python v3.0.1 Documentation, [s. d.]). Desde então,
tornou-se uma das linguagens mais populares do mundo por causa de sua legibilidade e sintaxe
simples. Você pode se perguntar: “por que escolher Python?”. A resposta é clara: Python é usado
em várias áreas, incluindo desenvolvimento web, automação, aprendizado de máquina e análise
de dados.
De acordo com o guia de desenvolvimento para iniciantes Python (Python Wiki, 2022), trata-se de
uma linguagem de programação orientada a objetos, clara e poderosa, comparável a Perl, Ruby,
Scheme ou Java.
Python tem se mostrado uma linguagem muito e�ciente e vem sendo amplamente adotada por
pro�ssionais na área de dados (Agarwal, 2023), destacando-se por sua sintaxe. Uma das
principais �loso�as de Guido van Rossum, o criador da linguagem, é que o código deve ser
facilmente legível, uma vez que é lido com mais frequência do que é escrito. Isso é formalizado
no PEP 8, o Guia de Estilo para Código Python, que estabelece as diretrizes para a formatação,
organização e estruturação do código (Rossum; Warsaw; Coghlan, 2023). Seguir essas diretrizes
resulta em um código que é considerado “pythonic” – ou seja, que adere aos princípios descritos
no PEP 8. Essas regras abrangem elementos como a maneira com que o código é formatado, o
modo pelo qual as funções são de�nidas e organizadas, a forma de aplicação da indentação e
outros aspectos relacionados à sintaxe do código Python.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Já conseguiu entender por que o Python é tão usado e cada vez mais aplicado a todo tipo de
programação? O próximo passo é saber como obtemos o Python, e é isso o que estudaremos a
seguir!
Ferramentas e interpretadores
Agora que temos um entendimento básico sobre essa linguagem essencial e sabemos que
existe um conjunto de regras de�nido pelo PEP 8 para escrever o código Python de maneira
consistente, a próxima pergunta que naturalmente surge é: onde exatamente escrevemos esses
códigos em Python e de que forma visualizamos os resultados? A implementação de códigos em
Python pode ser realizada em uma variedade de ambientes, seja no seu próprio computador ou
em ambientes baseados na nuvem. No entanto, independentemente da escolha do ambiente, um
elemento essencial nesse contexto é o uso de um interpretador Python para executar seus
códigos.
O passo a passo para a instalação do interpretador Python está disponível no site o�cial dessa
linguagem, tanto para Windows (Python Brasil, 2019) , quanto para outros sistemas operacionais
(Python Brasil, 2023; Python Brasil, 2016).
Após a instalação, podemos utilizar o prompt de comando para fazer alguns testes e até mesmo
programar com Python por lá. Porém aconselho utilizar uma Integrated Development
Environment (IDE), isto é, um Ambiente de Desenvolvimento Integrado. Existem várias IDEs que
podem ser utilizadas e que são ótimas, como o PyCharm (JetBrains, 2010) e o Visual Studio
Code (VSCode) (Microsoft, [s. d.]).
Outra ferramenta que se destaca nesse cenário é o Python Anaconda (Anaconda, [s. d.]), que
possui diversos recursos Python, sendo composta por bibliotecas e IDEs. O diferencial é o
Jupyter Notebook, um ambiente de computação iterativa que permite a criação de documentos
de notebook que incluem código ativo, grá�cos, textos narrativos, etc. Outra vantagem do Jupyter
Notebook é a capacidade de funcionar em um navegador de internet. No endereço jupyter, você
pode experimentar a ferramenta sem precisar de instalação.
A ferramenta que indico como meio de trabalho para esta disciplina é o Google Colab, pois essa
plataforma possibilita que qualquer pessoa escreva e execute código Python a partir do
navegador. O Colab é um servidor de Notebook Jupyter hospedado que não requer con�guração
para ser utilizado. Como é baseado no projeto de código aberto, permite que você use e
compartilhe os Notebooks Jupyter com outros usuários sem precisar baixar, instalar ou executar
nada.
Vamos nessa! Para usar o Colab, acesse: colab.
Fazendo uma pequena retrospectiva, é possível a�rmar que já temos um entendimento básico do
Python e de onde programar. Agora vamos praticar!
https://python.org.br/instalacao-mac/
https://jupyter.org/try
https://colab.research.google.com/
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Siga em Frente...
Variáveis e tipos de dados
O �uxo de um algoritmo é a entrada, o processamento e a saída. Note que, para que o
processamento ocorra, é necessário armazenar os valores da entrada, por exemplo. Assim surge
o conceito de variável, que nada mais é do que um espaço alocado na memória RAM.
O interpretador Python consegue estabelecer o tipo de dado da variável observando seu valor.
Con�ra alguns exemplos:
x = 10
nome = 'aluno'
nota = 8.75
fez_inscricao = True
 
Observe que x é um número inteiro, nome é uma string, nota é um número decimal e
fez_inscricao é um booleano. Será que Python é capaz de de�nir o tipo de variável somente com
base no valor fornecido em cada variável?
Utilizaremos a função print() e type().
print(type(x))
print(type(nome))
print(type(nota))
print(type(fez_inscricao))
 
Como esperado, o Python acertou todos os tipos de variáveis. Note, também, que em Python
tudo é objeto. Sendo assim, os tipos de dados aparecem com a palavra “class”, que é uma
classe.
Já conseguimos criar uma variável. Que tal melhorar o famoso “hello world”? Para isso,
usaremos a função input(), que faz a leitura de um valor digitado.
nome = input()
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
print(nome)
Digite um nome: Estudante Querido
Estudante Querido
Ao executar o comando input, surge o campo para digitar o que será capturado – no nosso caso,
“Estudante Querido”. Logo após, a função print() mostra a variável “nome”. Vamos melhorar
nosso “hello world”!
Existem muitas formas de imprimir textos e variáveis em Python. Usaremos formatadores de
caracteres (igualsobre a distribuição geográ�ca dos
participantes, suas a�liações e as áreas de interesse predominantes. Como podemos utilizar os
conhecimentos desta aula para resolver esse caso?
Vamos Começar!
Objetos do tipo set
A palavra “set”, em Python, nos conduz diretamente à essência de uma estrutura de dados que se
assemelha a conjuntos matemáticos. Os objetos do tipo “set” habilitam operações de conjuntos,
como união, interseção, diferença e muitas outras. Essa estrutura é especialmente útil para
realizar testes de associação e eliminar valores duplicados em uma sequência (PSF, 2020).
Além das operações familiares que já conhecemos para sequências, como len(s), x in s e x not in
s, os conjuntos oferecem funcionalidades adicionais.
Podemos agregar um novo elemento a um conjunto usando add(valor) e remover elementos com
remove(valor). Para explorar a lista completa de funções disponíveis, acesse: python.
Em Python, existem duas formas principais de criar objetos do tipo “set”:
Usando um par de chaves e elementos separados por vírgulas, por exemplo: set1 = {'a', 'b', 'c'}.
Usando o construtor de tipo set(iterable) com um objeto iterável, como uma lista, uma tupla ou
mesmo uma sequência de caracteres (string).
Con�ra, a seguir, um exemplo de criação de conjuntos:
# Criando um conjunto vazio
meu_conjunto = set()
# Adicionando elementos ao conjunto
https://docs.python.org/pt-br/3/library/stdtypes.html
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
meu_conjunto.add(10)
meu_conjunto.add(20)
meu_conjunto.add(30)
# Imprimindo o conjunto
print(“Conjunto após adicionar elementos:”, meu_conjunto)
# Veri�cando se um elemento está no conjunto
elemento = 20
if elemento in meu_conjunto:
    print(f”{elemento} está no conjunto.”)
else:
    print(f”{elemento} não está no conjunto.”)
# Removendo um elemento do conjunto
meu_conjunto.remove(20)
# Imprimindo o conjunto atualizado
print(“Conjunto após remover o elemento 20:”, meu_conjunto)
Nesse código, criamos um conjunto vazio, chamado meu_conjunto, e adicionamos elementos a
ele usando o método add(). Em seguida, veri�camos se um elemento especí�co está no conjunto
utilizando a instrução in. Por �m, removemos um elemento com o método remove() e
imprimimos o conjunto atualizado. Conjuntos são úteis para armazenar valores únicos e efetuar
operações de pertencimento.
Objetos do tipo mapping
As estruturas de dados que estabelecem uma relação entre chaves e valores são conhecidas
como objetos do tipo mapping. Em Python, o principal objeto que atende a essa propriedade é o
dicionário, representado pelo tipo dict. Dicionários são mutáveis, o que signi�ca que podemos
modi�car o valor associado a uma chave existente ou adicionar novas chaves.
Podemos criar dicionários em Python das seguintes maneiras:
Usando um par de chaves para denotar um dicionário vazio: dicionario1 = {}.
Usando pares de elementos na forma “chave: valor” separados por vírgulas: dicionario2 =
{‘um’: 1, ‘dois’: 2, ‘três': 3}.
Usando o construtor de tipo dict().
Observe, a seguir, alguns exemplos desses diferentes modos de criar um dicionário:
# Exemplo 1 - Criação de um dicionário vazio, seguido de atribuição de chaves e valores
dici_1 = {}
dici_1['nome'] = “Maria”
dici_1['idade'] = 25
# Exemplo 2 - Criação de um dicionário com pares chave: valor
dici_2 = {'nome': 'Maria', 'idade': 25}
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
# Exemplo 3 - Criação de um dicionário com uma lista de tuplas representando pares chave:
valor
dici_3 = dict([('nome', “Maria”), ('idade', 25)])
# Exemplo 4 - Criação de um dicionário usando a função built-in zip() e duas listas, uma para
as chaves e outra para os valores
dici_4 = dict(zip(['nome', 'idade'], [“Maria”, 25]))
# Teste se todas as construções resultam em objetos iguais
print(dici_1 == dici_2 == dici_3 == dici_4)  # Deve imprimir True
print(dici_1)
#Resultado:
True
{'nome': 'Maria', 'idade': 25}
Mostramos quatro maneiras distintas de criar dicionários e atribuir valores a eles. Para acessar
um valor em um dicionário, use a notação nome_dicionario[chave]. Já para atribuir um novo valor,
utilize nome_dicionario[chave] = novo_valor. Dicionários são úteis para armazenar informações
associadas por chaves exclusivas.
 
Siga em Frente...
Objetos do tipo array NumPy
As estruturas de dados em Python abrangem uma ampla variedade de objetos e bibliotecas,
cada qual projetado para funções especí�cas. Um recurso poderoso que se destaca nesse
contexto é a biblioteca NumPy, desenvolvida para suportar a computação cientí�ca com Python.
NumPy oferece uma vasta gama de funcionalidades, incluindo arrays multidimensionais e
funções so�sticadas. Além disso, disponibiliza ferramentas para integração com código em
C/C++ e Fortran, bem como recursos essenciais de álgebra linear, transformada de Fourier e
geração de números aleatórios.
Para começar a utilizar o NumPy, é necessário instalá-lo no ambiente Python. Você pode fazer
isso facilmente com o comando pip install numpy. Em plataformas como o Anaconda ou Google
Colab, o NumPy já está incluído. Depois de instalado, você deve importar a biblioteca em seu
projeto usando o comando import numpy sempre que quiser aproveitar seus recursos
vantajosos.
A biblioteca NumPy é particularmente valiosa para cientistas de dados e desenvolvedores de
soluções de inteligência arti�cial, pois permite lidar de maneira e�ciente com matrizes de dados
complexas e realizar operações avançadas. Se você estiver interessado em aprender mais sobre
o NumPy, é interessante veri�car a documentação completa dessa biblioteca em numpy.
Con�ra o código a seguir:
https://numpy.org/
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
# Importe a biblioteca NumPy
import numpy as np
# Crie um array NumPy de números inteiros
my_array = np.array([1, 2, 3, 4, 5])
# Imprima o array
print(“Array original:”)
print(my_array)
# Realize operações matemáticas com o array
squared_array = my_array ** 2  # Eleva cada elemento ao quadrado
sum_of_elements = np.sum(my_array)  # Calcula a soma de todos os elementos
# Imprima os resultados
print(“\nArray ao quadrado:”)
print(squared_array)
print(“\nSoma dos elementos:”)
print(sum_of_elements)
# Acesse elementos do array
element_at_index_2 = my_array[2]  # Acessa o elemento no índice 2
print(“\nElemento no índice 2:”, element_at_index_2)
#Resultado
Array original:
[1 2 3 4 5]
Array ao quadrado:
[1 4 9 16 25]
Soma dos elementos:
15
Elemento no índice 2: 3
Nesse código, importamos o NumPy como np, criamos um array NumPy chamado my_array,
realizamos operações matemáticas nele e acessamos elementos por índice. O NumPy oferece
uma maneira e�ciente de trabalhar com matrizes e executar operações em massa.
Vamos Exercitar?
Agora, vamos colocar em prática o que aprendemos nesta aula para resolver nosso problema
inicial. Como podemos usar conjuntos (sets) para identi�car as diferentes regiões dos
participantes do evento cientí�co, dicionários para categorizar suas a�liações e arrays NumPy
para analisar as áreas de interesse?
# Importe as bibliotecas necessárias
import numpy as np
# Dados dos participantes
participantes = [
    {
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
        “nome”: “Alice”,
        “localizacao”: “EUA”,
        “a�liacao”: “Universidade A”,
        “interesses”: [“Física”, “Astronomia”]
    },
    {
        “nome”: “Bob”,
        “localizacao”: “Brasil”,
        “a�liacao”: “Instituto B”,
        “interesses”: [“Biologia”, “Astronomia”]
    },
    {
        “nome”: “Charlie”,
        “localizacao”: “Índia”,
        “a�liacao”: “Instituto C”,
        “interesses”: [“Química”, “Engenharia”]
    }
    # Adicione mais participantes conforme necessário
]
# Usando sets para identi�car diferentes regiões dos participantes
regioes = set(participante[“localizacao”] for participante in participantes)
# Usando um dicionário para categorizar a�liações
a�liacoes = {}
for participante in participantes:
    a�liacao = participante[“a�liacao”]
    if a�liacao not in a�liacoes:
        a�liacoes[a�liacao] = []
    a�liacoes[a�liacao].append(participante[“nome”])# Usando NumPy para analisar áreas de interesse
areas_de_interesse = np.array([interesse for participante in participantes for interesse in
participante[“interesses”]])
interesses_unicos, contagem = np.unique(areas_de_interesse, return_counts=True)
area_mais_popular = interesses_unicos[np.argmax(contagem)]
# Resultados
print(“Regiões dos participantes:”, regioes)
print(“A�liações dos participantes:”)
for a�liacao, nomes in a�liacoes.items():
    print(f”{a�liacao}: {', '.join(nomes)}”)
print(“Área de interesse mais popular:”, area_mais_popular)
#Resultado: 
Regiões dos participantes: {'Índia', 'EUA', 'Brasil'}
A�liações dos participantes:
Universidade A: Alice
Instituto B: Bob
Instituto C: Charlie
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Área de interesse mais popular: Astronomia
Esse código usa conjuntos para identi�car as diferentes regiões dos participantes, um dicionário
para categorizar suas a�liações e o NumPy para avaliar as áreas de interesse. Os resultados são
exibidos no �nal do código.
Gostou dessa solução? Espero que sim! Já estamos avançando bastante em nossa trajetória de
estudos, desta vez utilizando bibliotecas do Python. Faça mudanças no código e pratique!
Saiba mais
1. Para entender mais detalhes sobre o uso do NumPy, sugiro a leitura do artigo Os principais
setores de emprego na Mesorregião do Sul/Sudoeste de Minas: uma análise multivariada, que
exibe uma análise empírica quantitativa cujo objetivo foi veri�car como se comportam os índices
de empregabilidade utilizando Pyhton.
PAPANDRÉA, P. J.; PEREIRA, A. de S.; PAIVA, A. P. de. Os principais setores de emprego na
Mesorregião do Sul/Sudoeste de Minas: uma análise multivariada. Produção Online,
Florianópolis, SC, v. 22, n. 4, p. 3528-3554, 2022.
2. Para exercitar os conhecimentos aprendidos nesta aula, faça a leitura do livro Python 3:
conceitos e aplicações: uma abordagem didática.
BANIN, S. L. Python 3: conceitos e aplicações: uma abordagem didática. São Paulo: Érica,
2018. E-book.
3. Outra dica para estudo e aprofundamento sobre esse tema é o livro Use a cabeça! Python.
BARRY, P. Use a Cabeça! Python. 2. ed. Rio de Janeiro: Alta Books, 2018. E-book.
Referências
BARRY, P. Use a Cabeça! Python. 2. ed. Rio de Janeiro: Alta Books, 2018. E-book. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9786555207842. Acesso em: 12 out. 2023.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Algoritmos: lógica para desenvolvimento de
programação de computadores. 29. ed. São Paulo: Érica, 2019.
NUMPY. Página inicial, [s. d.]. Disponível em: https://numpy.org/. Acesso em: 21 out. 2023.
https://www.producaoonline.org.br/rpo/article/view/4716/2242
https://www.producaoonline.org.br/rpo/article/view/4716/2242
https://integrada.minhabiblioteca.com.br/books/9788536530253
https://integrada.minhabiblioteca.com.br/books/9788536530253
https://integrada.minhabiblioteca.com.br/#/books/9786555207842
https://integrada.minhabiblioteca.com.br/#/books/9786555207842
https://docs.python.org/pt-br/3/library/stdtypes.html
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
PAPANDRÉA, P. J.; PEREIRA, A. de S.; PAIVA, A. P. de. Os principais setores de emprego na
Mesorregião do Sul/Sudoeste de Minas: uma análise
multivariada. Produção Online, Florianópolis, SC, v. 22, n. 4, p. 3528-3554, 2022. Disponível em:
https://www.producaoonline.org.br/rpo/article/view/4716/2242. Acesso em: 21 out. 2023.
TIPOS embutidos. Python 3.12.2 Documentation, [s. d.]. Disponível em:
https://docs.python.org/pt-br/3/library/stdtypes.html. Acesso em: 21 out. 2023.
Aula 3
Classes e Métodos em Python
Classes e métodos em Python
Este conteúdo é um vídeo!
Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender
conteúdos importantes para a sua formação pro�ssional. Vamos assisti-la? 
Bons estudos! 
Ponto de Partida
Quando pensamos em programação, devemos nos atentar à orientação a objetos, um paradigma
essencial nesse contexto, pois organiza o código em torno de objetos, cada um representando
entidades do mundo real.
Nesta etapa de aprendizagem, descobriremos, em Python, como criar classes, que são os
modelos para a construção de objetos, e de que maneira é possível de�nir atributos e métodos
dentro delas.
https://www.producaoonline.org.br/rpo/article/view/4716/2242
https://docs.python.org/pt-br/3/library/stdtypes.html
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Discutiremos, também, sobre a herança em Python, a qual permite que classes-�lhas herdem
atributos e métodos de classes-pai, promovendo a reutilização de código e a criação de
hierarquias de classes.
Você obterá uma compreensão sólida sobre esses conceitos fundamentais relativos à
orientação a objetos e estará pronto para criar estruturas de código mais organizadas e
reutilizáveis em Python.
Imagine, agora, a seguinte situação: você precisa criar um algoritmo que, a partir de
características imputadas, mostre um resumo e o status de um veículo. Você também deve fazer
algo semelhante para promover uma subdivisão dessa classe veículos. Vamos, juntos, resolver
essa demanda?
Vamos Começar!
Introdução à orientação a objetos
Na indústria de software, a evolução é constante, com tecnologias que mudam rapidamente, mas
os conceitos fundamentais do paradigma de programação orientada a objetos permanecem
sólidos e são cruciais. Compreender esses conceitos é essencial, pois permite que você os
implemente em qualquer tecnologia adotada pela sua empresa, independentemente de
mudanças frequentes.
A programação orientada a objetos tem suas raízes �ncadas na década de 1960, mas só ganhou
destaque a partir de 1990. Uma linguagem de programação é considerada orientada a objetos
quando incorpora os princípios de abstração e suporta o uso de encapsulamento, herança e
polimor�smo.
No entanto, para entender completamente a programação orientada a objetos, é importante
compreender o que são objetos e qual é o papel das classes.
Os programas são construídos em torno de objetos, que são as unidades fundamentais. Uma
classe atua como um modelo para um objeto. Pode-se pensar em uma classe como o projeto de
uma casa, no qual um arquiteto de�ne todos os detalhes da estrutura. A classe organiza os
dados e comportamentos que os objetos de uma classe especí�ca terão.
Con�ra, a seguir, um exemplo de classe:
Classe: Pessoa
Atributos (dados):
Nome:
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Idade:
Gênero:
Métodos (comportamentos):
Cumprimentar: saúda como “Olá, meu nome é”.
Aniversário: aumenta a idade em 1.
Objeto 1: Pessoa1
Atributos (dados):
Nome: João
Idade: 30
Gênero: Masculino
Métodos (comportamentos):
Cumprimentar: saúda como “Olá, meu nome é João”.
Aniversário: aumenta a idade em 1.
Nesse exemplo, a classe “Pessoa” de�ne os atributos (nome, idade, gênero) e métodos
(cumprimentar, aniversário) que o objeto “Pessoa1” pode usar.
Cada objeto tem seus próprios atributos, mas compartilha os mesmos métodos da classe. Isso
demonstra como a programação orientada a objetos modela entidades do mundo real.
Para as classes, temos os seguintes “componentes” principais:
Atributos: são os dados que representam o estado do objeto, como nome e idade.
Métodos: de�nem o comportamento do objeto, indicando as ações que ele pode executar,
como cumprimentar ou fazer login.
Encapsulamento: combina atributos e métodos em uma entidade, permitindo controlar o
acesso a atributos por meio de métodos.
Herança: possibilita que uma classe herde atributos e métodos de outra, promovendo o
reúso de código e a organização hierárquica, como na relação entre as classes pessoa,
funcionário e cliente.
Polimor�smo: refere-se à capacidade de várias classes responderem de forma diferente a
uma mesma mensagem, graças à herançae às respostas especí�cas de cada classe às
mensagens.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Classes em Python
Python é uma linguagem que oferece suporte ao paradigma orientado a objetos, viabilizando a
implementação de encapsulamento, herança e polimor�smo. A criação de uma classe em
Python é feita com a palavra reservada “class”, seguida do nome da classe, e em um bloco
indentado são de�nidos os atributos e métodos.
# De�ne uma classe chamada Pessoa.
class Pessoa:
    # O método __init__ é um construtor, chamado quando um objeto da classe é criado.
    # Ele inicializa os atributos da classe.
    def __init__(self, nome, idade, genero):
        # self é uma convenção em Python que se refere à própria instância da classe.
        # Os parâmetros nome, idade e gênero são passados durante a criação do objeto.
        # Eles são usados para inicializar os atributos da instância.
        self.nome = nome  # Atribui o valor de nome ao atributo nome da instância.
        self.idade = idade  # Atribui o valor de idade ao atributo idade da instância.
        self.genero = genero  # Atribui o valor de gênero ao atributo gênero da instância.
    # O método cumprimentar retorna uma saudação com o nome da pessoa.
    def cumprimentar(self):
        return f”Olá, meu nome é {self.nome}.”
    # O método aniversário aumenta a idade da pessoa em 1.
    def aniversario(self):
        self.idade += 1
# Cria uma instância da classe “Pessoa” com os valores “João”, 30 e “Masculino” para nome,
idade e gênero, respectivamente.
pessoa1 = Pessoa(“João”, 30, “Masculino”)
# Chama o método “cumprimentar” na instância pessoa1 e imprime a saudação.
print(pessoa1.cumprimentar())  # Saída: “Olá, meu nome é João.”
# Acessa o atributo idade da instância pessoa1 e imprime sua idade.
print(f”Idade: {pessoa1.idade}”)  # Saída: “Idade: 30”
# Chama o método “aniversário” na instância pessoa1 para aumentar sua idade em 1.
pessoa1.aniversario()
# Acessa o atributo idade atualizado da instância pessoa1 e imprime a nova idade.
print(f”Nova idade: {pessoa1.idade}”)  # Saída: “Nova idade: 31”
Nesse exemplo, criamos a classe “Pessoa” com os atributos nome, idade e gênero, bem como os
métodos cumprimentar e aniversário. Depois, construímos uma instância da classe “pessoa1” e
demonstramos como acessar os atributos e chamar os métodos dessa instância.
O construtor da classe __init__() é capaz de receber um valor diferente para cada objeto, o que é
de suma importância na construção da classe. Note que nesse caso determinamos dois tipos
diferentes de atributos: duas strings (nome e gênero) e um int (idade).
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Herança em Python
A herança é um dos pilares fundamentais da programação orientada a objetos, pois permite que
uma classe (a classe-�lha) herde características e comportamentos de outra classe (a classe-
pai). Em Python, essa técnica é amplamente suportada e �exível, possibilitando que uma classe-
�lha herde de múltiplas classes-pai, processo que con�gura um conceito conhecido como
herança múltipla.
A sintaxe para criar uma classe-�lha que herda de uma classe-pai é simples e legível. A classe-
�lha é de�nida após o nome da classe-pai, entre parênteses.
Acompanhe, a seguir, a forma básica:
class ClasseFilha(ClassePai):
# De�nição da classe-�lha
 
class ClasseFilha(ClassePai1, ClassePai2, ClassePai3):
    # De�nição da classe-�lha
Siga em Frente...
Benefícios da herança
1. Reutilização de código: a herança permite que você reutilize o código existente,
aproveitando a estrutura e a funcionalidade de classes-pai em suas subclasses.
2. Extensibilidade: você pode estender ou adicionar comportamentos especí�cos às classes-
�lhas sem modi�car as classes-pai, mantendo a coesão e a organização do código.
3. Hierarquia de classes: é possível criar uma hierarquia de classes na qual classes-�lhas
podem herdar características comuns de classes-pai e, por sua vez, serem herdadas por
outras classes.
Imagine um cenário no qual tenhamos uma classe-pai chamada “Animal” com atributos e
métodos gerais para representar qualquer animal. Podemos criar classes-�lhas, como “Cachorro”
e “Gato,” que herdam essas características gerais, mas que também podem ter comportamentos
especí�cos, como latir e miar, respectivamente. Dessa forma, aproveitamos a reutilização de
código e estendemos funcionalidades de acordo com a necessidade.
class Animal:
    def __init__(self, nome):
        self.nome = nome
    def fazer_barulho(self):
        pass
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
class Cachorro(Animal):
    def fazer_barulho(self):
        return “Latir”
class Gato(Animal):
    def fazer_barulho(self):
        return “Miar”
 
# Criando objetos das classes-�lhas
rex = Cachorro(“Rex”)
whiskers = Gato(“Whiskers”)
# Chamando o método fazer_barulho em objetos
print(f”{rex.nome} faz: {rex.fazer_barulho()}”)  # Saída: “Rex faz: Latir”
print(f”{whiskers.nome} faz: {whiskers.fazer_barulho()}”)  # Saída: “Whiskers faz: Miar”
Nesse exemplo, criamos objetos “rex” e “whiskers” das classes-�lhas “Cachorro” e “Gato”,
respectivamente. Em seguida, chamamos o método fazer_barulho() em cada objeto para
determinar o som que cada animal faz. Isso ilustra a herança em ação, quando as classes-�lhas
herdam o método da classe-pai, mas podem fornecer suas próprias implementações.
Vamos Exercitar?
Agora é a hora de criar nossa classe e fazer a aplicação dos conhecimentos obtidos nesta aula.
Vamos lá! Primeiro, devemos trazer as características (atributos) da classe veículo: marca,
modelo e ano. Para os métodos, vamos adicionar a velocidade a partir da aceleração e diminuir a
velocidade por meio da frenagem. Por �m, mostraremos os atributos e a velocidade atual do
veículo.
class Veiculo:
    def __init__(self, marca, modelo, ano):
        self.marca = marca
        self.modelo = modelo
        self.ano = ano
        self.velocidade = 0
 
    def acelerar(self, incremento):
        self.velocidade += incremento
 
    def frear(self, decremento):
        self.velocidade -= decremento
 
    def status(self):
        return f”Marca: {self.marca}, Modelo: {self.modelo}, Ano: {self.ano}, Velocidade:
{self.velocidade} km/h”
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
 
class Carro(Veiculo):
    def __init__(self, marca, modelo, ano, potencia):
        super().__init__(marca, modelo, ano)
        self.potencia = potencia
 
    def acelerar(self, incremento):
        # Carros podem acelerar mais rápido.
        self.velocidade += incremento + self.potencia
 
class Bicicleta(Veiculo):
    def __init__(self, marca, modelo, ano, tipo):
        super().__init__(marca, modelo, ano)
        self.tipo = tipo
 
    def status(self):
        return f”Marca: {self.marca}, Modelo: {self.modelo}, Ano: {self.ano}, Tipo: {self.tipo},
Velocidade: {self.velocidade} km/h”
 
# Criando objetos
carro1 = Carro(“Toyota”, “Corolla”, 2022, 150)
bicicleta1 = Bicicleta(“Trek”, “Mountain Bike”, 2021, “MTB”)
 
# Acelerando e veri�cando o status
carro1.acelerar(50)
bicicleta1.acelerar(20)
 
# Exibindo o status dos veículos
print(“Status do Carro:”)
print(carro1.status())
 
print(“\nStatus da Bicicleta:”)
print(bicicleta1.status())
Temos a classe-pai “Veiculo”, com atributos e métodos gerais; a classe-�lha “Carro”, que herda de
“Veiculo” e inclui a potência no método de aceleração; e a classe-�lha “Bicicleta”, que herda de
“Veiculo” e inclui o tipo no método de status. Criamos objetos de carros e bicicletas, e
demonstramos como eles podem herdar atributos e métodos da classe-pai, enquanto as classes-
�lhas podem fornecer suas próprias implementações.
Gostou dessa solução? Espero que sim! Rode esse código no colab, faça modi�cações e
“brinque” com ele. Lembre-se de que a prática é extremamente importante para alcançar
melhorias.
https://colab.research.google.com/
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Saiba mais
1. O livro Introdução à computação usando Python: um foco no desenvolvimento de aplicações
apresenta uma introdução à programação, ao desenvolvimento de aplicaçõesde computador e à
ciência da computação. Logo, para você, que está iniciando seu aprendizado em Python, essa
obra representa uma leitura importante.
PERKOVIC, L. Introdução à computação usando Python: um foco no desenvolvimento de
aplicações. Rio de Janeiro: LTC, 2016.
2. Outra leitura interessante para quem está começando a programar em Python é a do livro
Começando a programar em Python para leigos.
MUELLER, J. P. Começando a programar em Python para leigos. Rio de Janeiro: Alta Books, 2020.
E-book.
3. Por �m, outra dica para estudo e aprofundamento sobre esse tema é o livro Use a cabeça!
Python.
BARRY, P. Use a Cabeça! Python. 2. ed. Rio de Janeiro: Alta Books, 2018. E-book.
Referências
9. CLASSES. Python 3.12.2 Documentation, 8 fev. 2020. Disponível
em: https://docs.python.org/pt-br/3/tutorial/classes.html. Acesso em: 25 out. 2023.
BARRY, P. Use a Cabeça! Python. 2. ed. Rio de Janeiro: Alta Books, 2018. E-book. Disponível em
https://integrada.minhabiblioteca.com.br/#/books/9786555207842. Acesso em: 12 out. 2023.
GOOGLE COLAB. Página inicial, [s. d.]. Disponível em: https://colab.research.google.com/.
Acesso em: 25 out. 2023.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Algoritmos: lógica para desenvolvimento de
programação de computadores. 29. ed. São Paulo: Érica, 2019.
MUELLER, J. P. Começando a programar em Python para leigos. Rio de Janeiro: Alta Books, 2020.
E-book. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9786555202298. Acesso em: 12 out. 2023.
PERKOVIC, L. Introdução à computação usando Python: um foco no desenvolvimento de
aplicações. Rio de Janeiro: LTC, 2016.
https://integrada.minhabiblioteca.com.br/#/books/9786555202298
https://integrada.minhabiblioteca.com.br/#/books/9786555202298
https://integrada.minhabiblioteca.com.br/#/books/9786555202298
https://integrada.minhabiblioteca.com.br/#/books/9786555207842
https://integrada.minhabiblioteca.com.br/#/books/9786555207842
https://docs.python.org/pt-br/3/tutorial/classes.html
https://integrada.minhabiblioteca.com.br/#/books/9786555207842
https://colab.research.google.com/
https://integrada.minhabiblioteca.com.br/#/books/9786555202298
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
 
Aula 4
Bibliotecas e Módulos em Python
Bibliotecas e módulos em Python
Este conteúdo é um vídeo!
Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender
conteúdos importantes para a sua formação pro�ssional. Vamos assisti-la? 
Bons estudos! 
Ponto de Partida
Que a linguagem Python tem suas qualidades você já sabe, agora vamos começar a investigar
conceitos e ferramentas que fazem da Python uma potência atual quando se trata de
programação.
Você estudará sobre módulos e biblioteca em Python, que são componentes de código que
servem como conjuntos de funções em Python, os quais facilitam a organização do código e a
reutilização de funções em várias aplicações.
Esses módulos são classi�cados em três tipos: built-in, de terceiros e próprios. O primeiro
módulo é “pronto” e já vem na instalação do Python. Os módulos de terceiros são produzidos por
desenvolvedores e disponibilizados via PyPI. Por �m, os próprios consistem na construção de
nós para resolver um determinado problema e podem ser reutilizados.
Também vamos examinar um módulo/biblioteca de terceiros: o Matplotlib, que é uma biblioteca
de visualização, uma das mais populares em Python, vale ressaltar.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Suponha que você precise visualizar a contagem de venda de um produto hipotético. Vamos usar
os conhecimentos obtidos nesta aula para construir essa visualização?
Vamos Começar!
Módulos e biblioteca em Python
Existem duas abordagens principais para se organizar o código em Python: usando funções ou
classes para encapsular funcionalidades; e dividindo o código em vários arquivos .py para
modularizar a solução. O ideal é combinar essas técnicas, criando módulos separados em
arquivos independentes. De acordo com a documentação o�cial do Python, é recomendável
separar funcionalidades que podem ser reutilizadas em módulos distintos. Essa abordagem de
modularização ajuda a manter o código mais organizado e legível, facilitando a manutenção e a
reutilização de componentes.
Mas, a�nal, o que são módulos? São componentes de código que servem como bibliotecas ou
conjuntos de funções em Python. Eles abrigam uma variedade de funcionalidades, incluindo
operações matemáticas, interações com o sistema operacional e muitas outras atividades.
Módulos representam uma maneira elegante e e�caz de reutilizar código em diferentes partes de
um programa ou em projetos distintos.
Em Python, frequentemente ouvimos falar tanto de módulos quanto de bibliotecas. A relação
entre esses elementos tem a ver com o fato de que, na prática, um módulo pode ser considerado
uma biblioteca de códigos. Para ilustrar essa ideia, considere o módulo “math”, que oferece
várias funções matemáticas, e o módulo “os”, que disponibiliza funções relacionadas ao sistema
operacional, como obtenção do diretório de trabalho atual (getcwd), listagem de arquivos em um
diretório (listdir), criação de pastas (mkdir), entre muitos outros recursos. Esses módulos são
essencialmente bibliotecas de funções relacionadas a áreas especí�cas, como matemática e
operações do sistema, viabilizando a reutilização e�ciente e elegante de um código.
Como utilizar um módulo?
#primeiro modo
import math
 
math.sqrt(25)
math.log2(1024)
math.cos(45)
#segundo modo
import math as m
 
m.sqrt(25)
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
m.log2(1024)
m.cos(45)
 
#terceiro modo
from math import sqrt, log2, cos
 
sqrt(25)
log2(1024)
cos(45)
 
#resultado para todos: 0.5253219888177297
No primeiro modo, usamos a importação que carrega todas as funções na memória, trouxemos
toda a funcionalidade de “math” e colocamos math.sqrt, por exemplo, para chamar a função sqrt.
No segundo modo, utilizamos a importação que carrega todas as funções na memória, mas,
nesse caso, demos um apelido para o módulo. Utilizamos m.sqrt, por exemplo, para chamar a
função sqrt.
No terceiro modo, usamos a importação que carrega funções especí�cas na memória, utilizando-
a diretamente – sqrt(), por exemplo.
Classi�cação dos módulos (built-in, de terceiros e próprios)
Podemos classi�car os módulos (bibliotecas) em três categorias:
1. Módulos built-in: embutidos no interpretador.
2. Módulos de terceiros: criados por terceiros e disponibilizados via PyPI.
3. Módulos próprios: criados pelo desenvolvedor.
Os módulos built-in fazem parte do núcleo da linguagem e estão disponíveis diretamente no
interpretador, sem a necessidade de instalação adicional. São carregados automaticamente
quando você inicia o interpretador Python e fornecem funcionalidades básicas que são comuns a
muitos programas. Alguns exemplos de módulos built-in em Python são: math; os; svs; Random;
datetime; re; collections.
Esses são apenas alguns exemplos dos muitos módulos built-in disponíveis em Python. Eles são
amplamente utilizados em muitos programas Python e concedem funcionalidades essenciais
para várias tarefas.
Os módulos de terceiros em Python são extensões de funcionalidade que não fazem parte da
biblioteca-padrão do Python, mas são criados e mantidos por desenvolvedores externos à
comunidade o�cial do Python. Eles são frequentemente distribuídos por meio do Python
Package Index (PyPI) e podem ser instalados no ambiente Python para adicionar funcionalidades
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
extras aos seus programas. Con�ra, a seguir, alguns pontos importantes sobre módulos de
terceiros:
1. Ampliam a funcionalidade do Python em diversas áreas, como na manipulação de dados,
grá�cos, interfaces grá�cas, integraçãocom bancos de dados e aprendizado de máquina.
2.   A instalação é feita usando o gerenciador de pacotes padrão: pip. Exemplo: pip install
requests.
3. Gerenciar dependências é essencial à medida que projetos crescem. O uso de um arquivo
requirements.txt facilita a instalação de todas as dependências em um único comando pip.
4. Ambientes virtuais isolam projetos Python para evitar con�itos entre diferentes versões de
módulos de terceiros.
5. Conhecer as licenças dos módulos de terceiros é importante, pois eles podem variar de
código aberto a proprietário, e a qualidade da manutenção pode mudar.
�. Módulos de terceiros geralmente possuem comunidades ativas de desenvolvedores e
documentação rica, fornecendo suporte e recursos valiosos.
Como exemplos de módulos de terceiros, podemos citar: NumPy, pandas e Matplotlib.
Já os módulos próprios, também conhecidos como módulos personalizados ou módulos
de�nidos pelo usuário, são módulos em Python que você cria para organizar e reutilizar seu
próprio código. Eles são uma parte importante da prática de desenvolvimento em Python, pois
permitem dividir seu código em unidades lógicas, tornando-o mais legível, manutenível e
reutilizável.
Vale destacar que os módulos próprios constituem-se como uma ferramenta poderosa para
organizar, reutilizar e compartilhar códigos em Python. Eles permitem que você crie bibliotecas
personalizadas para atender às necessidades especí�cas dos seus projetos e promovem a
modularização, que é uma prática recomendada no desenvolvimento de software.
Siga em Frente...
Matplotlib
O Matplotlib é uma das bibliotecas de visualização mais populares em Python, já que oferece
uma ampla gama de recursos para criar grá�cos e visualizações de dados de maneira �exível e
personalizável. É frequentemente usado para construir grá�cos estáticos, interativos e até
mesmo animações.
Para utilizar o Matplotlib, você normalmente precisa importar o módulo pyplot, que fornece uma
interface de alto nível para criar grá�cos de modo conveniente. Observe, a seguir, um exemplo
simples de como elaborar um grá�co de linha usando o Matplotlib:
import matplotlib.pyplot as plt
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
 
# Dados
x = [1, 2, 3, 4, 5]
y = [2, 4, 1, 3, 5]
 
# Criar um grá�co de linha
plt.plot(x, y)
 
# Adicionar rótulos aos eixos
plt.xlabel('Eixo X')
plt.ylabel('Eixo Y')
 
# Adicionar um título ao grá�co
plt.title('Exemplo de Grá�co de Linha')
 
# Mostrar o grá�co
plt.show()
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Figura 1 | Exemplo de grá�co de linha. Fonte: elaborada pelo autor.
Nesse exemplo:
1. Importamos o módulo pyplot do Matplotlib como plt.
2. De�nimos listas x e y, que representam os pontos do grá�co.
3. Usamos plt.plot(x, y) para criar o grá�co de linha.
4. Adicionamos rótulos aos eixos X e Y com plt.xlabel() e plt.ylabel().
5. Adicionamos um título ao grá�co com plt.title().
�. Por �m, usamos plt.show() para exibir o grá�co.
O código apresentado anteriormente cria um simples grá�co de linha com os pontos (1, 2), (2, 4),
(3, 1), (4, 3) e (5, 5), rotulando os eixos e dando um título ao grá�co.
O Matplotlib disponibiliza uma variedade de opções de personalização para grá�cos, permitindo
que você ajuste cores, estilos de linha, marcadores e muitos outros aspectos. Trata-se de uma
biblioteca e�ciente para criar grá�cos de alta qualidade em Python, sendo amplamente utilizada
na análise e visualização de dados.
Vamos Exercitar?
Para resolver o problema inicial, criaremos uma situação hipotética:
import matplotlib.pyplot as plt
 
# Dados de exemplo
meses = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio']
vendas = [120, 90, 150, 80, 200]
 
# Criar um grá�co de barras
plt.bar(meses, vendas, color='royalblue')
 
# Adicionar rótulos aos eixos
plt.xlabel('Mês')
plt.ylabel('Vendas (em unidades)')
 
# Adicionar um título ao grá�co
plt.title('Vendas Mensais')
 
# Mostrar o grá�co
plt.show()
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Figura 2 | Valores mensais. Fonte: elaborada pelo autor.
Esse código cria um grá�co de barras que exibe as vendas por mês. Você pode personalizar
ainda mais esse grá�co ajustando cores, estilos e outros parâmetros de acordo com suas
necessidades. O Matplotlib concede muitas opções de customização para criar grá�cos
visualmente atraentes.
Por meio desse conhecimento, você se sentirá cada vez mais preparado para elaborar soluções
criativas e aplicá-las a diversas realidades. Lembre-se de sempre praticar!
Saiba mais
1. Para aprender mais detalhes sobre aplicações do Python, especialmente quanto ao Matplotlib,
sugiro a leitura do artigo Introdução à estilometria com Python. Nesse texto, apresentam-se
análises estilométricas, que dizem respeito ao estudo quantitativo do estilo literário por meio de
métodos de leitura distante computacional. Para acessar o material sugerido, clique no link a
seguir.
https://programminghistorian.org/pt/licoes/introducao-estilometria-python
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
LARAMÉE, F. D. Introdução à estilometria com Python. Programming Historian, 21 abr. 2018.
2. Outra dica para estudo e aprofundamento sobre esse tema é o livro Use a cabeça! Python.
BARRY, P. Use a cabeça! Python. 2. ed. Rio de Janeiro: Alta Books, 2018. E-book.
3. Para entender como funciona a aplicação do Python em data science, sugiro a leitura do
capítulo 3 do livro Data science do zero.
GRUS, J. Data science do zero: primeiras regras com o Python. Rio de Janeiro: Alta Books, 2021.
E-book.
Referências
6. MÓDULOS. Python 3.12.2 Documentation, [s. d.]. Disponível em: https://docs.python.org/pt-
br/3/tutorial/modules.html. Acesso em: 25 out. 2023.
BARRY, P. Use a cabeça! Python. 2. ed. Rio de Janeiro: Alta Books, 2018. E-book. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9786555207842. Acesso em: 12 out. 2023.
GRUS, J. Data science do zero: primeiras regras com o Python. Rio de Janeiro: Alta Books, 2021.
E-book. Disponível em: https://integrada.minhabiblioteca.com.br/#/books/9788550816463.
Acesso em: 12 out. 2023.
LARAMÉE, F. D. Introdução à estilometria com Python. Programming Historian, 21 abr. 2018.
Disponível em https://programminghistorian.org/pt/licoes/introducao-estilometria-python.
Acesso em: 12 out. 2023.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Algoritmos: lógica para desenvolvimento de
programação de computadores. 29. ed. São Paulo: Érica, 2019.
Aula 5
Explorando Recursos do Python
Videoaula de Encerramento
Este conteúdo é um vídeo!
https://integrada.minhabiblioteca.com.br/#/books/9786555207842
https://integrada.minhabiblioteca.com.br/#/books/9788550816463
https://docs.python.org/pt-br/3/tutorial/modules.html
https://docs.python.org/pt-br/3/tutorial/modules.html
https://integrada.minhabiblioteca.com.br/#/books/9786555207842
https://integrada.minhabiblioteca.com.br/#/books/9788550816463
https://programminghistorian.org/pt/licoes/introducao-estilometria-python
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender
conteúdos importantes para a sua formação pro�ssional. Vamos assisti-la? 
Bons estudos!
Ponto de Chegada
Olá, estudante! Para desenvolver a competência associada a esta unidade de aprendizagem, que
é “Identi�car os pilares da orientação a objetos e sua utilização na linguagem de programação
com Python”, devemos, antes de tudo, conhecer os conceitos relacionados à estrutura dos dados
em Python. Para isso, é necessário saber que a linguagem Python é baseada na orientação a
objetos. Sendo assim, conhecer os tipos de objetos e suas especi�cidades é um ponto crucial
nesse contexto.
Ao longo desta etapa de estudos, foi possível conectar esses conceitos fundamentais com a
construçãode scripts. Você também aprendeu a utilizar diferentes tipos de objeto para resolver
problemas em diversas situações. Além disso, conhecemos o conceito de classe e sua
importância para um código bem estruturado, o qual possa ser reutilizado e modi�cado para
contextos distintos (Manzano; Oliveira, 2019).
Um ponto que merece destaque nesse cenário são as bibliotecas em Python, que podem surgir
como “ferramentas” prontas (built-in ou de terceiros) ou criadas de modo personalizado. Existe
uma grande variedade de bibliotecas, então a prática e a pesquisa para saber qual delas utilizar
são aspectos essenciais para aumentar a gama de “ferramentas” disponíveis do Python.
Durante este processo de aprendizagem, você não apenas assimilou os conceitos e técnicas
apresentados, mas também os colocou em prática por meio de situações do mundo real (Grus,
2021). A construção de scripts utilizando recursos como as bibliotecas Python, além de
aprimorar seu conhecimento, desenvolve sua habilidade de decompor problemas complexos em
etapas lógicas e de criar soluções algorítmicas para esses casos (Perkovic, 2016).
A competência desta unidade de aprendizagem permite que você se torne um solucionador de
problemas com pro�ciência em Python, preparando-o para enfrentar desa�os tecnológicos e
computacionais de forma e�caz.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
É Hora de Praticar!
Este conteúdo é um vídeo!
Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Para contextualizar sua aprendizagem, imagine a seguinte situação: você está desenvolvendo
um programa simples para gerenciar informações sobre livros em uma biblioteca e fazer uma
contagem de livros por ano de publicação.
Questões norteadoras:
1. Como você pode aplicar seus conhecimentos em programação em Python para gerenciar
essas informações?
2. Como é possível criar classes e utilizar bibliotecas para automatizar esse gerenciamento?
Para encerrar e consolidar seu aprendizado, re�ita sobre as seguintes perguntas:
1.      Como as estruturas de dados em Python podem ser usadas para tomar
decisões em programas de forma correta?
2.    Qual é a importância de reutilizar e modi�car classes para otimizar códigos em
Python?
3.      Como você pode aplicar o conhecimento das estruturas dos dados e das
bibliotecas do Python para resolver problemas complexos em sua trajetória
acadêmica e pro�ssional?
Essas considerações ajudarão você a incorporar de maneira mais profunda o conhecimento
adquirido e a compreender o alcance de suas aplicações. Desejo a você muito sucesso em sua
jornada de aprendizagem!
Vamos resolver o desa�o seguindo um passo a passo.
Nesse estudo de caso, usaremos estruturas de dados em Python, bibliotecas, orientação a
objetos e classes para criar um sistema básico de catalogação de livros.
Con�ra, a seguir, o código Python para criar o sistema de catalogação:
import matplotlib.pyplot as plt
# Classe para representar um livro
class Livro:
    def __init__(self, titulo, autor, ano_publicacao):
        self.titulo = titulo
        self.autor = autor
        self.ano_publicacao = ano_publicacao
 
    def __str__(self):
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
        return f{self.titulo} por {self.autor}, Publicado em {self.ano_publicacao}
 
# Criar uma lista de livros
biblioteca = []
# Função para adicionar um livro à biblioteca
def adicionar_livro(titulo, autor, ano_publicacao):
    novo_livro = Livro(titulo, autor, ano_publicacao)
    biblioteca.append(novo_livro)
    print(f{titulo}' foi adicionado à biblioteca.")
# Função para listar todos os livros na biblioteca
def listar_livros():
    print()
    for livro in biblioteca:
        print(livro)
# Adicionar alguns livros à biblioteca
adicionar_livro(, , 1605)
adicionar_livro(, , 1813)
adicionar_livro(, , 1949)
adicionar_livro(, , 1967)
adicionar_livro(, , 1951)
 
# Listar todos os livros na biblioteca
listar_livros()
# Criar um grá�co de livros por ano
anos = list(set(anos))# Remove duplicatas dos anos
anos.sort()
 
# Contagem de livros por ano
contagem_por_ano = [anos.count(ano) for ano in anos]
 
# Criar um grá�co de linha
plt.plot(anos, contagem_por_ano, marker='o', linestyle='-')
plt.xlabel('Ano de Publicação')
plt.ylabel('Número de Livros')
plt.title('Distribuição de Livros na Biblioteca por Ano de Publicação')
 
# Adicionar rótulos aos pontos de dados
for i, valor in enumerate(contagem_por_ano):
    plt.text(anos[i], valor, str(valor), ha='center', va='bottom')
 
plt.grid(True)
 
plt.show()
O resultado é:
O livro 'Dom Quixote' foi adicionado à biblioteca.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
O livro 'Orgulho e Preconceito' foi adicionado à biblioteca.
O livro '1984' foi adicionado à biblioteca.
O livro 'Cem Anos de Solidão' foi adicionado à biblioteca.
O livro 'Apanhador no Campo de Centeio' foi adicionado à biblioteca.
Livros na Biblioteca:
Dom Quixote por Miguel de Cervantes, Publicado em 1605
Orgulho e Preconceito por Jane Austen, Publicado em 1813
1984 por George Orwell, Publicado em 1949
Cem Anos de Solidão por Gabriel Garcia Marquez, Publicado em 1967
Apanhador no Campo de Centeio por J.D. Salinger, Publicado em 1951
Figura 1 | Distribuição de livros na biblioteca por ano de publicação. Fonte: elaborada pelo autor.
Esse exemplo demonstra como você pode aplicar os conceitos de classes, orientação a objetos
e estruturas de dados em Python para criar um sistema simples de gerenciamento de livros em
uma biblioteca. A utilização de bibliotecas Python adicionaria certas funcionalidades, como
salvar e carregar informações de livros a partir de arquivos, bem como interfaces grá�cas para a
interação do usuário.
O material visual a seguir esquematiza os principais tópicos abordados nesta unidade de
aprendizagem, na qual tratamos dos recursos da linguagem Python. Este infográ�co exibe uma
percepção clara e sucinta de cada parte desta etapa de estudos, enfatizando os conceitos e
fundamentos necessários para uma boa compreensão dos saberes desenvolvidos.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Figura 2 | Infográ�co: explorando recursos do Python. Fonte: elaborada pelo autor.
GRUS, J. Data science do zero: primeiras regras com o Python. Rio de Janeiro: Alta Books, 2021.
E-book.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Algoritmos: lógica para desenvolvimento de
programação de computadores. 29. ed. São Paulo: Érica, 2019.
PERKOVIC, L. Introdução à computação usando Python: um foco no desenvolvimento de
aplicações. Rio de Janeiro: LTC, 2016.
,
Unidade 3
Introdução à Análise de Dados com Python
Aula 1
Aplicação de Banco de Dados com Python
Aplicação de banco de dados com Python
Este conteúdo é um vídeo!
Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender
conteúdos importantes para a sua formação pro�ssional. Vamos assisti-la? 
Bons estudos! 
Ponto de Partida
Python é uma linguagem de programação amplamente utilizada para interagir com sistemas de
gerenciamento de banco de dados (SGBD) por meio de bibliotecas como a sqlite3. Essa
biblioteca permite a criação, leitura, atualização e exclusão de dados em bancos de dados SQL,
seguindo o modelo CRUD (Create, Read, Update, Delete). Com a Python, nós, desenvolvedores,
podemos desenvolver aplicativos que se comunicam de forma e�caz com bancos de dados
relacionais, proporcionando �exibilidade e escalabilidade para nossas aplicações.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
O modelo CRUD consiste em uma abordagem fundamental para operações de banco de dados.
Nesse contexto, “Create” envolve a inserção de novos registros,“Read” refere-se à recuperação
de informações, “Update” possibilita a modi�cação de registros existentes e “Delete” diz respeito
à exclusão de dados. Python simpli�ca a implementação dessas operações CRUD, fazendo
desse modelo uma escolha popular para desenvolvedores que desejam criar aplicativos com
funcionalidades de banco de dados e�cientes e robustas.
Suponha, agora, que você precise criar uma tabela de contatos para a comunicação da empresa
em que trabalha. Nessa tabela, a seção “Contatos” deve armazenar informações de contatos,
incluindo nome, e-mail e número de telefone.
Vamos Começar!
Linguagem de consulta estruturada – SQL
A linguagem SQL (Structured Query Language) desempenha um papel fundamental na
comunicação com bancos de dados relacionais. Ela foi inicialmente estabelecida como um
padrão pelo American National Standards Institute (ANSI) em 1986 e passou por várias revisões
desde então. Embora diferentes fornecedores de softwares de banco de dados, como Oracle e
Microsoft, tenham adaptado o SQL com suas extensões e modi�cações exclusivas, ainda existe
um núcleo comum de comandos SQL que é padrão em todos os sistemas.
As instruções em SQL podem ser agrupadas em três categorias principais:
1.    DDL (Data De�nition Language – Linguagem de De�nição de Dados):
Essas instruções se concentram na estrutura do banco de dados, permitindo a criação,
modi�cação e exclusão de bancos de dados e tabelas. Alguns comandos incluem CREATE
(para criar tabelas), ALTER (para modi�car a estrutura) e DROP (para excluir tabelas ou
bancos de dados).
2.    DML (Data Manipulation Language – Linguagem de Manipulação de Dados):
As instruções DML são usadas para recuperar, atualizar, inserir e excluir dados no banco de
dados. Comandos comuns incluem SELECT (para recuperar dados), INSERT (para adicionar
novos registros), UPDATE (para modi�car registros existentes) e DELETE (para excluir
registros).
3.    DCL (Data Control Language – Linguagem de Controle de Dados):
O DCL lida com a segurança e a autorização de acesso aos dados no banco de dados.
Comandos como GRANT (para conceder privilégios) e REVOKE (para revogar privilégios)
são usados para garantir que apenas usuários autorizados possam acessar e modi�car os
dados.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Além dessas categorias, o SQL também oferece funcionalidades avançadas, como agregações,
junções, subconsultas e transações, as quais viabilizam consultas complexas e a manipulação
e�caz de dados. A �exibilidade do SQL o torna uma linguagem poderosa para trabalhar com
bancos de dados relacionais, independentemente do sistema de gerenciamento de banco de
dados (SGBD) especí�co em uso. Embora possa haver variações nas implementações de SQL de
diferentes fornecedores, a base comum permite que os desenvolvedores escrevam consultas
portáteis que funcionam em várias plataformas de banco de dados.
Conexão com banco de dados
Quando desenvolvemos uma aplicação em uma linguagem de programação que precisa interagir
com um Sistema Gerenciador de Banco de Dados Relacional (RDBMS), é essencial estabelecer
uma conexão entre esses dois processos distintos. Depois que a conexão é estabelecida,
podemos enviar comandos SQL para realizar operações no banco de dados. Para viabilizar essa
comunicação entre a linguagem de programação e o RDBMS, fazemos uso de tecnologias como
Open Database Connectivity (ODBC) e Java Database Connectivity (JDBC).
Tanto o ODBC quanto o JDBC oferecem uma maneira padronizada de os programadores
acessarem os recursos do banco de dados a partir de uma Interface de Programação de
Aplicativos (API). Uma das grandes vantagens dessas tecnologias é a possibilidade de que uma
aplicação acesse diferentes
Sistemas Gerenciadores de Banco de Dados sem a necessidade de recompilar o código. Isso se
torna viável porque a comunicação direta com o RDBMS é realizada por meio de um software
especí�co, chamado “driver”, responsável por traduzir as chamadas ODBC e JDBC para a
linguagem compreendida pelo RDBMS.
No contexto de Python, para se comunicar com um RDBMS, podemos usar bibliotecas
especí�cas que incorporam os drivers de fornecedores. Isso permite a conexão e a execução de
comandos SQL no banco de dados. O PEP 249 (Python Database API Speci�cation v2.0)
estabelece regras que os fornecedores devem seguir ao criar módulos para acessar bancos de
dados. Um dos princípios é o de que todos os módulos precisam implementar um método
chamado “connect(parameters...)” para conceber a conexão com o banco. Isso facilita a
alteração do banco de dados, pois apenas os parâmetros de conexão precisam ser ajustados,
sem a necessidade de modi�car o código.
O SQLite é uma poderosa biblioteca de banco de dados escrita em linguagem C que oferece um
mecanismo de banco de dados SQL completo, embora compacto, e de alta con�abilidade.
Diferentemente da maioria dos sistemas de gerenciamento de bancos de dados SQL, o SQLite
opera sem a necessidade de um servidor separado. Em vez disso, ele lê e escreve diretamente
em arquivos de disco. Isso signi�ca que um banco de dados completo, contendo tabelas, índices,
triggers e visualizações, é armazenado em um único arquivo no sistema de arquivos. Para os
desenvolvedores que utilizam
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Python, a linguagem possui um módulo integrado chamado “sqlite3”, o qual permite a interação
com o mecanismo do banco de dados SQLite.
Vamos criar um banco de dados! Faremos nossa implementação no Google Colab.
import sqlite3
 
# 1. Conectar ao banco de dados (ou criar um novo)
conn = sqlite3.connect('exemplo.db')
 
# 2. Criar um objeto cursor
cursor = conn.cursor()
 
# 3. De�nir o comando SQL para criar a tabela
create_table = “““
CREATE TABLE IF NOT EXISTS Produtos (
    id INTEGER PRIMARY KEY,
    nome TEXT NOT NULL,
    preco REAL NOT NULL,
    estoque INTEGER
);
“““
# 4. Executar o comando SQL para criar a tabela
cursor.execute(create_table)
# 5. Con�rmar as alterações (commit)
conn.commit()
# 6. Fechar a conexão com o banco de dados
conn.close()
1.    Importamos o módulo sqlite3 e conectamos (ou criamos) um banco de dados chamado
“exemplo.db”.
2.    Criamos um objeto cursor que nos permite executar comandos SQL.
3.    De�nimos o comando SQL para criar a tabela “Produtos” com campos para “id”, “nome”,
“preco” e “estoque”.
4.    Executamos o comando SQL usando o cursor.
5.    Con�rmamos as alterações no banco de dados com commit().
6.    Por �m, fechamos a conexão com o banco de dados.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
O comando CREATE TABLE é um exemplo de DDL (Data De�nition Language, ou Linguagem de
De�nição de Dados), pois possibilita a de�nição de uma nova estrutura de banco de dados.
Siga em Frente...
CRUD – CREATE, READ, UPDATE, DELETE
Podemos inserir informações (create), ler (read), atualizar (update) e apagar (delete). Os passos
necessários para efetuar uma das operações do CRUD são sempre os mesmos: (i) estabelecer a
conexão com um banco; (ii) criar um cursor e executar o comando; (iii) gravar a operação; (iv)
fechar o cursor e a conexão.
Vamos criar um exemplo no qual haverá a inserção de um novo produto na tabela “Produtos”.
Suponhamos que você deseje adicionar um novo produto com nome, preço e quantidade em
estoque.
import sqlite3
# Conectando ao banco de dados
conn = sqlite3.connect('exemplo.db')
cursor = conn.cursor()
# Dados do novo produto
novo_produto = ('Camiseta', 19.99, 50)
# Comando SQL para inserir o novo produto na tabela
inserir_produto = “INSERT INTO Produtos (nome, preco, estoque) VALUES (?, ?, ?)”
# Executando o comando SQL para inserção
cursor.execute(inserir_produto, novo_produto)
# Con�rmando as alterações
conn.commit()
# Fechando a conexão
conn.close()
import sqlite3
Con�ra, a seguir, um exemplo de como você pode recuperar todos os produtos da tabela
“Produtos” e exibi-los:
# Conectando ao banco de dados
conn = sqlite3.connect('exemplo.db')
cursor = conn.cursor()
# Comando SQL para selecionar todos os produtos
selecionar_produtos = “SELECT * FROM Produtos”# Executando o comando SQL
cursor.execute(selecionar_produtos)
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
# Obtendo todos os registros e exibindo-os
produtos = cursor.fetchall()
for produto in produtos:
    print(produto)
# Fechando a conexão
conn.close()
Acompanhe, agora, um exemplo de como atualizar o preço de um produto especí�co na tabela
“Produtos”:
import sqlite3
# Conectando ao banco de dados
conn = sqlite3.connect('exemplo.db')
cursor = conn.cursor()
# Novo preço e ID do produto a ser atualizado
novo_preco = 24.99
produto_id = 1  # Suponha que queiramos atualizar o produto com ID 1
# Comando SQL para atualizar o preço do produto
atualizar_preco = “UPDATE Produtos SET preco = ? WHERE id = ?”
# Executando o comando SQL de atualização
cursor.execute(atualizar_preco, (novo_preco, produto_id))
# Con�rmando as alterações
conn.commit()
# Fechando a conexão
conn.close()
Observe, a seguir, um exemplo de como excluir um produto da tabela “Produtos” com base no
seu ID:
import sqlite3
# Conectando ao banco de dados
conn = sqlite3.connect('exemplo.db')
cursor = conn.cursor()
# ID do produto a ser excluído
produto_id = 2  # Suponha que queiramos excluir o produto com ID 2
# Comando SQL para excluir o produto
excluir_produto = “DELETE FROM Produtos WHERE id = ?”
# Executando o comando SQL de exclusão
cursor.execute(excluir_produto, (produto_id,))
# Con�rmando as alterações
conn.commit()
# Fechando a conexão
conn.close()
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
É importante lembrar que esses são exemplos simpli�cados. Em uma aplicação real, talvez você
precise adicionar tratamento de erros, validação de dados e outros recursos extras. Por isso é
essencial sempre praticar e analisar cada vez mais exemplos para compreender tais conceitos.
Vamos Exercitar?
Vamos pensar no problema apresentado no início desta aula! O objetivo é criar a tabela
“Contatos” para armazenar informações de contatos, incluindo nome, e-mail e número de
telefone. Vamos ao código!
import sqlite3
# CREATE (Criação da tabela e inserção de dados de exemplo)
conn = sqlite3.connect('contatos.db')
cursor = conn.cursor()
cursor.execute('''
    CREATE TABLE IF NOT EXISTS Contatos (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        nome TEXT,
        email TEXT,
        telefone TEXT
    )
''')
dados_exemplo = [
    ('João', 'joao@email.com', '123-456-7890'),
    ('Maria', 'maria@email.com', '987-654-3210'),
    ('Carlos', 'carlos@email.com', '555-555-5555')
]
cursor.executemany('INSERT INTO Contatos (nome, email, telefone) VALUES (?, ?, ?)',
dados_exemplo)
conn.commit()
# READ (Leitura e exibição dos contatos)
cursor.execute('SELECT * FROM Contatos')
contatos = cursor.fetchall()
print(“Contatos:”)
for contato in contatos:
    print(contato)
# UPDATE (Atualização do número de telefone do contato com ID 2)
novo_telefone = '999-999-9999'
contato_id = 2
 
cursor.execute('UPDATE Contatos SET telefone = ? WHERE id = ?', (novo_telefone, contato_id))
conn.commit()
# DELETE (Exclusão do contato com ID 1)
contato_id_para_excluir = 1
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
 
cursor.execute('DELETE FROM Contatos WHERE id = ?', (contato_id_para_excluir,))
conn.commit()
# Fechando a conexão
conn.close()
Nesse código, criamos uma tabela de contatos que permitiu a você praticar as operações
CREATE, READ, UPDATE e DELETE em um cenário mais simples.
Espero que tenha gostado da solução! Lembre-se: a prática é importante! Mude alguma parte
desse código e diversi�que seu conhecimento! 
Saiba mais
1. Para conhecer mais detalhes sobre SQL, faça a leitura do livro Linguagem SQL: fundamentos e
práticas, cujo link de acesso está disponível a seguir.
CARDOSO, V.; CARDOSO, G. Linguagem SQL: fundamentos e práticas. São Paulo: Saraiva, 2013.
2. Como mencionado anteriormente, uma leitura interessante para quem está começando a
programar em Python é a do livro Python 3: conceitos e aplicações: uma abordagem didática.
BANIN, S. L. Python 3: conceitos e aplicações: uma abordagem didática. São Paulo: Érica,
2018. E-book.
3. Também encorajo você a conhecer o livro Banco de dados: projetos e implementação, que
apresenta conceitos e aplicações de bancos de dados.
MACHADO, F. N. R. Banco de dados: projeto e implementação. 3. ed. São Paulo: Érica, 2014.
Referências
BANIN, S. L. Python 3: conceitos e aplicações: uma abordagem didática. São Paulo: Érica,
2018. E-book. Disponível em:
https://integrada.minhabiblioteca.com.br/books/9788536530253. Acesso em: 21 out. 2023.
CARDOSO, V.; CARDOSO, G. Linguagem SQL: fundamentos e práticas. São Paulo: Saraiva, 2013.
LEMBURG, M. PEP 249 - Python database API speci�cation v.2.0. Python Enhancement
Proposals, 12 abr. 1999. Disponível
https://integrada.minhabiblioteca.com.br/#/books/9788502200463/
https://integrada.minhabiblioteca.com.br/#/books/9788502200463/
https://integrada.minhabiblioteca.com.br/#/books/9788536530253
https://integrada.minhabiblioteca.com.br/#/#/books/9788536532707/
https://integrada.minhabiblioteca.com.br/books/9788536530253
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
em: https://peps.python.org/pep-0249/#description. Acesso em: 31 out. 2023.
MACHADO, F. N. R. Banco de dados: projeto e implementação. 3. ed. São Paulo: Érica, 2014.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Algoritmos: lógica para desenvolvimento de
programação de computadores. 29. ed. São Paulo: Érica, 2019.
SQLITE3 – DB-API 2.0 interface for SQLite databases. Python 3.12.2 Documentation, [s. d.].
Disponível
em: https://docs.python.org/3/library/sqlite3.html#module-sqlite3. Acesso em: 31 out. 2023.
Aula 2
Introdução a Biblioteca Pandas
Introdução à biblioteca pandas
Este conteúdo é um vídeo!
Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender
conteúdos importantes para a sua formação pro�ssional. Vamos assisti-la? 
Bons estudos! 
Ponto de Partida
Dando continuidade à nossa aprendizagem sobre Python, nesta aula vamos conhecer as
principais vantagens da biblioteca pandas.
Para uma compreensão correta do conteúdo a ser estudado, o primeiro passo é entender o que é
o pandas. Trata-se de uma biblioteca Python de alto desempenho e código aberto projetada para
https://peps.python.org/pep-0249/#description
https://docs.python.org/3/library/sqlite3.html#module-sqlite3
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
simpli�car a manipulação e análise de dados organizados em tabelas e séries temporais. O
pandas disponibiliza estruturas de dados poderosas, como DataFrames e Series, que
possibilitam aos programadores uma abordagem mais intuitiva e e�ciente para lidar com dados
tabulares.
Na sequência, devemos entender sobre séries e aprender a criá-las utilizando o pandas. Com
base nessa habilidade, teremos uma melhor noção do valor dessa biblioteca para diversos tipos
de problemas.
Por �m, descobriremos como ler dados externos usando o pandas. Essa biblioteca contém
muitas funcionalidades. Diante disso, para propiciar um estudo mais objetivo, trataremos do
caso da leitura dos dados de um site, de forma que o exemplo mostrado o incentive a buscar
mais conhecimento sobre o pandas.
Para assegurar uma melhor assimilação desse tema, suponha que você esteja gerenciando o
cadastro de uma loja cujos diretores precisam de uma orientação sobre o público em que devem
investir. Os representantes da loja querem saber a idade média dos seus clientes.
Vamos Começar!
Introdução à biblioteca pandas
pandas é uma poderosa biblioteca de código aberto para a linguagem de programação Python
criada para facilitar a manipulação e análise de dados tabulares e séries temporais. Ela fornece
estruturas de dados �exíveis e e�cientes, como DataFrames e Series, que permitem aos
desenvolvedores trabalhar com dados de forma maisintuitiva e produtiva. Algumas
características notáveis do pandas incluem:
1.    DataFrames e Series: o DataFrame é uma estrutura bidimensional semelhante a uma tabela,
enquanto a Series é uma estrutura unidimensional semelhante a uma lista ou matriz. Ambas as
estruturas são altamente �exíveis e podem acomodar diversos tipos de dados.
2.    Manipulação de dados: o pandas oferece uma ampla gama de funções e métodos para
realizar tarefas comuns de manipulação de dados, como �ltragem, seleção, ordenação,
agrupamento e agregação.
3.    Leitura e escrita de dados: o pandas suporta a leitura e escrita de dados em vários formatos,
incluindo CSV, Excel, SQL, HDF5 e muitos outros, tornando-se uma ferramenta versátil para lidar
com dados de diferentes fontes.
4.    Tratamento de dados ausentes: a biblioteca simpli�ca o tratamento de dados faltantes,
permitindo que os desenvolvedores preencham ou removam valores ausentes de forma e�caz.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
5.    Visualização de dados: embora o pandas seja mais conhecido por sua capacidade de
manipular dados, também pode ser integrado a outras bibliotecas de visualização, como
Matplotlib e Seaborn, para criar grá�cos e visualizações informativas.
6.    Integração com NumPy: o pandas é construído sobre a biblioteca NumPy, o que signi�ca que
você pode facilmente combinar as capacidades de NumPy para cálculos numéricos com as
funcionalidades do pandas para manipulação de dados.
7.    Comunidade ativa: o pandas tem uma comunidade de usuários e desenvolvedores ativa, o
que resulta em suporte contínuo e atualizações regulares.
O pandas é amplamente utilizado em análise de dados, ciência de dados e engenharia de dados.
Ele oferece uma maneira e�ciente e amigável de lidar com dados, fato que o torna uma escolha
popular para pro�ssionais que trabalham com informações estruturadas.
Series
Para criar um objeto do tipo Series no pandas, utilizamos o método Series() com vários
parâmetros opcionais. O principal parâmetro é “data”, que pode conter um único valor, uma lista
de valores ou um dicionário. Outros parâmetros, como “index”, “dtype” e “name”, têm valores-
padrão prede�nidos, tornando sua especi�cação opcional. A documentação o�cial do pandas
fornece detalhes completos sobre esses parâmetros. Saiba mais em: pandas.
Exemplo 1: criar uma Series a partir de uma lista
import pandas as pd
 
# Criando uma lista de valores
data = [10, 20, 30, 40, 50]
 
# Criando uma Series a partir da lista
series1 = pd.Series(data)
 
print(series1)
#resultado
0    10
1    20
2    30
3    40
4    50
dtype: int64
Exemplo 2: criar uma Series a partir de um dicionário
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.html.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
import pandas as pd
 
# Criando um dicionário com pares chave-valor
data = {'A': 100, 'B': 200, 'C': 300, 'D': 400, 'E': 500}
 
# Criando uma Series a partir do dicionário
series2 = pd.Series(data)
 
print(series2)
#resultado
A    100
B    200
C    300
D    400
E    500
dtype: int64
No primeiro exemplo, uma Series é criada a partir de uma lista de valores. Já no segundo, uma
Series é criada a partir de um dicionário, de modo que as chaves se tornam os índices da Series e
os valores são os dados correspondentes.
Siga em Frente...
Leitura de dados estruturados com a biblioteca pandas
Um recurso poderoso no pandas é a capacidade de ler dados estruturados e armazená-los em
um DataFrame. A biblioteca oferece vários métodos de leitura de dados, identi�cados pelo
padrão “read”, como pandas.read_XXXXX(). Cada um desses métodos é projetado para ler
diferentes tipos de fontes de dados.
Para exempli�car, vamos explorar o método pandas.read_html(), que é utilizado para extrair
tabelas de uma página da web. Esse método procura automaticamente por elementos HTML
 na estrutura da página e retorna uma lista de DataFrames que correspondem às tabelas
encontradas. Os parâmetros, como “io”, podem ser con�gurados para especi�car a URL da
página a ser lida, e outros parâmetros adicionais podem ser ajustados para lidar com formatação
e tratamento de dados. Isso torna o pandas uma ferramenta versátil para a aquisição de dados
de fontes externas, como páginas da web.
Na URL Lista de bancos com falha encontra-se uma tabela com bancos norte-americanos que
faliram desde 1º de outubro de 2000. Nesse caso, cada linha representa um banco.
https://www.fdic.gov/bank/individual/failed/banklist.html
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
import pandas as pd
url = 'https://www.fdic.gov/resources/resolutions/bank-failures/failed-bank-list/'
dfs = pd.read_html(url)
 
print(type(dfs))
print(len(dfs))
#resultado
1
Portanto, temos nosso DataFrame com uma lista que contém apenas uma tabela.
df_bancos = dfs[0]
 
print(df_bancos.shape)
print(df_bancos.dtypes)
 
df_bancos.head()
#resultado
(567, 7)
Bank NameBank              object
CityCity                   object
StateSt                    object
CertCert                    int64
Acquiring InstitutionAI    object
Closing DateClosing        object
FundFund                    int64
dtype: object
Figura 1 | Cinco primeiras linhas do DataFrame. Fonte: elaborada pelo autor.
Nesse exemplo, trouxemos o tipo de cada variável existente no DataFrame, além das cinco
primeiras linhas como o comando head(). Com isso, mostramos quão rica é a biblioteca pandas
e suas diversas aplicações.
Vamos Exercitar?
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Agora, vamos colocar em prática o que aprendemos nesta aula para resolver nosso problema
inicial. Podemos usar a biblioteca pandas para descobrir em qual público a loja deve investir.
Para tanto, devemos calcular a média de idade dos clientes.
import pandas as pd
 
# Criar um dicionário com nomes e idades
dados = {
    'Nome': ['Alice', 'Bob', 'Carol', 'David', 'Eve'],
    'Idade': [25, 30, 22, 35, 28]
}
# Criar uma série a partir do dicionário
serie_idades = pd.Series(dados['Idade'], index=dados['Nome'])
# Exibir a série de idades
print(“Série de Idades:”)
print(serie_idades)
# Calcular a média das idades
media_idades = serie_idades.mean()
print(“\nMédia de Idades:”, media_idades)
#resultado
Série de Idades:
Alice    25
Bob      30
Carol    22
David    35
Eve      28
dtype: int64
 
Média de Idades: 28.0
Começamos esse exercício criando um dicionário chamado dados, que contém os nomes e
idades dos clientes. Em seguida, usamos o pandas para criar uma série chamada serie_idades a
partir desse dicionário, de forma que os nomes são de�nidos como o índice da série.
Após criar a série, calculamos a média das idades usando o método mean() e a exibimos na
saída.
A saída do código mostra a série de idades e a média das idades do grupo. Esse é um exemplo
simples de como você pode usar o pandas para realizar cálculos em dados estruturados.
Gostou dessa solução? Espero que sim! Já estamos avançando bastante em nossa trajetória de
estudos, desta vez utilizando o pandas, uma biblioteca do Python. Faça mudanças no código e
pratique!
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Saiba mais
1. Para entender mais detalhes sobre o uso do pandas, sugiro que você visite a seguinte página:
pandas. O site descreve a história e as funcionalidades dessa biblioteca.
2. Agora, para aprender mais sobre DataFrame, acesse o endereço a seguir: pandas.
3. Por �m, para exercitar os assuntos estudados nesta etapa de aprendizagem, faça a leitura do
livro Python 3: conceitos e aplicações: uma abordagem didática.
BANIN, S. L. Python 3: conceitos e aplicações: uma abordagem didática. São Paulo: Érica,
2018. E-book.
Referências
ABOUT pandas. pandas, [s. d.]. Disponível em: https://pandas.pydata.org/about/. Acesso em: 31
out. 2023.
BANIN, S. L. Python 3: conceitos e aplicações: uma abordagem didática. São Paulo: Érica,
2018. E-book. Disponível em: https://integrada.minhabiblioteca.com.br/books/9788536530253.
Acesso em: 21 out. 2023.
FAILED Bank List. The Federal Deposit Insurance Corporation, 3 nov. 2023. Disponível em:
https://www.fdic.gov/resources/resolutions/bank-failures/failed-bank-list/.Acesso em: 31 jan.
2024.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Algoritmos: lógica para desenvolvimento de
programação de computadores. 29. ed. São Paulo: Érica, 2019.
PANDAS.DATAFRAME. pandas, [s. d.]. Disponível em: https://pandas.pydata.org/pandas-
docs/stable/reference/api/pandas.DataFrame.html. Acesso em: 31 out. 2023.
Aula 3
Introdução a manipulação de dados em Panda
Introdução à manipulação de dados em panda
Este conteúdo é um vídeo!
https://pandas.pydata.org/about/
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html
https://integrada.minhabiblioteca.com.br/#/books/9788536530253
https://pandas.pydata.org/about/
https://integrada.minhabiblioteca.com.br/books/9788536530253
https://www.fdic.gov/resources/resolutions/bank-failures/failed-bank-list/
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender
conteúdos importantes para a sua formação pro�ssional. Vamos assisti-la? 
Bons estudos!
Ponto de Partida
Para aprofundar nossos conhecimentos sobre o mundo da linguagem Python, devemos aprender
a utilizar cada vez mais ferramentas que facilitem a preparação de nossos códigos. Já
descobrimos que existem inúmeras bibliotecas que nos ajudam em diversas situações, dentre as
quais se destaca a biblioteca pandas, que fornece muitas funcionalidades para o trabalho com
dados.
Sendo assim, devemos conhecer os métodos para leitura e escrita da biblioteca pandas.
Atualmente, os dados provêm de diversas fontes e de diferentes formatos de arquivo. Diante
disso, é necessário saber lidar com cada um desses dados.
Nesse sentido, devemos entender como trabalhar com tais dados e, mais do que isso, como
transformá-los, visto que a maioria deles não é passível de uso caso não passe por uma
manipulação prévia.
Por �m, é preciso obter informações sobre os dados. Para tanto, conheceremos duas
ferramentas: loc. e testes booleanos.
Suponha, agora, que você trabalhe em uma loja que vende itens variados. Por conta de um erro
no sistema de venda, o valor unitário dos itens vendidos não é exibido, e existem algumas
duplicações de linhas. Você precisa mostrar itens com valores acima de R$50,00 para o
planejamento da empresa em uma ação de marketing. Vamos, juntos, resolver esse caso?
Vamos Começar!
Métodos para leitura e escrita da biblioteca pandas
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
A biblioteca pandas tem como principal propósito a manipulação de dados estruturados, como
aqueles organizados em tabelas com linhas e colunas.
Esses dados podem ser provenientes de diversas fontes, como arquivos, páginas web, APIs,
outros softwares, serviços de armazenamento em nuvem e bancos de dados. A biblioteca
oferece uma variedade de métodos que permitem a leitura e o carregamento desses dados em
estruturas chamadas DataFrames.
Os métodos de leitura de dados estruturados no pandas têm em comum o pre�xo
“pd.read_XXXX”, sendo “pd” um alias frequentemente utilizado ao importar a biblioteca e “XXX” a
parte restante da sintaxe especí�ca de cada método. Além da leitura, o pandas oferece diversos
métodos para escrever os dados contidos em um DataFrame em arquivos, bancos de dados ou
até mesmo para a área de transferência do sistema operacional. Isso torna o pandas uma
ferramenta versátil para lidar com dados estruturados, independentemente de sua origem.
O Quadro 1, a seguir, mostra os métodos de leitura e escrita para os diferentes tipos de dados:
Tipo de Dado Descrição do Dado Método para Leitura Método para Escrita
Texto CSV read_csv to_csv
Texto Fixe-width texto �le read_fwf  
Texto JSON read_json to_json
Texto HTML read_html to_html
Texto Latex   styler.to_latex
Texto XML read_xml to_xml
Texto Local Clipboard read_clipboard to_clipboard
Binário MS Excel read_excel to_excel
Binário OpenDocument read_excel  
Binário HDF5 Format read_hdf to_hdf
Binário Feather Fomart read_feather to_feather
Binário Parquet Format read _parquet to_parquet
Binário ORC Format read_orc  
Binário MsgPack read_msgpack to_msgpack
Binário Stata read_stata to_stata
Binário SAS read_sas  
Binário SPSS read_spss  
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Binário Python Pickle
Format read_pickle to_picke
SQL SQL read_sql to_sql
SQL Google BigQuery read_gbq to_gbq
Quadro 1 | Métodos de leitura e escrita. Fonte: adaptado de pandas ([s. d.]a).
Captura e transformação dos dados
A etapa de captura e transformação/padronização dos dados é uma parte crucial no processo de
análise de dados e modelagem de machine learning, por exemplo. Nessa fase, você coleta os
dados brutos de várias fontes, como arquivos CSV, bancos de dados, APIs, e os prepara para uma
análise posterior. O pandas é uma biblioteca Python muito útil para realizar essas tarefas, pois
fornece estruturas de dados �exíveis e ferramentas poderosas para manipular e transformar
dados.
Vamos analisar um exemplo:
import pandas as pd
df_selic = pd.read_json(“https://api.bcb.gov.br/dados/serie/bcdata.sgs.11/dados?
formato=json”)
 
print(df_selic.info())
#resultado
RangeIndex: 9379 entries, 0 to 9378
Data columns (total 2 columns):
 #   Column  Non-Null Count  Dtype 
---  ------  --------------  ----- 
 0   data    9379 non-null   object
 1   valor   9379 non-null   �oat64
dtypes: �oat64(1), object(1)
memory usage: 146.7+ KB
None
O primeiro passo para o desenvolvimento desse processo é importar o pandas. Em seguida,
utilizamos o método para ler um arquivo JSON. Por �m, pedimos informações sobre esse
DataFrame: existem 9.379 registros, 2 colunas, os índices são numéricos e variam de 0 a 9.378;
não existem linhas faltantes, pois existem 9.379 registros não nulos; os dados são do tipo
“object”, ou são todos strings, ou há uma mistura desses tipos.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Já conhecemos nosso DataFrame. Agora, vamos veri�car a duplicidade de linhas (um passo
muito importante) utilizando a função drop_duplicates(). No nosso exemplo, usaremos:
df_selic.drop_duplicates(keep='last', inplace=True), que mantém o último registro (keep='last') e, a
partir do parâmetro inplace=True, faz com que a transformação seja salva do DataFrame. Na
prática, estamos sobrescrevendo o objeto na memória. Nesse caso, não existem linhas
duplicadas.
Outra ação que podemos efetuar é criar uma nova coluna no DataFrame. Para isso, a sintaxe é
simples: df_[‘nova_coluna’] = dado. No nosso caso, vamos inserir duas colunas, uma com a data
da extração dos dados e outra com o responsável pela extração.
from datetime import date
from datetime import datetime as dt
 
data_extracao = date.today()
 
df_selic['data_extracao'] = data_extracao
df_selic['responsavel'] = “Autor”
 
print(df_selic.info())
df_selic.head()
Figura 1 | Dados da extração. Fonte: elaborada pelo autor.
Usamos os módulos datetime, classe date e o método today(). Ao criar a coluna, a biblioteca
pandas “entende” que se deve colocar o valor em todas as linhas, isto é, tanto a data da extração
quanto o responsável. A manipulação/transformação dos dados muda conforme as
especi�cidades da situação e do problema envolvidos. 
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Siga em Frente...
Extração de informações
Depois de saber coletar os dados e transformá-los, devemos passar para o próximo passo, que é
extrair informação deles. Nessa etapa, precisamos conhecer o que estamos procurando para
tentar encontrar esse elemento nos dados. Existem inúmeras ferramentas e maneiras pelas
quais podemos fazer isso, como por meio de �ltros utilizandoem C) e a f-string.
#formatadores de caracteres
print("Olá, %s, bem-vindo à disciplina de programação. Parabéns pelo seu primeiro hello world"
% (nome))
Olá, Estudante Querido, bem-vindo à disciplina de programação. Parabéns pelo seu primeiro
hello world
#F-string
print(f{nome}, bem-vindo à disciplina de programação. Parabéns pelo seu primeiro hello
world")
Olá, Estudante Querido, bem-vindo à disciplina de programação. Parabéns pelo seu primeiro
hello world
De acordo com o PEP 498 (Smith, [s. d.]), a melhor opção é utilizar “f-string”. Sendo assim,
usaremos esse recurso em nossas aulas.
Esta etapa de aprendizagem consistiu em uma introdução básica do Python, suas respectivas
ferramentas e alguns exemplos de uso. O objetivo desta aula era mostrar como surgiu a
linguagem Pyhton, onde conseguimos usá-la e como esse processo deve ser feito. Para concluir,
a intenção �nal era deixar você curioso para aprender mais. Espero que isso tenha acontecido!
Vamos Exercitar?
Você se lembra da minha pergunta inicial? É possível utilizar Python para automatizar as médias
dos meus alunos? Depois de tudo o que vimos nesta aula, a resposta é sim!
Nota_1 = int(input())
Nota_2 = int(input())
Nota_3 = int(input())
Nota_4 = int(input())
#observe que utilizamos a função int(), pois, sem ela, o Python entenderia que as notas
seriam String
 
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
#condição para a aprovação do aluno.
if media >= 6:
    situacao =
else:
    situacao =
 
#dadas as notas, mostramos a média �nal e a situação do aluno.
print(f{media})
print(f{situacao})
Repare que utilizei duas funções condicionais:
“if >=6” (se a nota for maior ou igual a 6): aluno aprovado.
 “else” (se a nota for menor do que 6): aluno reprovado.
Essas funções são essenciais na programação. Estudaremos mais situações nas quais elas são
aplicadas no decorrer desta disciplina.
Gostou dessa solução? Espero que sim! Agora, quero que você �que ainda mais curioso para
aprender Python!
Saiba mais
1. Uma leitura interessante para quem está começando a programar em Python é a do livro
Começando a programar em Python para leigos, cujo link de acesso está disponível a seguir.
MUELLER, J. P. Começando a programar em Python para leigos. Rio de Janeiro: Alta Books, 2020.
E-book.
2. Outra dica para estudo e aprofundamento sobre esse tema é o livro Use a cabeça! Python.
BARRY, P. Use a Cabeça! Python. 2. ed. Rio de Janeiro: Alta Books, 2018. E-book.
3. Para a aplicação e o conhecimento sobre o uso da linguagem Python no mercado �nanceiro,
recomendo a leitura do livro Python e mercado �nanceiro: programação para estudantes,
investidores e analistas.
CAETANO, M. A. L. Python e mercado �nanceiro: programação para estudantes, investidores e
analistas. São Paulo: Blucher, 2021. E-book.
4. Por �m, também encorajo você a navegar pelos seguintes sites: python, jupyter e colab.
https://integrada.minhabiblioteca.com.br/#/books/9786555202298
https://integrada.minhabiblioteca.com.br/#/books/9786555207842
https://integrada.minhabiblioteca.com.br/#/books/9786555062410
https://integrada.minhabiblioteca.com.br/#/books/9786555062410
https://integrada.minhabiblioteca.com.br/#/books/9786555062410
https://www.python.org/
https://jupyter.org/
https://colab.google/
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Referências
A ORIGEM do “Hello World”. Ciência da Computação, 2015. Disponível em:
https://cienciacomputacao.com.br/curiosidade/a-origem-do-hello-world/. Acesso em: 12 out.
2023.
AGARWAL, A. From C to Python, and everything... LinkedIn, 2023. Disponível em:
https://www.linkedin.com/feed/update/urn:li:activity:7056881167563702272/. Acesso em: 12
out. 2023.
ANACONDA. Página inicial, [s. d.]. Disponível em: https://www.anaconda.com/. Acesso em: 12
out. 2023.
BARRY, P. Use a Cabeça! Python. 2. ed. Rio de Janeiro: Alta Books, 2018. E-book. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9786555207842. Acesso em: 12 out. 2023.
BEGINNER’S Guide. Python Wiki, 22 nov. 2022. Disponível em:
https://wiki.python.org/moin/BeginnersGuide/Overview. Acesso em: 12 out. 2023.
CAETANO, M. A. L. Python e mercado �nanceiro: programação para estudantes, investidores e
analistas. São Paulo: Blucher, 2021. E-book. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9786555062410. Acesso em: 12 out. 2023.
GOOGLE COLAB. Página inicial, [s. d.]. Disponível em: https://colab.research.google.com/.
Acesso em: 12 out. 2023.
HISTORY and license. Python v3.0.1 Documentation, [s. d.]. Disponível em:
https://docs.python.org/3.0/license.html. Acesso em: 12 out. 2023.
INSTALANDO o Python 3 no Linux. Python Brasil, 27 jun. 2023. Disponível em:
https://python.org.br/instalacao-linux/. Acesso em: 12 out. 2023.
INSTALANDO o Python 3 no Mac OS X. Python Brasil, 1 nov. 2016. Disponível em:
https://python.org.br/instalacao-mac/. Acesso em: 12 out. 2023.
INSTALANDO o Python 3 no Windows. Python Brasil, 30 nov. 2019. Disponível em:
https://python.org.br/instalacao-windows/. Acesso em: 12 out. 2023.
MUELLER, J. P. Começando a programar em Python para leigos. Rio de Janeiro: Alta Books, 2020.
E-book. Disponível em: https://integrada.minhabiblioteca.com.br/#/books/9786555202298.
Acesso em: 12 out. 2023.
PYCHARM. JetBrains, 5 fev. 2010. Disponível em: https://www.jetbrains.com/pycharm/. Acesso
em: 12 out. 2023.
https://cienciacomputacao.com.br/curiosidade/a-origem-do-hello-world/
https://www.linkedin.com/feed/update/urn:li:activity:7056881167563702272/
https://www.anaconda.com/
https://integrada.minhabiblioteca.com.br/#/books/9786555207842
https://wiki.python.org/moin/BeginnersGuide/Overview
https://integrada.minhabiblioteca.com.br/#/books/9786555062410
https://colab.research.google.com/
https://docs.python.org/3.0/license.html
https://python.org.br/instalacao-linux/
https://python.org.br/instalacao-mac/
https://python.org.br/instalacao-windows/
https://integrada.minhabiblioteca.com.br/#/books/9786555202298
https://www.jetbrains.com/pycharm/
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
ROSSUM, G. V.; WARSAW, B.; COGHLAN, A. PEP 8 – Style Guide for Python Code. Python
Enhancement Proposals, 9 dez. 2023. Disponível em: https://peps.python.org/pep-
0008/#introduction. Acesso em: 12 fev. 2023.
SMITH, E. V. PEP 498 – Literal String Interpolation. Python Enhancement Proposals, [s. d.].
Disponível em: https://peps.python.org/pep-0498/. Acesso em: 12 out. 2023.
TRY JUPYTER. Jupyter, [s. d.]. Disponível em: https://jupyter.org/try. Acesso em: 12 out. 2023.
VISUAL Studio. Microsoft, [s. d.]. Disponível em: https://visualstudio.microsoft.com/pt-br/.
Acesso em: 12 out. 2023.
 
Aula 2
Estruturas Condicionais em Python
Estruturas condicionais em Python
Este conteúdo é um vídeo!
Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender
conteúdos importantes para a sua formação pro�ssional. Vamos assisti-la? 
Bons estudos!
Ponto de Partida
Dando continuidade ao nosso aprendizado sobre Python, nesta aula vamos conhecer três
conceitos fundamentais para a implementação de algoritmos.
https://peps.python.org/pep-0008/#introduction
https://peps.python.org/pep-0008/#introduction
https://peps.python.org/pep-0498/
https://jupyter.org/try
https://visualstudio.microsoft.com/pt-br/
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
O primeiro deles consiste em uma ferramenta de comparação: os operadores relacionais. Eles
nos permitem avaliar relações entre valores, respondendo a perguntas como: “é maior que?”, “é
igual a?” ou “é diferente de?”.
O segundo conceito é o de estruturas lógicas, que são como peças de quebra-cabeça
responsáveis por unir condições para criar critérios mais complexos. São elas que nos
possibilitam tomar decisões mais elaboradas, combinandoloc., �ltros utilizando testes
booleanos, entre outras medidas.
Veja, a seguir, como utilizar loc.:
df_selic.loc[0]
#resultado
data 04/06/1986 valor 0.065041 data_extracao 2023-11-02 responsavel Autor Name: 0, dtype:
object
 
df_selic.loc[[0,20,70]]
#resultado
      Data         valor    data_extraçao responsável
0  - 04/06/1986 - 0.065041 - 2023-11-02 – Autor
20 - 02/07/1986 - 0.068301 - 2023-11-02 – Autor
70 - 10/09/1986 - 0.131315 - 2023-11-02 - Autor
Há muitas maneiras de usar loc. de forma e�caz. Para saber mais detalhes sobre esse assunto,
acesse: pandas.
Con�ra, agora, um exemplo no qual se utiliza o teste booleano:
teste = df_selic['valor'] 
Como resultado, esse teste traz duas saídas para cada valor: true ou false. Testes booleanos são
de grande importância para diversas situações.
Vamos Exercitar?
Agora que já aprendemos mais detalhes sobre o pandas e algumas de suas funcionalidades,
vamos resolver o problema apresentado no início desta aula. Para isso, traremos dados �ctícios,
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.loc.html
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
os quais podem ser alterados para que você pratique cada vez mais.
import pandas as pd
 
# Criando um DataFrame com 5 linhas de dados
data = {
    'nome': ['Produto A', 'Produto B', 'Produto C', 'Produto A', 'Produto E'],
    'quantidade de itens comprados': [3, 1, 4, 3, 2],
    'tipo de item': ['Eletrônico', 'Vestuário', 'Alimento', 'Eletrônico', 'Alimento'],
    'receita total': [120, 80, 60, 120, 90]
}
df = pd.DataFrame(data)
 
# Duplicando uma linha
df.drop_duplicates(keep='last', inplace=True)
 
# Calculando a coluna 'preço do item'
df['preço do item'] = df['receita total'] / df['quantidade de itens comprados']
 
# Selecionando preço do item acima de 50 reais
itens_acima_de_50 = df[df['preço do item'] > 50]
 
print(“Itens acima de 50 reais:”)
print(itens_acima_de_50)
#resultado
Itens acima de 50 reais:
      nome  quantidade de itens comprados tipo de item  receita total 
1  Produto B           1                    Vestuário        80  
 
   preço do item 
1           80.0 
Criamos um DataFrame com dados �ctícios. Observe que temos duas linhas duplicadas e,
depois de excluir uma delas, �camos com quatro itens, sendo que somente o produto B do
vestuário tem valor acima de R$50,00.
Faça mudanças e descubra outras possibilidades para solucionar o problema. Lembre-se de que
a prática é importante para aprender cada vez mais.
Saiba mais
 
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
1. O livro Introdução à computação usando Python: um foco no desenvolvimento de aplicações
apresenta uma introdução à programação, ao desenvolvimento de aplicações de computador e à
ciência da computação. Logo, para você, que está iniciando seu aprendizado em Python, a leitura
desse texto é muito relevante. Para acessar o material sugerido, clique no link a seguir.
PERKOVIC, L. Introdução à computação usando Python: um foco no desenvolvimento de
aplicações. Rio de Janeiro: LTC, 2016.
2. Uma leitura interessante para quem está começando a programar em Python é a do livro
Começando a programar em Python para leigos.
MUELLER, J. P. Começando a programar em Python para leigos. Rio de Janeiro: Alta Books, 2020.
E-book.
3. Outra dica para que você aprofunde seu entendimento sobre a aplicação da linguagem Python
em situações reais é a leitura do artigo Aplicação de técnicas de aprendizado de máquina e
estatística na previsão da demanda de biocombustíveis.
PAULA, J. de S. et al. Aplicação de técnicas de aprendizado de máquina e estatística na previsão
da demanda de biocombustíveis. Revista de Gestão e Secretariado, São Paulo, v. 13, n. 4, ed.
esp., p. 2559-2572, 2022.
Referências
GOOGLE COLAB. Página inicial, [s. d.]. Disponível em: https://colab.research.google.com/.
Acesso em: 12 out. 2023.
IO tools (text, CSV, HDF5, …). pandas, [s. d.]a. Disponível em: https://pandas.pydata.org/pandas-
docs/stable/user_guide/io.html . Acesso em: 2 nov. 2023.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Algoritmos: lógica para desenvolvimento de
programação de computadores. 29. ed. São Paulo: Érica, 2019.
MUELLER, J. P. Começando a programar em Python para leigos. Rio de Janeiro: Alta Books, 2020.
E-book. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9786555202298. Acesso em: 12 out. 2023.
PANDAS.DATAFRAME.LOC. pandas, [s. d.]b. Disponível em: https://pandas.pydata.org/pandas-
docs/stable/reference/api/pandas.DataFrame.loc.html. Acesso em: 2 nov. 2023.
PAULA, J. de S. et al. Aplicação de técnicas de aprendizado de máquina e estatística na previsão
da demanda de biocombustíveis. Revista de Gestão e Secretariado, São Paulo, v. 13, n. 4, ed.
https://integrada.minhabiblioteca.com.br/#/#/books/9788521630937
https://integrada.minhabiblioteca.com.br/#/books/9786555202298
https://ojs.revistagesec.org.br/secretariado/article/view/1488/708
https://ojs.revistagesec.org.br/secretariado/article/view/1488/708
https://colab.research.google.com/
https://pandas.pydata.org/pandas-docs/stable/user_guide/io.html%C2%A0
https://pandas.pydata.org/pandas-docs/stable/user_guide/io.html%C2%A0
https://integrada.minhabiblioteca.com.br/#/books/9786555202298
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.loc.html%C2%A0
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.loc.html%C2%A0
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
esp., p. 2559-2572, 2022. Disponível em:
https://ojs.revistagesec.org.br/secretariado/article/view/1488/708. Acesso em: 12 out. 2023.
PERKOVIC, L. Introdução à computação usando Python: um foco no desenvolvimento de
aplicações. Rio de Janeiro: LTC, 2016.
Aula 4
Visualização de Dados em Python
Visualização de dados em Python
Este conteúdo é um vídeo!
Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender
conteúdos importantes para a sua formação pro�ssional. Vamos assisti-la? 
Bons estudos!
Ponto de Partida
Que a linguagem Python tem muitas qualidades você já sabe, agora vamos aprender a utilizar
algumas bibliotecas para visualizar dados de diferentes maneiras.
Uma biblioteca já mencionada no decorrer desta disciplina é a Matplotlib, que desempenha um
papel fundamental, funcionando como uma pedra angular na criação de grá�cos em Python.
Trata-se de uma escolha universalmente aceita em projetos de visualização de dados.
Outra biblioteca bastante renomada é o pandas, que, além de suas funcionalidades amplamente
conhecidas, disponibiliza recursos de visualização grá�ca.
https://ojs.revistagesec.org.br/secretariado/article/view/1488/708
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Por �m, examinaremos a biblioteca Seaborn, que é uma extensão da base do Matplotlib,
destacando-se como uma ferramenta especializada para a criação de grá�cos de alta qualidade
em Python.
Suponha que você precise responder em qual período os clientes gastam mais em um
restaurante e veri�car se esse mesmo período é aquele em que eles dão mais gorjetas. Como
poderíamos representar as respostas gra�camente?
Vamos Começar!
Matplotlib
A biblioteca Matplotlib exerce uma função central na criação de grá�cos em Python, sendo
amplamente adotada em projetos de visualização de dados. John Hunter é o criador e uma
�gura-chave para o desenvolvimento dessa biblioteca, que surge como uma alternativa ao uso de
ferramentas como gnuplot e MATLAB na comunidade cientí�ca. Anteriormente, os cientistas
tinham que gerar grá�cos em outros softwares após extrair os resultados de suas análises, fato
que tornava o processo incômodo. Assim, a biblioteca Matplotlib emergiu como uma soluçãoe�ciente para criar visualizações em Python.
A instalação do Matplotlib pode ser facilmente realizada com o comando “pip install matplotlib”.
Em ambientes como Anaconda e Google Colab, essa biblioteca já está prontamente disponível. O
módulo “pyplot” é uma parte essencial do Matplotlib, pois disponibiliza funções que facilitam a
criação e personalização de grá�cos. Duas sintaxes comuns para importar o Matplotlib com o
apelido “plt” são: “import matplotlib.pyplot as plt” e “from matplotlib import pyplot as plt”.
Os grá�cos desempenham o papel de narradores visuais, contando histórias por meio dos
dados. Para começar nossa jornada de visualização, vamos usar algo criativo e abstrato.
Geraremos duas listas de valores inteiros aleatórios usando o módulo “random” e criaremos um
grá�co de linhas com o Matplotlib.
import matplotlib.pyplot as plt
import random
 
dados1 = random.sample(range(100), k=20)
dados2 = random.sample(range(100), k=20)
 
plt.plot(dados1, dados2) # pyplot gerencia a �gura e o eixo
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Figura 1 | Grá�co. Fonte: elaborada pelo autor.
Existem duas formas de criar o grá�co:
1. O pyplot cria e gerencia automaticamente �guras e eixos, e usa as funções do pyplot para
plotagem.
2. Criar explicitamente �guras e eixos, e chamar métodos sobre eles (o “estilo orientado a
objetos (OO)”).
No grá�co criado, utilizamos a opção 1, ou seja, foi o próprio módulo que criou o ambiente da
�gura e do eixo. Como já aprendemos ao estudar essa biblioteca, ela é de extrema importância
para diferentes áreas.
Biblioteca pandas
Já conhecemos muitas funcionalidades da biblioteca pandas; uma delas diz respeito à
visualização grá�ca. As principais estruturas de dados da biblioteca pandas (Series e
DataFrame) possuem o método plot(), construído com base no Matplotlib e que permite criar
grá�cos a partir dos dados nas estruturas.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Con�ra um exemplo:
import pandas as pd
 
dados = {
    'Produto':['A', 'B', 'C'],
    'qtde_vendida':[33, 50, 45]
    }
df = pd.DataFrame(dados)
df.plot(x='Produto', y='qtde_vendida', kind='bar')
df.plot(x='Produto', y='qtde_vendida', kind=’pie’)
df.plot(x='Produto', y='qtde_vendida', kind='line') 
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Figura 2 | Grá�cos criados. Fonte: elaborada pelo autor.
Existem muitas visualizações possíveis. No exemplo anterior, utilizamos os grá�cos de barras, de
pizza e de linhas. No endereço pandas você encontra a lista com todos os tipos de grá�cos que
podem ser construídos com o método plot() da biblioteca.
Siga em Frente...
Biblioteca Seaborn
O Seaborn, uma biblioteca Python construída sobre a base do Matplotlib, destaca-se na criação
de grá�cos de forma especializada. Você pode usar essa biblioteca importando-a em seus
projetos da seguinte forma: “import seaborn as sns”. Uma característica notável do Seaborn é
seu repositório de conjuntos de dados prontos para uso, o que facilita a exploração das
funcionalidades. Você pode acessar esses conjuntos de dados em mwaskom. Para ilustrar,
vamos carregar dados sobre gorjetas (tips) e utilizá-los em nosso estudo. O Seaborn simpli�ca a
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.plot.html
https://github.com/mwaskom/seaborn-data
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
criação de grá�cos e as análises de dados, mostrando-se uma ferramenta valiosa para a
visualização de informações.
import seaborn as sns
import matplotlib.pyplot as plt
 
sns.set(style=“whitegrid”) # opções: darkgrid, whitegrid, dark, white, ticks
 
df_tips = sns.load_dataset('tips')
 
�g, ax = plt.subplots(1, 3, �gsize=(15, 5))
 
sns.barplot(data=df_tips, x='sex', y='total_bill', ax=ax[0])
sns.barplot(data=df_tips, x='sex', y='total_bill', ax=ax[1], estimator=sum)
sns.barplot(data=df_tips, x='sex', y='total_bill', ax=ax[2], estimator=len)
Figura 3 | Grá�cos utilizando barplot(). Fonte: elaborada pelo autor.
A escolha entre a função “barplot()” do Seaborn e as funcionalidades de grá�cos de barras no
pandas dependerá das necessidades especí�cas da análise de dados. O motivo que leva a optar
pelo “barplot()” muitas vezes se baseia nos parâmetros adicionais e na �exibilidade que ele
oferece. Vamos dar destaque ao parâmetro “estimator”, que, por padrão, calcula a média.
A função “barplot()” do Seaborn apresenta uma variedade de opções estatísticas, permitindo que
os cientistas de dados escolham a métrica que melhor se ajuste aos seus objetivos. Por
exemplo, você pode calcular a soma, a contagem ou até mesmo outras métricas personalizadas.
Isso é particularmente útil quando você deseja exibir informações diferentes nas barras, como a
quantidade (len) ou a soma (sum) dos valores, em vez da média.
Em contraste, o pandas concede funcionalidades de grá�cos de barras mais básicas, que
geralmente se concentram na representação da média dos dados. Portanto, a escolha entre as
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
duas abordagens dependerá da necessidade de personalização e da complexidade da análise
estatística que você deseja realizar. O Seaborn fornece mais controle e opções para criar grá�cos
de barras que atendam precisamente às demandas de seu projeto.
Para ilustrar como o parâmetro afeta a construção do grá�co, observe a Figura 1, apresentada
anteriormente. Nesse caso, usamos o Matplotlib para construir uma �gura e um eixo com três
posições. No primeiro grá�co, utilizou-se o padrão, isto é, a média; no segundo grá�co, a função
soma; e, no terceiro, a função len.
Ao observar os resultados dos grá�cos, podemos perceber as diferenças signi�cativas entre
eles. O primeiro grá�co nos fornece uma ideia de que o valor médio da conta entre homens e
mulheres é semelhante, com uma ligeira vantagem para os homens. No entanto, o segundo
grá�co nos dá a impressão de que os homens gastam muito mais em média. Mas será que isso
é realmente verdade?
A resposta está no contexto dos dados. É importante veri�car se a quantidade de homens na
base de dados é signi�cativamente maior do que a de mulheres, o que pode in�uenciar a soma
total das contas. O terceiro grá�co esclarece essa questão, revelando o número de homens e
mulheres na base de dados. Com essa informação, podemos avaliar se a diferença na soma total
das contas entre os grupos ocorre por causa da disparidade na quantidade de observações.
Portanto, a interpretação correta dos grá�cos requer uma análise contextual, para evitar
conclusões precipitadas.
Vamos Exercitar?
Vamos resolver o problema descrito no início desta aula. Para isso, utilizaremos o DataSet sobre
gorjeta apresentado nesta etapa de aprendizagem.
import seaborn as sns
import matplotlib.pyplot as plt
 
sns.set(style=“whitegrid”)
 
df = sns.load_dataset('tips')
 
plt.�gure(�gsize=(8, 5))
sns.barplot(x='time', y='total_bill', data=df, estimator=sum, ci=None, palette=“Set2”)
plt.xlabel('Período (Time)')
plt.ylabel('Total de Gastos')
plt.title('Total de Gastos por Período (Almoço ou Jantar)')
plt.show()
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Figura 4 | Total de gastos por período (almoço ou janta). Fonte: elaborada pelo autor.
Já conseguimos veri�car que o gasto no jantar é bem superior ao gasto no almoço. Mas quantos
clientes almoçaram e quantas clientes jantaram? Vamos investigar o gasto médio por período.
plt.�gure(�gsize=(8, 5))
sns.barplot(x='time', y='total_bill', data=df)#, #estimator=sum, ci=None, palette=“Set2”)
plt.xlabel('Período (Time)')
plt.ylabel('Média de Gastos')
plt.title('Média de Gastos por Período (Almoço ou Jantar)')
plt.show()
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Figura 5 | Média de gastos por período (almoço ou janta). Fonte: elaborada pelo autor.
Entendemos que a média gasta no jantar também é superior à do almoço. Logo, esse é o
principal período do restaurante em relação a faturamento.
Por �m, vamos veri�car a média de gorjeta por período.
# Crie um grá�co de barras com o Seaborn para mostrar a média de gorjetas por período
plt.�gure(�gsize=(8, 5))
sns.barplot(x='time',y='total_bill', data=df, palette=“Set3”)
plt.xlabel('Período (Time)')
plt.ylabel('Média da Gorjeta')
plt.title('Média da Gorjeta por Período (Almoço ou Jantar)')
plt.show()
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Figura 6 | Média de gorjeta por período (almoço ou janta). Fonte: elaborada pelo autor.
A média de gorjeta no jantar também é superior à do almoço.
Respondemos gra�camente às perguntas feitas. Como mencionado anteriormente, a prática é
sempre muito importante. Por isso, pense em soluções alternativas, mude parâmetros e se
divirta no mundo do Python grá�co.
 
Saiba mais
1. A comunicação no mundo dos dados é tão importante quanto saber lidar com eles, por isso
sugiro a leitura do capítulo 10 do livro Comunicação inteligente e storytelling: para alavancar
negócios e carreiras, cujo link de acesso está disponível a seguir.
ARRUDA, R. Comunicação inteligente e storytelling: para alavancar negócios e carreiras. Rio de
Janeiro: Alta Books, 2019. E-book.
2. Outra dica para estudo e aprofundamento sobre esse tema é o livro Use a cabeça! Python.
https://integrada.minhabiblioteca.com.br/#/#/books/9788550812977/
https://integrada.minhabiblioteca.com.br/#/#/books/9788550812977/
https://integrada.minhabiblioteca.com.br/#/books/9786555207842
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
BARRY, P. Use a cabeça! Python. 2. ed. Rio de Janeiro: Alta Books, 2018. E-book.
3. Para a aplicação do Python em data science, indico a leitura do capítulo 3 do livro Data science
do zero. Nesse texto, é possível entender como a visualização dos dados é importante para
contar a história dos dados.
GRUS, J. Data science do zero: primeiras regras com o Python. Rio de Janeiro: Alta Books, 2021.
E-book.
Referências
API reference. Seaborn, 20 out. 2016. Disponível em: https://seaborn.pydata.org/api.html. Acesso
em: 5 nov. 2023.
ARRUDA, R. Comunicação inteligente e storytelling: para alavancar negócios e carreiras. Rio de
Janeiro: Alta Books, 2019. E-book. Disponível em:
https://integrada.minhabiblioteca.com.br/#/#/books/9788550812977/. Acesso em: 5 nov. 2023.
BARRY, P. Use a cabeça! Python. 2. ed. Rio de Janeiro: Alta Books, 2018. E-book. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9786555207842. Acesso em: 12 out. 2023.
GRUS, J. Data science do zero: primeiras regras com o Python. Rio de Janeiro: Alta Books, 2021.
E-book. Disponível em: https://integrada.minhabiblioteca.com.br/#/books/9788550816463.
Acesso em: 12 out. 2023.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Algoritmos: lógica para desenvolvimento de
programação de computadores. 29. ed. São Paulo: Érica, 2019.
MWASKOM/SEABORN-DATA. GitHub, [s. d.]. Disponível em:
https://github.com/mwaskom/seaborn-data. Acesso em: 5 nov. 2023.
PANDAS.DATAFRAME.PLOT. pandas, [s. d.]. Disponível em:
https://pandas.pydata.org/pandasdocs/stable/reference/api/pandas.DataFrame.plot.html.
Acesso em: 5 nov. 2023.
Aula 5
Introdução à Análise de Dados com Python
Videoaula de Encerramento
https://integrada.minhabiblioteca.com.br/#/books/9788550816463
https://integrada.minhabiblioteca.com.br/#/books/9788550816463
https://seaborn.pydata.org/api.html
https://integrada.minhabiblioteca.com.br/#/#/books/9788550812977/
https://integrada.minhabiblioteca.com.br/#/books/9786555207842
https://integrada.minhabiblioteca.com.br/#/books/9788550816463
https://github.com/mwaskom/seaborn-data
https://seaborn.pydata.org/api.html
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Este conteúdo é um vídeo!
Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender
conteúdos importantes para a sua formação pro�ssional. Vamos assisti-la? 
Bons estudos!
Ponto de Chegada
Olá, estudante! Para desenvolver a competência associada a esta unidade de aprendizagem, que
é “Compreender os principais recursos de banco de dados e bibliotecas na linguagem Python”,
devemos, antes de tudo, conhecer os conceitos relacionados à linguagem SQL, saber fazer
conexões com bancos de dados e manipular tais dados dentro do banco de dados.
Ao longo desta etapa de estudos, foi possível aliar os assuntos estudados à prática de diversas
formas. Você também aprendeu a utilizar a biblioteca pandas, que é uma das mais usadas na
área de manipulação de dados em Pyhton (Manzano; Oliveira, 2019). Saber utilizar bibliotecas
como o pandas é de extrema importância para desfrutar do potencial máximo da linguagem
Python. 
Ao tratar de manipulação de dados, devemos ter em mente que muitas vezes os dados não se
apresentam da forma mais padronizada possível, o que di�culta a extração de informações úteis.
Por essa razão, a manipulação é uma parte do processo com a qual se deve ter muito cuidado
(Perkovic, 2016).
Durante esta trajetória de aprendizagem, você não apenas internalizou os princípios e técnicas
apresentados, mas também os colocou em ação em cenários do mundo real. Elaborar uma
“história” dos dados com o auxílio grá�co do Python não apenas amplia seu domínio sobre essa
ferramenta, mas também aprimora sua capacidade de desmembrar problemas intricados em
passos lógicos e de conceber soluções algorítmicas para resolvê-los, a �m de exibir os dados de
modo simpli�cado.
Esse conjunto de habilidades o capacitará para se tornar um solucionador experiente de desa�os
tecnológicos e computacionais, preparando-o para enfrentar problemas de maneira e�caz. Agora
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
você já possui o conhecimento necessário sobre o uso da visualização grá�ca para aprimorar
suas competências como programador.
É Hora de Praticar!
Este conteúdo é um vídeo!
Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Para contextualizar sua aprendizagem, imagine a seguinte situação: você está desenvolvendo
um programa de gerenciamento de informações sobre funcionários na tabela de um banco de
dados SQLite.
Questões norteadoras:
1. Como você pode aplicar seus conhecimentos em programação em Python para gerenciar
essas informações?
2. Como é possível criar o banco de dados e atualizá-lo utilizando os conceitos de Python?
 
Para encerrar e consolidar seu aprendizado, re�ita sobre as seguintes perguntas:
1. Aprender sobre SQL e conexão com o banco de dados me ajuda a ser um programador
mais completo?
2. Qual é a importância das bibliotecas “prontas” da Python, como o pandas, na manipulação
de dados?
3. Como a visualização grá�ca dos dados ajuda a contar a “história” dos dados e a tomar
decisões?
Essas considerações ajudarão você a incorporar de maneira mais profunda o conhecimento
adquirido e a compreender o alcance de suas aplicações.
Desejo a você muito sucesso em sua jornada de aprendizagem!
Conectar ao banco de dados SQLite
Primeiro, precisamos criar um banco de dados SQLite e uma tabela para armazenar as
informações dos funcionários. Vamos estabelecer uma conexão com o banco de dados.
Con�ra, a seguir, o código Python a ser usado:
import sqlite3
# Passo 1: Conectar ao banco de dados SQLite (ou criá-lo, se não existir)
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
conn = sqlite3.connect(“funcionarios.db”)
Criar a tabela de funcionários
Vamos criar uma tabela chamada “funcionarios” para armazenar as informações dos
funcionários.
# Passo 2: Criar a tabela de funcionários
cursor = conn.cursor()
cursor.execute('''
    CREATE TABLE IF NOT EXISTS funcionarios (
        id INTEGER PRIMARY KEY,
        nome TEXT,
        cargo TEXT,
        salario REAL
    )
''')
Inserir um novo funcionário
Agora, vamos inserir um novo funcionário na tabela, simulando a operação de “Create”.
# Passo 3: Inserir um novo funcionário na tabela
novo_funcionario = (1,“João”, “Analista”, 5000.00)
cursor.execute(“INSERT INTO funcionarios VALUES (?, ?, ?, ?)”, novo_funcionario)
conn.commit()
Consultar funcionários
Podemos consultar os funcionários existentes na tabela, simulando a operação de “Read”.
# Passo 4: Consultar e exibir funcionários
cursor.execute(“SELECT * FROM funcionarios”)
funcionarios = cursor.fetchall()
print(“Funcionários Cadastrados:”)
for funcionario in funcionarios:
    print(funcionario)
Atualizar informações de um funcionário
Agora, vamos atualizar as informações de um funcionário especí�co, simulando a operação de
“Update”.
# Passo 5: Atualizar informações de um funcionário
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
atualizacao = (“João Silva”, 5500.00, 1)
cursor.execute(“UPDATE funcionarios SET nome = ?, salario = ? WHERE id = ?”, atualizacao)
conn.commit()
Deletar um funcionário
Por �m, vamos deletar um funcionário da tabela, simulando a operação de “Delete”.
# Passo 6: Deletar um funcionário da tabela
id_funcionario_para_deletar = 1
cursor.execute(“DELETE FROM funcionarios WHERE id = ?”, (id_funcionario_para_deletar,))
conn.commit()
Esse é um exemplo desenvolvido em um ambiente real. Você deve implementar mecanismos de
tratamento de erros e segurança adequados para lidar com operações em um banco de dados.
As operações CRUD são fundamentais na gestão de dados em sistemas que utilizam bancos de
dados relacionais como o SQLite.
 
O material visual a seguir esquematiza os principais tópicos abordados nesta unidade de
aprendizagem, que apresentou uma introdução à análise com Python. Este infográ�co exibe uma
percepção clara e sucinta de cada parte desta etapa de estudos, enfatizando os conceitos e
fundamentos necessários para uma boa compreensão dos saberes desenvolvidos.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Figura 1 | Infográ�co: explorando recursos do Python. Fonte: elaborada pelo autor.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
ARRUDA, R. Comunicação inteligente e storytelling: para alavancar negócios e carreiras. Rio de
Janeiro: Alta Books, 2019. E-book. Disponível em:
https://integrada.minhabiblioteca.com.br/#/#/books/9788550812977/. Acesso em: 5 nov. 2023.
GRUS, J. Data science do zero: primeiras regras com o Python. Rio de Janeiro: Alta Books, 2021.
E-book. Disponível em: https://integrada.minhabiblioteca.com.br/#/books/9788550816463.
Acesso em: 12 out. 2023.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Algoritmos: lógica para desenvolvimento de
programação de computadores. 29. ed. São Paulo: Érica, 2019.
PERKOVIC, L. Introdução à computação usando Python: um foco no desenvolvimento de
aplicações. Rio de Janeiro: LTC, 2016.
,
Unidade 4
Aplicações com Python
Aula 1
Introdução à Programação Web com Python
Introdução à programação web com Python
Este conteúdo é um vídeo!
Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender
conteúdos importantes para a sua formação pro�ssional. Vamos assisti-la? 
Bons estudos! 
Ponto de Partida
https://integrada.minhabiblioteca.com.br/#/#/books/9788550812977/
https://integrada.minhabiblioteca.com.br/#/books/9788550816463
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Python é uma linguagem de programação amplamente utilizada no desenvolvimento web,
segmento que envolve a criação de aplicativos e sites para a internet. Esse processo abrange
tanto o lado do cliente (front-end) quanto o lado do servidor (back-end), utilizando linguagens
como HTML, CSS e
JavaScript, além de frameworks como React, Django ou Flask. Nesse contexto, a linguagem
Python age como um “mediador” dessas interações.
O front-end é a interface visível para os usuários. Desenvolvedores front-end utilizam HTML, CSS
e JavaScript, frequentemente integrando frameworks como React, Angular ou Vue.js para criar
interatividade. A Python também é utilizada, por exemplo, em projetos que envolvem a
construção de interfaces usando Dash ou Flask.
O back-end é responsável pela lógica, processamento e armazenamento de dados.
Desenvolvedores back-end usam linguagens como Python, Java ou Node.js, além de frameworks
como Django, Flask ou Express, para criar a lógica do servidor e gerenciar interações com o
banco de dados.
Vamos imaginar que você esteja participando de um curso de desenvolvimento web e sua
primeira tarefa seja criar uma página de per�l pessoal.
Vamos Começar!
Visão geral sobre o desenvolvimento de sistemas para a web
O desenvolvimento de sistemas para a web com Python se apresenta como uma jornada
empolgante, que combina a versatilidade dessa linguagem de programação com as demandas
dinâmicas da internet moderna. A linguagem Python, conhecida por sua legibilidade, facilidade
de aprendizado e vasta comunidade de desenvolvedores, tem se destacado tanto no front-end
quanto no back-end, oferecendo soluções abrangentes para a criação de aplicativos web
robustos e e�cientes.
No início, as páginas web eram estáticas e limitadas em sua interatividade. Com o tempo, a
necessidade de interfaces mais dinâmicas e funcionais levou ao desenvolvimento de linguagens
e frameworks voltados para a web. A Python entrou nesse cenário, inicialmente no back-end,
ganhando destaque com frameworks como Django e Flask.
O desenvolvimento web é dividido principalmente em duas partes: front-end e back-end. O front-
end lida com a interface do usuário, enquanto o back-end gerencia a lógica, o processamento de
dados e a interação com o banco de dados. A linguagem Python é versátil o su�ciente para ser
utilizada em ambos os contextos (front-end e back-end), proporcionando uma integração suave e
e�ciente entre essas camadas.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
A Python possui uma gama de frameworks e bibliotecas dedicados ao desenvolvimento web.
Django, um framework full-stack, é reconhecido pela sua robustez e convenções claras. Flask,
uma estrutura mais leve, é apreciada pela sua �exibilidade. Ambos os recursos são excelentes
escolhas para o back-end. Além disso, bibliotecas front-end como React, Vue.js e Angular podem
ser facilmente integradas à linguagem Python.
O desenvolvimento web moderno destaca a importância das APIs (Interfaces de Programação de
Aplicações) para otimizar a comunicação entre o front-end e o back-end. A Python, com
frameworks como FastAPI e Django Rest Framework, oferece soluções poderosas para criar APIs
escaláveis e bem documentadas.
A tecnologia web está em constante evolução. O uso de arquiteturas sem servidor,
microsserviços, containers e orquestradores como Kubernetes tornou-se comum. Python, com
suas características de legibilidade e �exibilidade, se integra facilmente a essas tecnologias,
permitindo que os desenvolvedores permaneçam atualizados com as últimas tendências dessa
área.
O desenvolvimento web com Python não está isento de desa�os. A escalabilidade, a segurança e
a necessidade de interfaces mais ricas são considerações constantes. No entanto, esses
desa�os também proporcionam oportunidades para aprimorar habilidades e explorar soluções
inovadoras.         
Em resumo, o desenvolvimento de sistemas para a web com Python viabiliza uma abordagem
completa e poderosa. Seja construindo uma aplicação web simples ou um sistema complexo, a
linguagem Python proporciona ferramentas e recursos para enfrentar os desa�os do
desenvolvimento web moderno.
Com uma comunidade ativa e uma série de recursos disponíveis, a Python continua a ser uma
escolha excelente para aqueles que querem mergulhar no mundo dinâmico do desenvolvimento
web.
Front-end e back-end
O front-end de uma aplicação web é a interface com a qual os usuários interagem diretamente. A
partir de agora, vamos descobrir como criar uma experiência front-end simples usando Python
no Google Colab.
O HTML é a espinhadorsal do conteúdo na web. Podemos criar elementos HTML usando Python
no Colab e, em seguida, incorporá-los em nossa página.
Vamos criar uma página HTML básica:
# Criando uma página HTML usando Python
html_code =
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
  Exemplo de Front-end com Python
  Olá, mundo!
  Esta é uma página web criada usando Python no Google Colab.
 
 
# Exibindo a página HTML
from IPython.display import HTML
HTML(html_code)
Olá, mundo!
Esta é uma página web criada usando Python no Google Colab.
Nesse exemplo, geramos uma página HTML usando uma string Python e a exibimos no Colab.
Isso demonstra como podemos incorporar HTML no Colab para criar conteúdo front-end.
O back-end de uma aplicação web lida com a lógica, o processamento de dados e a interação
com o servidor. Vamos entender, então, como criar um back-end simples usando Python no
Google Colab.
O Flask é um framework web leve para Python. Embora não seja a escolha ideal para ambientes
de produção no Colab, podemos usá-lo para criar um exemplo básico de servidor back-end:
!ngrok authtoken 2YE2L21rdpK3IO8oTpHoTCL9z7h_xxsYeAHKwXUzQjWLZduY
# usar esse código de autenticação
# Em outra célula rodar:
!pip install �ask �ask-ngrok
 
from �ask import Flask
from �ask_ngrok import run_with_ngrok
 
app = Flask(__name__)
run_with_ngrok(app)
 
@app.route('/')
def index():
    return 'Olá, esta é a rota principal do back-end!'
 
if __name__ == '__main__':
    app.run()
* Serving Flask app '__main__'
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
 * Debug mode: off
INFO:werkzeug:WARNING: This is a development server. Do not use it in a production
deployment. Use a production WSGI server instead.
 * Running on http://127.0.0.1:5000
INFO:werkzeug:Press CTRL+C to quit
 * Running on http://e399-34-141-146-10.ngrok-free.app #muda quando rodamos de novo
 * Tra�c stats available on http://127.0.0.1:4040
A célula apresentada anteriormente cria um aplicativo Flask e o expõe publicamente usando o
ngrok para criar um túnel. Isso permite que você acesse seu servidor Flask temporário a partir de
um link gerado pelo ngrok.
Esses exemplos ilustram a integração do front-end e do back-end usando Python no Google
Colab. Para projetos mais complexos, considere o uso de ambientes de desenvolvimento web
dedicados, mas, para experimentação e demonstração, o Colab dispõe uma plataforma interativa
e prática.
  
Siga em Frente...
Primeiras páginas web
Vamos, agora, melhorar nossa página feita com HTML no Colab!
# Exemplo de HTML com botão usando Python
html_code =
    
    
    Minha Primeira Página Web
    
        body {
            font-family: 'Arial', sans-serif;
            background-color: #f8f8f8;
            margin: 0;
            display: �ex;
            justify-content: center;
            align-items: center;
            height: 100vh;
        }
http://127.0.0.1:5000/
http://e399-34-141-146-10.ngrok-free.app/
http://127.0.0.1:4040/
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
 
        .container {
            text-align: center;
            padding: 40px;
            background-color: #fff;
            border-radius: 8px;
            box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
        }
 
        h1 {
            color: #3498db;
            font-size: 2em;
            margin-bottom: 20px;
        }
 
        p {
            color: #555;
            font-size: 1.2em;
        }
 
        button {
            background-color: #3498db;
            color: #fff;
            font-size: 1.2em;
            padding: 10px 20px;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            transition: background-color 0.3s ease;
        }
 
        button:hover {
            background-color: #2980b9;
        }
    
    
        Olá, Mundo!
        Esta é minha primeira página web criada com Python no Colab. Bem-vindo ao mundo
da programação web!
        Clique em Mim
    
 
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
 
# Exibindo a página HTML
from IPython.display import HTML
HTML(html_code)
Alteramos as cores de fundo, texto e sombra para tornar a página mais atraente. Ajustamos o
tamanho da fonte e o espaçamento para melhorar a legibilidade. Centralizamos os elementos na
tela usando o Flexbox. Adicionamos uma sombra sutil e bordas arredondadas ao container para
um visual mais moderno. Adicionamos um botão com um estilo básico. O botão aciona um
alerta simples quando clicado.
Vamos Exercitar?
Vamos pensar no problema apresentado no início desta aula. Imagine que você esteja
participando de um curso de desenvolvimento web e sua primeira tarefa seja criar uma página de
per�l pessoal.
from IPython.display import HTML
html_code =
    
    
    Meu Per�l
 
    
        Anderson Inácio Salata de Abreu
        Desenvolvedor Web
    
 
    
        
        
            Cidade: Sorocaba 
            País: Brasil
            Interesses: Web Development, Programação, etc.
        
    
 
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
    
        Habilidades
        
            Linguagens: Python, HTML, CSS, JavaScript
            Ferramentas: Git, VS Code
        
    
 
    
        Projeto Recente
        Trabalhando em um site pessoal para mostrar meu portfólio.
    
 
    
        LinkedIn
    
 
# Exibindo a página HTML
HTML(html_code)
Nesse código, criamos um site com algumas informações pessoais utilizando HTML. Além
disso, como “mediador”, usamos o Python no Colab!
Espero que você tenha gostado da solução! Lembre-se de que a prática é importante! Mude
alguma parte do código e diversi�que seu conhecimento! 
Saiba mais
1. O Jupyter Notebook fornece um ambiente no qual você pode trabalhar com facilidade o seu
código na linguagem Python. Para saber mais detalhes, visite: jupyter.
2. Como mencionado anteriormente, uma leitura interessante para quem está começando a
programar em Python é a do livro Python 3: conceitos e aplicações: uma abordagem didática.
BANIN, S. L. Python 3: conceitos e aplicações: uma abordagem didática. São Paulo: Érica,
2018. E-book.
3. O Django, enquanto framework, se destaca como uma ferramenta consolidada, simpli�cando
signi�cativamente o processo de criação de aplicações web. Sua vantagem reside na capacidade
de facilitar o desenvolvimento sem depender de um ambiente de execução robusto, concedendo,
https://jupyter.org/try
https://integrada.minhabiblioteca.com.br/#/books/9788536530253
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
ao mesmo tempo, a �exibilidade de integração rápida com servidores compatíveis para a
distribuição de aplicações de modo e�cientee descomplicado.
MACIEL, F. M. B. Python e Django: desenvolvimento web moderno e ágil. Rio de Janeiro: Alta
Book, 2018. E-book.
 
Referências
BANIN, S. L. Python 3: conceitos e aplicações: uma abordagem didática. São Paulo: Érica,
2018. E-book. Disponível em:
https://integrada.minhabiblioteca.com.br/books/9788536530253. Acesso em: 21 out. 2023.
MACIEL, F. M. B. Python e Django: desenvolvimento web moderno e ágil. Rio de Janeiro: Alta
Book, 2018. E-book. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9786555200973. Acesso em: 21 out. 2023.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Algoritmos: lógica para desenvolvimento de
programação de computadores. 29. ed. São Paulo: Érica, 2019.
TERUEL, E. C. HTML 5: guia prático. São Paulo: Érica, 2013. E-book.
TRY JUPYTER. Jupyter, [s. d.]. Disponível em: https://jupyter.org/try. Acesso em: 15 nov. 2023.
Aula 2
Introdução a Programação Mobile com Python
Introdução a Programação Mobile com Python
Este conteúdo é um vídeo!
Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
https://integrada.minhabiblioteca.com.br/#/books/9786555200973
https://integrada.minhabiblioteca.com.br/#/books/9786555200973
https://integrada.minhabiblioteca.com.br/books/9788536530253
https://integrada.minhabiblioteca.com.br/#/books/9786555200973
https://jupyter.org/try
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender
conteúdos importantes para a sua formação pro�ssional. Vamos assisti-la? 
Bons estudos!
Ponto de Partida
O desenvolvimento móvel revoluciona a maneira como interagimos com a tecnologia,
oportunizando a criação de aplicativos que transformam nossos dispositivos em ferramentas
poderosas.
O KivyMD emerge como um recurso robusto para o desenvolvimento móvel em Python,
oferecendo uma gama diversi�cada de widgets e mecanismos inspirados no Material Design.
Essa biblioteca dinâmica capacita desenvolvedores para a construção de aplicativos móveis
visualmente atraentes, mantendo a �exibilidade e a e�ciência.
Ao adotar o MDTabs no KivyMD, a organização estruturada de interfaces móveis ganha
destaque. A utilização inteligente de widgets e abas simpli�ca a navegação do usuário,
fornecendo uma base sólida para elaborar aplicações móveis intuitivas e e�cazes.
Para contextualizar sua aprendizagem, imagine a seguinte situação: você foi designado para
desenvolver uma calculadora. A princípio, você deve replicar uma versão comum, mas,
posteriormente, precisará modi�cá-la e criar novas funcionalidades.
Vamos Começar!
Introdução ao desenvolvimento mobile  
O desenvolvimento mobile refere-se à criação de aplicativos para dispositivos móveis, como
smartphones e tablets. Enquanto muitos desenvolvedores associam o desenvolvimento mobile a
linguagens nativas especí�cas de plataformas – como Swift, para iOS, e Kotlin/Java, para
Android –, o uso de Python tem ganhado popularidade por causa de sua versatilidade e
facilidade de aprendizado.
A linguagem Python, com sua sintaxe clara e concisa, oferece uma abordagem diferenciada para
o desenvolvimento mobile. Frameworks notáveis, como Kivy, BeeWare e o recente Flutter com
suporte para Python, permitem aos desenvolvedores criar aplicativos atraentes e funcionais
usando a Python como linguagem principal.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
O Kivy é uma opção poderosa para o desenvolvimento mobile em Python, pois apresenta uma
estrutura robusta para construir interfaces grá�cas multitouch. Com suporte para várias
plataformas, incluindo Android e iOS, o Kivy simpli�ca o processo de criação de aplicativos
visualmente impressionantes, promovendo a reutilização de código entre diferentes sistemas
operacionais.
Ao optar pela Python no desenvolvimento mobile, os desenvolvedores podem aproveitar os
benefícios de uma comunidade ativa, uma vasta biblioteca de módulos e a agilidade
proporcionada pela linguagem. No entanto, é importante estar ciente dos prováveis desa�os,
como o desempenho comparado a linguagens nativas e possíveis limitações de acesso a
recursos especí�cos do dispositivo.
O uso de Python no desenvolvimento mobile abre portas para desenvolvedores que já estão
familiarizados com a linguagem, possibilitando que eles ampliem seu alcance para o universo
mobile. Com frameworks robustos disponíveis, a escolha entre Python e outras linguagens para
desenvolvimento mobile dependerá dos requisitos especí�cos do projeto e das preferências da
equipe de desenvolvimento.
Siga em Frente...
KivyMD
O KivyMD é uma extensão do Kivy, um framework Python para o desenvolvimento de aplicativos
multitouch. O KivyMD estende as capacidades do Kivy ao integrar os princípios de design do
Material Design do Google, concedendo uma experiência visualmente atraente e consistente em
dispositivos móveis.
As principais características do KivyMD são:
1. Material Design: o KivyMD adota os padrões de design do Material Design, oferecendo uma
interface de usuário moderna, consistente e intuitiva, a qual inclui elementos como botões
�utuantes, barras de navegação e efeitos de transição.
2. Componentes prontos para uso: o framework fornece uma variedade de componentes
prontos para uso, como botões, caixas de diálogo, cartões e muitos outros recursos. Esses
componentes seguem as diretrizes do Material Design, otimizando a criação de interfaces
visualmente atraentes.
3. Suporte a múltiplas plataformas: assim como o Kivy, o KivyMD é multiplataforma,
permitindo que os aplicativos sejam executados em diferentes sistemas operacionais,
incluindo Android, iOS, Windows, Linux e macOS.
Widgets e organização de telas utilizando o MDTabs
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Os widgets desempenham um papel fundamental no desenvolvimento de interfaces de usuário
interativas. No contexto do KivyMD (Material Design Components for Kivy), os widgets são
blocos de construção essenciais para criar aplicativos visualmente atraentes.
O MDTabs é um widget poderoso do KivyMD projetado para facilitar a organização de conteúdo
em diferentes abas. Isso é particularmente útil quando você precisa exibir várias seções ou
funcionalidades em um aplicativo sem sobrecarregar a tela principal.
# Instalação do KivyMD
!pip install kivymd
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.uix.tabbedpanel import TabbedPanel, TabbedPanelItem
 
Builder.load_string('''
:
    TabbedPanel:
        do_default_tab: False
        TabbedPanelItem:
            text: 'Tab 1'
            BoxLayout:
                orientation: 'vertical'
                Label:
                    text: 'Content for Tab 1'
        TabbedPanelItem:
            text: 'Tab 2'
            BoxLayout:
                orientation: 'vertical'
                Label:
                    text: 'Content for Tab 2'
''')
 
class TabsLayout(BoxLayout):
    pass
 
class TabsApp(App):
    def build(self):
        return TabsLayout()
 
if __name__ == '__main__':
    TabsApp().run()
Esse é um exemplo básico de um aplicativo Kivy com guias. O conteúdo de cada guia é um
simples rótulo, mas você pode personalizá-lo e expandi-lo conforme necessário, para atender aos
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
requisitos do seu aplicativo. Esse código foi rodado utilizando-se o Jupyter Notebook. O Google
Colab não consegue gerar o aplicativo!
Vamos Exercitar?
Vamos pensar no problema apresentado no início desta aula. Devemos criar o aplicativo de uma
calculadora! Nesse caso, vamos usar novamente o Jupyter Notebook.
!pip install kivymd
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.gridlayout import GridLayout
from kivymd.app import MDApp
from kivymd.uix.buttonimport MDRaisedButton
from kivymd.uix.text�eld import MDTextField
from kivy.metrics import dp
KV = '''
:
    orientation: 'vertical'
    MDTextField:
        id: input_�eld
        hint_text: "Insira um número"
        helper_text_mode: "on_focus"
        input_�lter: "�oat"
    GridLayout:
        cols: 4
        spacing: dp(10)
        MDRaisedButton:
            text: "1"
            on_press: app.on_number_press(1)
        MDRaisedButton:
            text: "2"
            on_press: app.on_number_press(2)
        MDRaisedButton:
            text: "3"
            on_press: app.on_number_press(3)
        MDRaisedButton:
            text: "+"
            on_press: app.on_operator_press("+")
        MDRaisedButton:
            text: "4"
            on_press: app.on_number_press(4)
        MDRaisedButton:
            text: "5"
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
            on_press: app.on_number_press(5)
        MDRaisedButton:
            text: "6"
            on_press: app.on_number_press(6)
        MDRaisedButton:
            text: "-"
            on_press: app.on_operator_press("-")
        MDRaisedButton:
            text: "7"
            on_press: app.on_number_press(7)
        MDRaisedButton:
            text: "8"
            on_press: app.on_number_press(8)
        MDRaisedButton:
            text: "9"
            on_press: app.on_number_press(9)
        MDRaisedButton:
            text: "*"
            on_press: app.on_operator_press("*")
        MDRaisedButton:
            text: "C"
            on_press: app.clear_input()
        MDRaisedButton:
            text: "0"
            on_press: app.on_number_press(0)
        MDRaisedButton:
            text: "="
            on_press: app.calculate_result()
        MDRaisedButton:
            text: "/"
            on_press: app.on_operator_press("/")
'''
class CalculatorApp(BoxLayout):
    def on_number_press(self, number):
        current_text = self.ids.input_�eld.text
        new_text = f{current_text}{number}
        self.ids.input_�eld.text = new_text
    def on_operator_press(self, operator):
        current_text = self.ids.input_�eld.text
        new_text = f{current_text} {operator} "
        self.ids.input_�eld.text = new_text
    def clear_input(self):
        self.ids.input_�eld.text =
    def calculate_result(self):
        try:
            result = eval(self.ids.input_�eld.text)
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
            self.ids.input_�eld.text = str(result)
        except Exception as e:
            self.ids.input_�eld.text =
class CalculatorMDApp(MDApp):
    def build(self):
        return CalculatorApp()
    def on_number_press(self, number):
        self.root.on_number_press(number)
    def on_operator_press(self, operator):
        self.root.on_operator_press(operator)
    def clear_input(self):
        self.root.clear_input()
    def calculate_result(self):
        self.root.calculate_result()
if __name__ == :
    Builder.load_string(KV)
    CalculatorMDApp().run()
Por meio desse código, criamos uma calculadora! Maneiro, não é? Agora, faça modi�cações e
deixe a calculadora da forma que você achar melhor.
Espero que você tenha gostado da solução! Lembre-se de que a prática é importante! Mude
alguma parte do código e diversi�que seu conhecimento!
!pip install kivymd
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.gridlayout import GridLayout
from kivymd.app import MDApp
from kivymd.uix.button import MDRaisedButton
from kivymd.uix.text�eld import MDTextField
from kivy.metrics import dp
KV = '''
:
    orientation: 'vertical'
    MDTextField:
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
        id: input_�eld
        hint_text: "Insira um número"
        helper_text_mode: "on_focus"
        input_�lter: "�oat"
    GridLayout:
        cols: 4
        spacing: dp(10)
        MDRaisedButton:
            text: "1"
            on_press: app.on_number_press(1)
        MDRaisedButton:
            text: "2"
            on_press: app.on_number_press(2)
        MDRaisedButton:
            text: "3"
            on_press: app.on_number_press(3)
        MDRaisedButton:
            text: "+"
            on_press: app.on_operator_press("+")
        MDRaisedButton:
            text: "4"
            on_press: app.on_number_press(4)
        MDRaisedButton:
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
            text: "5"
            on_press: app.on_number_press(5)
        MDRaisedButton:
            text: "6"
            on_press: app.on_number_press(6)
        MDRaisedButton:
            text: "-"
            on_press: app.on_operator_press("-")
        MDRaisedButton:
            text: "7"
            on_press: app.on_number_press(7)
        MDRaisedButton:
            text: "8"
            on_press: app.on_number_press(8)
        MDRaisedButton:
            text: "9"
            on_press: app.on_number_press(9)
        MDRaisedButton:
            text: "*"
            on_press: app.on_operator_press("*")
        MDRaisedButton:
            text: "C"
            on_press: app.clear_input()
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
        MDRaisedButton:
            text: "0"
            on_press: app.on_number_press(0)
        MDRaisedButton:
            text: "="
            on_press: app.calculate_result()
        MDRaisedButton:
            text: "/"
            on_press: app.on_operator_press("/")
'''
class CalculatorApp(BoxLayout):
    def on_number_press(self, number):
        current_text = self.ids.input_�eld.text
        self.ids.input_�eld.text = new_text
    def on_operator_press(self, operator):
        current_text = self.ids.input_�eld.text
        self.ids.input_�eld.text = new_text
    def clear_input(self):
    def calculate_result(self):
        try:
            result = eval(self.ids.input_�eld.text)
            self.ids.input_�eld.text = str(result)
        except Exception as e:
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
class CalculatorMDApp(MDApp):
    def build(self):
        return CalculatorApp()
    def on_number_press(self, number):
        self.root.on_number_press(number)
    def on_operator_press(self, operator):
        self.root.on_operator_press(operator)
    def clear_input(self):
        self.root.clear_input()
    def calculate_result(self):
        self.root.calculate_result()
    Builder.load_string(KV)
    CalculatorMDApp().run()
Por meio desse código, criamos uma calculadora! Maneiro, não é? Agora, faça modi�cações e
deixe a calculadora da forma que você achar melhor.
Espero que você tenha gostado da solução! Lembre-se de que a prática é importante! Mude
alguma parte do código e diversi�que seu conhecimento!
Saiba mais
Kivy é uma biblioteca usada para o desenvolvimento de software com código-fonte aberto,
voltado ao rápido desenvolvimento de aplicações que utilizam novas interfaces de usuário. Para
saber mais detalhes, visite: https://python.org.br/mobile/.
Como mencionado anteriormente, uma leitura interessante para quem está começando a
programar em Python é a do livro Python 3: conceitos e aplicações: uma abordagem didática.
BANIN, S. L. Python 3: conceitos e aplicações: uma abordagem didática. São Paulo: Érica,
2018. E-book.
https://python.org.br/mobile/
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
https://integrada.minhabiblioteca.com.br/#/books/9788536530253
Também encorajo você a conhecer o livro Fundamentos de desenvolvimento mobile, que
apresenta conceitos e aplicações para mobile.
MORAIS, M. S. de F. et al. Fundamentos de desenvolvimento mobile. Porto Alegre: Grupo A, 2022.
https://integrada.minhabiblioteca.com.br/#/books/9786556903057
Referências
BANIN, S. L. Python 3: conceitos e aplicações: uma abordagem didática. São Paulo: Érica,
2018. E-book. Disponível em: https://integrada.minhabiblioteca.com.br/books/9788536530253.
Acesso em: 21 out. 2023.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Algoritmos: lógica para desenvolvimentode
programação de computadores. 29. ed. São Paulo: Érica, 2019.
MORAIS, M. S. de F. et al. Fundamentos de desenvolvimento mobile. Porto Alegre: Grupo A, 2022.
Disponível em: https://integrada.minhabiblioteca.com.br/#/books/9786556903057. Acesso em:
21 out. 2023.
PYTHON para desenvolvimento mobile. Python Brasil, 3 jun. 2016. Disponível
em: https://python.org.br/mobile/. Acesso em: 15 nov. 2023.
Aula 3
Testes com Python
Testes com Python
https://integrada.minhabiblioteca.com.br/#/books/9788536530253
https://integrada.minhabiblioteca.com.br/#/books/9786556903057
https://integrada.minhabiblioteca.com.br/books/9788536530253
https://integrada.minhabiblioteca.com.br/#/books/9786556903057
https://python.org.br/mobile/
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Este conteúdo é um vídeo!
Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender
conteúdos importantes para a sua formação pro�ssional. Vamos assisti-la? 
Bons estudos!
Ponto de Partida
Os testes em Python desempenham um papel fundamental no desenvolvimento de softwares,
garantindo que o código seja robusto, con�ável e atenda aos requisitos esperados. Existem
várias abordagens e ferramentas pelas quais é possível realizar testes, proporcionando uma
cobertura completa das funcionalidades do programa.
As assertions são utilizadas para veri�car condições essenciais durante a execução do código.
São cruciais para a detecção precoce de bugs, bem como para a garantia da consistência do
código.
Os doctests oferecem uma abordagem única, incorporando testes diretamente na documentação
do código-fonte. Isso não apenas fornece exemplos de uso atualizados na documentação, mas
também serve como uma veri�cação automatizada para assegurar que os exemplos
apresentados estejam corretos.
O unittest é uma estrutura mais abrangente para testes em Python. Ele permite a organização de
testes em classes e métodos, facilitando a manutenção e a execução seletiva de testes. As
assertions fornecidas pelo unittest são mais robustas, oferecendo uma ampla gama de
veri�cações. Esse mecanismo é ideal para projetos maiores, nos quais uma estrutura de teste
mais formal é necessária para garantir a qualidade do código.
Para ter domínio sobre os testes que serão estudados nesta aula, suponha que você precise criar
uma função que calcule a soma de uma lista de número e, em seguida, deva aplicar os três
testes mencionados para saber se a função está correta.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Vamos Começar!
Assertions
As assertions são expressões utilizadas para veri�car as condições de verdade durante a
execução do código. Elas são fundamentais para a detecção precoce de erros, assegurando que
as suposições sobre o comportamento do programa sejam atendidas. Con�ra, a seguir, um
exemplo simples de como as assertions podem ser empregadas:
def divide(x, y):
    assert y != 0,
    return x / y
 
result = divide(6, 0)
print(result)  # AssertionError: Divisão por zero!
O código cria uma função divisão, a qual, como bem sabemos, tem uma particularidade: a
divisão por zero. Nesse caso, o algoritmo avisa sobre o erro.
Doctests
O doctest é um módulo em Python que permite incorporar testes diretamente na documentação
do código, aproveitando os exemplos presentes na documentação para veri�car se o código
funciona conforme o esperado. Vamos considerar o seguinte trecho de código com doctests:
def square(x):
    
    Retorna o quadrado de um número.
 
    Exemplos:
    >>> square(3)
    9
    >>> square(-2)
    4
    >>> square(0)
    0
    """
    return x * x
import doctest
doctest.testmod()
TestResults(failed=0, attempted=3)
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
A função square é acompanhada por uma string de documentação que inclui exemplos de uso.
Esses exemplos estão formatados de maneira especial, usando o prompt >>>, que indica um
bloco de código Python.
Quando você executa doctest.testmod(), o módulo doctest procura todas as strings de
documentação no seu código que contenham blocos de código >>> e executa esses blocos
como testes. Ele compara a saída real desses blocos com o resultado esperado fornecido nos
comentários.
No caso do exemplo anterior, doctest.testmod() executará a função square(3) e veri�cará se o
resultado é igual a 9, executará square(-2) e veri�cará se o resultado é 4, e assim por diante.
Se todos os testes passarem, o doctest não produzirá nenhuma saída. Se houver uma
discrepância entre a saída real e a esperada, o doctest imprimirá uma mensagem indicando onde
ocorreu o problema.
A principal vantagem do doctest é que ele permite que você mantenha exemplos na
documentação e, ao mesmo tempo, os utilize como testes automatizados. Isso ajuda a garantir
que a documentação esteja sempre em sincronia com o código real. Além disso, quando você
executa os testes, obtém uma validação automática dos exemplos apresentados na
documentação.
Siga em Frente...
Módulo unittest
O módulo unittest disponibiliza uma estrutura de teste mais avançada, viabilizando a
organização de testes em classes e métodos, além de fornecer assertions mais poderosas.
Con�ra, a seguir, um exemplo simples de uso do unittest:
import unittest
 
def add(a, b):
    return a + b
 
class TestAddition(unittest.TestCase):
    def test_add_positive_numbers(self):
        self.assertEqual(add(2, 3), 5)
 
    def test_add_negative_numbers(self):
        self.assertEqual(add(-2, -3), -5)
 
if __name__ == '__main__':
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
    import unittest
    unittest.main(argv=['�rst-arg-is-ignored'], exit=False)
    print()
A função add simplesmente soma dois números e cria uma classe que herda de
unittest.TestCase. Isso indica que essa classe contém testes unitários. Dentro da classe de teste,
você de�ne métodos de teste. Cada método de teste deve começar com a palavra-chave test.
Dentro desses métodos, você usa assertivas (como self.assertEqual) para veri�car se o
comportamento esperado do código é atendido. A condição if __name__ == '__main__': garante
que a suíte de testes seja executada somente se o script for executado diretamente (não se for
importado como um módulo em outro script). unittest.main() executa todos os testes de�nidos
na classe TestAddition.
Vamos Exercitar?
Vamos pensar no problema apresentado no início desta aula. Para isso, considere uma função
que calcula a soma de uma lista de números.
#assert
def sum_numbers(numbers):
    assert sum([1, 2, 3, 4]) == 10
    assert sum([-1, 0, 1]) == 0
    assert sum([]) == 0
    return sum(numbers)
teste = sum_numbers([1, 2, 3, 5])  
print(teste)
 
#doctest
def sum_numbers(numbers):
    
    Soma os números em uma lista.
 
    Exemplos:
    >>> sum_numbers([1, 2, 3, 4])
    10
    >>> sum_numbers([-1, 0, 1])
    0
    >>> sum_numbers([])
    0
    """
    return sum(numbers)
 
if __name__ == :
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
    import doctest
    doctest.testmod()
 
#unittest
import unittest
def sum_numbers(numbers):
    return sum(numbers)
 
class TestSumNumbers(unittest.TestCase):
    def test_sum_numbers_positive(self):
        self.assertEqual(sum_numbers([1, 2, 3, 4]), 10)
 
    def test_sum_numbers_mixed(self):
        self.assertEqual(sum_numbers([-1, 0, 1]), 0)
 
    def test_sum_numbers_empty(self):
        self.assertEqual(sum_numbers([]), 0)
 
if __name__ == '__main__':
    unittest.main(argv=['�rst-arg-is-ignored'], exit=False)
Nesse código, criamos a função sum_number. A ideia é testar os três tipos de teste que
estudamos nesta etapa de aprendizagem e aplicá-los ao caso investigado. Observe que cada
situação foi resolvida de um modo distinto. O importante é sempre analisar qual a melhor
solução para o problema em que estamos atuando.
Esperoque você tenha gostado da solução! Lembre-se de que a prática é importante! Mude
alguma parte do código e diversi�que seu conhecimento!
Saiba mais
1. Para obter mais informações sobre testes com Python, a leitura da documentação do Python é
essencial.
2. Como mencionado anteriormente, uma leitura interessante para quem está começando a
programar em Python é a do livro Python 3: conceitos e aplicações: uma abordagem didática.
BANIN, S. L. Python 3: conceitos e aplicações: uma abordagem didática. São Paulo: Érica,
2018. E-book.
3. Outra dica para estudo e aprofundamento sobre esse tema é o livro Use a cabeça! Python.
BARRY, P. Use a cabeça! Python. 2. ed. Rio de Janeiro: Alta Books, 2018. E-book.
https://docs.python.org/3/library/unittest.html
https://integrada.minhabiblioteca.com.br/#/books/9788536530253
https://integrada.minhabiblioteca.com.br/#/books/9788536530253
https://integrada.minhabiblioteca.com.br/#/books/9786555207842.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Referências
BANIN, S. L. Python 3: conceitos e aplicações: uma abordagem didática. São Paulo: Érica,
2018. E-book. Disponível em: https://integrada.minhabiblioteca.com.br/books/9788536530253.
Acesso em: 21 out. 2023.
BARRY, P. Use a cabeça! Python. 2. ed. Rio de Janeiro: Alta Books, 2018. E-book. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9786555207842. Acesso em: 12 out. 2023.
LEMBURG, M. PEP 249 - Python database API speci�cation v.2.0. Python Enhancement
Proposals, 12 abr. 1999. Disponível em: https://peps.python.org/pep-0249/#description. Acesso
em: 31 out. 2023.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Algoritmos: lógica para desenvolvimento de
programação de computadores. 29. ed. São Paulo: Érica, 2019.
UNITTEST – Unit testing framework. Python 3.12.2 Documentation, [s. d.]. Disponível
em: https://docs.python.org/3/library/unittest.html. Acesso em: 16 nov. 2023.
Aula 4
Machine Learning com Python
Machine learning com Python
Este conteúdo é um vídeo!
Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender
conteúdos importantes para a sua formação pro�ssional. Vamos assisti-la? 
Bons estudos! 
https://integrada.minhabiblioteca.com.br/books/9788536530253
https://integrada.minhabiblioteca.com.br/#/books/9786555207842
https://peps.python.org/pep-0249/#description
https://docs.python.org/3/library/unittest.html%20
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Ponto de Partida
Machine learning (ML) é um campo da inteligência arti�cial que se concentra no
desenvolvimento de algoritmos e modelos que permitem que um sistema aprenda padrões a
partir de dados e faça previsões ou tome decisões mesmo que não seja explicitamente
programado para tal. Em vez de seguir instruções especí�cas, os modelos de ML são
alimentados com dados e ajustam seus parâmetros para que se adaptem da melhor maneira
possível a esses dados. Tal método de aprendizado possibilita que os modelos generalizem e
tomem decisões em novos dados.
No processo de machine learning, o treinamento é crucial para permitir que o modelo aprenda
padrões com base nos dados. Existem vários tipos de treinamento, cada um com características
distintas.
TensorFlow é uma biblioteca de código aberto desenvolvida pela Google que facilita a
implementação de modelos de machine learning e deep learning.
Sua estrutura �exível viabiliza a criação e o treinamento de modelos complexos, sendo
amplamente utilizada na comunidade de aprendizado de máquina.
Para contextualizar sua aprendizagem, imagine que você seja o gerente de uma pequena loja que
vende produtos exclusivos. Ao analisar o histórico de vendas ao longo de um ano, você percebeu
que as vendas variam à medida que os meses se passam. Para tomar decisões mais informadas
sobre o estoque e as estratégias de marketing, você opta por explorar a possibilidade de prever
as vendas futuras.
Vamos Começar!
Teoria de machine learning
Machine learning (ML) – Aprendizado de Máquina, em português – é um campo da inteligência
arti�cial que se concentra no desenvolvimento de algoritmos e modelos capazes de aprender
padrões a partir de dados. O propósito central do ML é capacitar computadores para que
realizem tarefas especí�cas mesmo que não sejam explicitamente programados para tais ações,
permitindo que eles evoluam e melhorem com a experiência. O processo de aprendizado envolve
a exposição a conjuntos de dados, nos quais o sistema identi�ca padrões, correlações e regras,
preparando-se para realizar previsões ou tomar decisões em novos dados.
Existem diversas abordagens no campo de ML, como: aprendizado supervisionado, em que o
modelo é treinado com dados rotulados; aprendizado não supervisionado, no qual o modelo
busca por padrões em dados não rotulados; e o aprendizado por reforço, em que o modelo
interage com um ambiente dinâmico, aprendendo com as recompensas obtidas. O machine
learning tem aplicações abrangentes, que envolvem desde o reconhecimento de imagens até a
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
tomada de decisões complexas em setores como �nanças e saúde. Trata-se de um campo em
constante evolução, impulsionado por avanços tecnológicos e pela crescente disponibilidade de
dados, tornando-se uma ferramenta essencial em diversas áreas.
Alguns dos modelos e algoritmos de ML mais utilizados são:
1.    Árvores de decisão: modelo que toma decisões com base em condições.
2.    Redes neurais: inspiradas no funcionamento do cérebro, são usadas para problemas
complexos.
3.    Support Vector Machine (SVM): usado para classi�cação e regressão.
4.    K-Means: algoritmo de agrupamento utilizado no aprendizado não supervisionado.
Tipos de treinamento
Os tipos de treinamento são estratégias fundamentais no desenvolvimento de modelos de
machine learning, pois determinam como o algoritmo aprenderá com os dados disponíveis. Cada
abordagem tem características distintas e aplicações especí�cas, proporcionando �exibilidade
para diferentes contextos.
No treinamento supervisionado, o modelo é alimentado com um conjunto de dados rotulado, que
consiste em pares de entrada e saída esperadas. O objetivo é que o modelo aprenda a mapear
entradas para saídas corretas. Um exemplo prático pode ser observado na classi�cação de e-
mails como “spam” ou “não spam”.
Ao contrário do supervisionado, o treinamento não supervisionado lida com dados não rotulados.
O modelo é desa�ado a encontrar padrões e estruturas intrínsecas aos dados sem informações
prévias sobre as saídas. Como exemplo prático, podemos citar o agrupamento de clientes com
base em padrões de compra.
O treinamento por reforço envolve um agente interagindo com um ambiente dinâmico. O modelo
aprende a realizar ações que maximizem as recompensas ao longo do tempo. Exemplo prático:
treinar um agente de IA para jogar um jogo e ganhar pontos ao realizar as ações corretas.
Siga em Frente...
TensorFlow
TensorFlow é uma biblioteca de código aberto desenvolvida pela Google que facilita a
implementação de modelos de machine learning e deep learning. Sua estrutura �exível permite a
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
criação e o treinamento de modelos complexos, sendo amplamente utilizada na comunidade de
aprendizado de máquina.
A seguir, vamos analisar três exemplos dessa biblioteca: uma para treinamento supervisionado,
outro para treinamento não supervisionado e, por �m, um para treinamento por reforço.
Supervisionado
import tensor�ow as tf
from tensor�ow.keras.models import Sequential
from tensor�ow.keras.layers import Dense
 
# Dados de exemplo
X_train = tf.constant([[1.0], [2.0], [3.0], [4.0]])
y_train = tf.constant([[2.0], [4.0], [6.0], [8.0]])
 
# Modelo de Regressão Linear Simples
model = Sequential()
model.add(Dense(units=1,input_shape=(1,)))
model.compile(optimizer='sgd', loss='mean_squared_error')
 
# Treinamento do modelo
model.�t(X_train, y_train, epochs=1000, verbose=0)
 
# Previsão
X_new = tf.constant([[5.0]])
prediction = model.predict(X_new)
print(“Predição:”, prediction[0][0])
plt.ylabel('Notas')
plt.show()
Não supervisionado
import tensor�ow as tf
from tensor�ow.keras.layers import Input, Dense
from tensor�ow.keras.models import Model
 
# Dados de exemplo
X_unsupervised = tf.constant([[1.0, 2.0], [2.0, 3.0], [3.0, 4.0], [4.0, 5.0]])
 
# Modelo Autoencoder Simples
input_layer = Input(shape=(2,))
encoded = Dense(units=1)(input_layer)
decoded = Dense(units=2)(encoded)
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
 
autoencoder = Model(inputs=input_layer, outputs=decoded)
autoencoder.compile(optimizer='adam', loss='mean_squared_error')
 
# Treinamento do modelo não supervisionado
autoencoder.�t(X_unsupervised, X_unsupervised, epochs=1000, verbose=0)
 
# Previsão
prediction_unsupervised = autoencoder.predict(X_unsupervised)
print(“Predição Não Supervisionada:”, prediction_unsupervised)
Por reforço
import tensor�ow as tf
import gym
 
# Ambiente CartPole do Gym
env = gym.make('CartPole-v1')
 
# Modelo Simples para Aprendizado por Reforço
model_reinforcement = tf.keras.Sequential([
    tf.keras.layers.Dense(24, activation='relu', input_shape=(env.observation_space.shape[0],)),
    tf.keras.layers.Dense(env.action_space.n, activation='linear')
])
 
model_reinforcement.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.001),
loss='mse')
 
# Treinamento por Reforço (exemplo �ctício)
max_episodes = 1000  # De�na o número máximo de episódios
for episode in range(max_episodes):
    state = env.reset()
    done = False
    while not done:
        action = env.action_space.sample()
        next_state, reward, done, _ = env.step(action)
        target = reward + 0.95 *
tf.reduce_max(model_reinforcement.predict(next_state.reshape(1, -1)))
        target_f = model_reinforcement.predict(state.reshape(1, -1))
        target_f[0][action] = target
        model_reinforcement.�t(state.reshape(1, -1), target_f, epochs=1, verbose=0)
        state = next_state
 
    # Condição de parada
    if episode % 10 == 0:
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
        average_reward = sum(reward for _ in range(10)) / 10.0
        print(f'Episode {episode}, Average Reward: {average_reward}')
 
        # Adicionando uma condição de parada
        if average_reward == 1:  # Pode ajustar esse valor conforme necessário
            print(f'Solved after {episode} episodes!')
            break
 
 
Vamos Exercitar?
Vamos pensar no problema apresentado no início desta aula. Para isso, criaremos um modelo de
previsão.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
import tensor�ow as tf
 
# Crie dados �ctícios de vendas ao longo do tempo
np.random.seed(42)
meses = np.arange(1, 13)
vendas = np.array([200, 220, 250, 280, 300, 320, 350, 380, 400, 420, 450, 480])
 
# Crie um DataFrame
dados = pd.DataFrame({'Mes': meses, 'Vendas': vendas})
 
# Visualize os dados
plt.scatter(dados['Mes'], dados['Vendas'])
plt.xlabel('Mês')
plt.ylabel('Vendas')
plt.title('Dados de Vendas ao Longo do Tempo')
plt.show()
 
# Normalização dos dados de treinamento
scaler = MinMaxScaler()
X_train_scaled = scaler.�t_transform(X_train)
X_test_scaled = scaler.transform(X_test)
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
 
# Divida os dados em conjunto de treinamento e teste
X = dados[['Mes']]
y = dados['Vendas']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
 
# Crie e treine o modelo de regressão linear usando TensorFlow
model = tf.keras.Sequential([
    tf.keras.layers.Input(shape=(1,)),  # Camada de entrada
    tf.keras.layers.Dense(units=8, activation='relu'),  # Camada escondida com ativação ReLU
    tf.keras.layers.Dense(units=1)  # Camada de saída
])
 
model.compile(optimizer='adam', loss='mean_squared_error')
 
# Treine o modelo por mais épocas
model.�t(X_train, y_train, epochs=500, verbose=0)
 
# Faça previsões no conjunto de teste
predictions = model.predict(X_test)
 
# Desfaça a normalização para avaliar o desempenho
min_sales = dados['Vendas'].min()
max_sales = dados['Vendas'].max()
 
predictions_inverse = predictions * (max_sales - min_sales) + min_sales
y_test_inverse = y_test * (max_sales - min_sales) + min_sales
 
# Visualize as previsões em relação aos dados reais
plt.scatter(X_test, y_test_inverse, label='Dados Reais')
plt.plot(X_test, predictions_inverse, color='red', label='Previsões')
plt.xlabel('Mês')
plt.ylabel('Vendas')
plt.title('Previsões de Vendas com Regressão Linear (TensorFlow)')
plt.legend()
plt.show()
 
# Avalie o desempenho do modelo
erro_mse = mean_squared_error(y_test_inverse, predictions_inverse)
print(f'Erro Médio Quadrático (MSE): {erro_mse:.2f}')
 
# Faça uma previsão para o próximo mês
proximo_mes_scaled = scaler.transform(np.array([[13]]))
previsao_proximo_mes_scaled = model.predict(proximo_mes_scaled)
previsao_proximo_mes = scaler.inverse_transform(previsao_proximo_mes_scaled)[0, 0]
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
print(f'Previsão de Vendas para o Próximo Mês: {previsao_proximo_mes:.2f}')
Utilizamos um modelo de treinamento supervisionado e criamos a previsão de venda para o
próximo ano. Lembre-se de que para esse caso empregamos dados �ctícios, porém a ideia a ser
considerada para o desenvolvimento de outras construções é semelhante.
Espero que você tenha gostado da solução! Lembre-se de que a prática é importante! Mude
alguma parte do código e diversi�que seu conhecimento!
Saiba mais
1. Na obra indicada para leitura a seguir, você terá contato com os primeiros conceitos de ciência
de dados (data science) e ainda reforçará seu conhecimento sobre machine learning. Para
acessar o conteúdo recomendado, clique no link a seguir.
AMÍLCAR NETTO; MACIEL, F. Python para data science e machine learning descomplicado. Rio
de Janeiro: Alta Books, 2021. E-book.
2. Como mencionado anteriormente, uma leitura interessante para quem está começando a
programar em Python é a do livro Python 3: conceitos e aplicações: uma abordagem didática.
BANIN, S. L. Python 3: conceitos e aplicações: uma abordagem didática. São Paulo: Érica,
2018. E-book.
3. Também encorajo você a conhecer a comunidade do TensorFlow, que, como já disse, é
altamente rica em informações e aplicações dessa biblioteca. Para saber mais detalhes, visite:
TensorFlow.
Referências
AMÍLCAR NETTO; MACIEL, F. Python para data science e machine learning descomplicado. Rio
de Janeiro: Alta Books, 2021. E-book. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9786555203172/. Acesso em: 21 out. 2023.
BANIN, S. L. Python 3: conceitos e aplicações: uma abordagem didática. São Paulo: Érica,
2018. E-book. Disponível em: https://integrada.minhabiblioteca.com.br/books/9788536530253.
Acesso em: 21 out. 2023.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Algoritmos: lógica para desenvolvimento de
programação de computadores. 29. ed. São Paulo: Érica, 2019.
https://integrada.minhabiblioteca.com.br/#/books/9786555203172/
https://integrada.minhabiblioteca.com.br/#/books/9788536530253
https://integrada.minhabiblioteca.com.br/#/books/9788536530253
https://www.tensorflow.org/?hl=pt-br
https://integrada.minhabiblioteca.com.br/#/books/9786555203172/
https://integrada.minhabiblioteca.com.br/books/9788536530253
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
TENSORFLOW. Página inicial, [s. d.]. Disponível em: https://www.tensor�ow.org/?hl=pt-br. Acesso
em: 16 nov. 2023.
Aula 5
Aplicações com Python
Videoaula de Encerramento
Este conteúdo é um vídeo!
Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar suavárias comparações.
Já com o terceiro conceito, de estruturas condicionais, dizemos ao programa o que fazer com
base na seguinte condição: “se isso for verdade, aja assim; caso contrário, faça aquilo”.
A partir desse conhecimento, faremos uma aplicação dos conceitos mencionados por meio de
um estudo de caso. Suponha que você trabalhe em uma empresa que cuida de cinemas. Em uma
reunião com a diretoria, foi solicitada a implementação de um sistema de autoatendimento.
Como se trata de algo novo na rede, você será responsável por elaborar um protótipo simples. A
diretoria quer que o projeto a ser desenvolvido seja baseado na idade dos clientes e contenha a
informação de disponibilidade de ingressos. 
Vamos nessa?
Vamos Começar!
Operadores relacionais
Na programação, a criação de algoritmos para resolver problemas envolve a capacidade de
tomar decisões. Tais decisões são guiadas por uma técnica chamada “estrutura condicional”
(Manzano; Oliveira, 2019). Pode-se entendê-la como a escolha de um caminho em uma cidade.
Da mesma forma que ao dirigir na cidade você precisa decidir em quais ruas seguir para chegar
ao seu destino, em um programa é necessário de�nir qual parte do código será executada em um
determinado momento.
Nesse contexto, temos, na programação, os operadores relacionais (Quadro 1), que são usados
para fazer comparações.
Operação Signi�cado
  Estritamente maior que
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
>= Maior ou igual que
== Igual
!= Diferente
is Identidade do objeto
is not Negação da identidade do objeto
Quadro 1 | Operadores relacionais. Fonte: adaptado de Python 3.12.2 Documentation ([s. d.]).
Lembre-se de que já utilizamos um operador desse tipo na primeira aula quando estabelecemos
a condição de que a média fosse maior ou igual a 6 para que o aluno recebesse a aprovação. A
partir de agora, utilizaremos cada vez mais esses operadores para criar códigos mais robustos.
Estruturas lógicas
Além dos operadores relacionais, que comparam valores, também utilizamos operadores
booleanos para construir decisões mais complexas em programação. Os operadores booleanos
ajudam a combinar diferentes condições e a orientar o �uxo do programa de acordo com a lógica
desejada.
Operador “E” (and)
O operador “E” (and) permite a realização da operação lógica “E”. Isso signi�ca que, ao usar
a expressão (a and b), o resultado será “Verdadeiro” somente quando ambos os
argumentos, “a” e “b”, forem verdadeiros. Caso contrário, o resultado será “Falso”.
Operador “OU” (or)
O operador “OU” (or) realiza a operação lógica “OU”. Ao utilizar a expressão (a or b), o
resultado será “Verdadeiro” se pelo menos um dos argumentos, “a” ou “b”, for verdadeiro. A
expressão será “Falsa” apenas quando ambos os argumentos forem falsos.
Operador “NÃO” (not)
O operador “NÃO” (not) é responsável por inverter o valor do argumento. Ao aplicarmos a
expressão (not a), ela transformará “Verdadeiro” em “Falso”, e vice-versa. Ou seja, se o
argumento for verdadeiro, a operação o tornará falso, e, se for falso, a operação o tornará
verdadeiro.
Esses operadores booleanos são essenciais para a criação de estruturas de decisão mais
so�sticadas, pois possibilitam que os programas lidem com uma variedade de situações e
critérios lógicos. São usados para controlar o �uxo de execução com base em condições
complexas e, assim, tornam viável a elaboração de programas que tomam decisões de acordo
com critérios especí�cos.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Siga em Frente...
Estruturas condicionais if, else e elif
No dia a dia, temos muitas escolhas a fazer, regras a seguir. Pense em você mesmo dirigindo. Se
o semáforo está verde, você pode seguir; caso contrário, deve parar, pois está vermelho
(desconsideraremos o amarelo por ora).
Esse contexto se relaciona com a estrutura if... else da seguinte maneira:
A condição “se o semáforo estiver verde” é satisfeita (verdadeira), então você segue em
frente (if).
A condição “se o semáforo estiver vermelho” não é satisfeita (falsa), então você para (else).
Nese exemplo, assim como acontece na programação, se uma condição é atendida, o �uxo de
execução segue um caminho (verdadeiro); caso contrário, segue outro caminho (falso). Os
comandos if e else são como bifurcações em uma estrada, orientando o �uxo do programa com
base nas condições estabelecidas.
O comando elif, em Python, é uma abreviação de “else if”, sendo usado em estruturas
condicionais para avaliar múltiplas condições em sequência. É frequentemente utilizado após
um bloco if e antes de um bloco else. A ideia por trás do elif é permitir que você veri�que várias
condições em ordem e, quando uma delas for verdadeira, o bloco de código associado a essa
condição será executado.
Con�ra, a seguir, uma explicação mais detalhada sobre o elif:
1. Avaliação em sequência: quando um bloco if é usado, a condição é avaliada. Se a condição
for verdadeira, o bloco de código dentro desse if é executado. No entanto, em muitos
cenários, você deseja avaliar uma série de condições em sequência, e o elif permite esse
processo.
2. Veri�cação múltipla: após o bloco if, você pode usar um ou mais blocos elif, cada um com
sua própria condição. O Python avalia essas condições em ordem, do topo para baixo.
Assim que uma condição for verdadeira, o bloco de código associado a essa condição será
executado e as condições subsequentes serão ignoradas.
3. Flexibilidade: o elif é �exível porque permite que você trate de múltiplos casos sem precisar
aninhar uma série de blocos if. Isso torna o código mais legível e e�ciente.
Para resumir o que analisamos até agora, imagine que estejamos construindo uma máquina de
venda automática de refrigerantes.
Os operadores relacionais são como os sensores que veri�cam se você inseriu a moeda correta
ou não. Eles nos ajudam a determinar se a condição foi atendida (por exemplo: “a moeda é maior
ou igual a R$1,00?”).
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
As estruturas lógicas podem ser comparadas às engrenagens dessa máquina. Elas nos
permitem combinar vários sensores para fazer veri�cações complexas (por exemplo: “se a
moeda é maior ou igual a R$1,00 e o refrigerante está disponível, então a máquina entrega um
refrigerante”).
As estruturas condicionais são como as instruções para a máquina, pois nos permitem dizer o
que a máquina deve fazer com base nas veri�cações. Se a máquina detectar que a moeda é
su�ciente (usando operadores relacionais e estruturas lógicas), ela seguirá as instruções para
entregar o refrigerante. Caso contrário, talvez exiba uma mensagem de erro.
Então, assim como um engenheiro monta uma máquina de venda automática usando diferentes
peças e sensores para tomar decisões, nós montamos nossos programas utilizando operadores
relacionais, estruturas lógicas e estruturas condicionais para controlar o �uxo e a lógica do
código.
Sendo assim, vamos veri�car o exemplo de código a seguir. Fique à vontade para pensar, criar e
executar códigos utilizando as regras apresentadas nesta aula.
idade = 25
 
if idade = 18 and idadeaprendizagem ainda mais completa.
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender
conteúdos importantes para a sua formação pro�ssional. Vamos assisti-la? 
Bons estudos! 
Ponto de Chegada
Olá, estudante! Para desenvolver a competência associada a esta unidade de aprendizagem, que
é “Diferenciar contextos distintos de utilização da linguagem de programação Python”, devemos,
antes de tudo, conhecer as principais aplicações de Python. Além disso, é importante aprender
os passos a serem seguidos em cada aplicação, seja no desenvolvimento web, seja no machine
learning.
Ao longo desta etapa de estudos, foi possível aliar os assuntos estudados à prática de diversas
formas. Mostrou-se a diferença entre front-end e back-end no desenvolvimento web, conceitos
que são utilizados por muitas outras linguagens (Maciel, 2018).
Ao examinar as possíveis aplicações de Python, pudemos aprofundar nosso entendimento sobre
o desenvolvimento mobile (Morais et al., 2022), segmento no qual o Python vem ganhando
notoriedade, assim como já acontece no desenvolvimento web. Quando programamos, seja qual
for a linguagem adotada, os testes de funcionamento se tornam importantes para validar
https://www.tensorflow.org/?hl=pt-br
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
resultados e criar aplicações corretas. Nesse contexto, aprendemos especi�camente sobre
assertions, doctests e unittest.
Em relação ao machine learning, a biblioteca TensorFlow merece destaque, visto que, além de
suas muitas funcionalidades, a constante contribuição da comunidade Python vinculada a essa
biblioteca torna a sua utilização bem relevante (TensorFlow, [s. d.]).
Durante este percurso de aprendizagem, você não apenas assimilou os princípios e técnicas
apresentados, mas também os aplicou a situações do mundo real. Saber utilizar a linguagem
Python nos diversos cenários apresentados em nossos estudos é o que faz de nós,
programadores de Python, um recurso importante e desejado pelo mercado. Logo, a necessidade
de se manter atualizado é grande.
Essa gama de aptidões o habilita para se transformar em um resolvedor experiente de desa�os
tecnológicos e computacionais, conferindo-lhe a capacidade de abordar questões de forma
e�ciente. Além disso, adquirimos pro�ciência no emprego de aplicações que podem envolver
Python.
É Hora de Praticar!
Este conteúdo é um vídeo!
Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Vamos criar um classi�cador de dígitos escritos à mão, considerando os números de 0 a 9. Para
tanto, usaremos um banco de dados pronto do TensorFlow. Em resumo, dada a imagem de um
número escrito à mão, quão e�ciente será o modelo para acertar o número?
Questões norteadoras:
1. Como você pode aplicar seus conhecimentos em programação em Python para criar esse
modelo?
2. Como é possível ajustar os parâmetros do treino do modelo para torná-lo melhor, caso seja
necessário?
Para encerrar e consolidar seu aprendizado, re�ita sobre as seguintes perguntas:
1. Aprender sobre as diversas aplicações da linguagem Python me ajuda a ser um
programador mais completo?
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
2. Qual é a importância das bibliotecas “prontas” da Python tanto no contexto de aplicação na
web quanto para mobile?
3. Como a biblioteca TensorFlow ajuda a construir modelos de machine learning mais
e�cientes e robustos?
Essas considerações ajudarão você a incorporar de maneira mais profunda o conhecimento
adquirido e a compreender o alcance de suas aplicações. Desejo a você muito sucesso em sua
jornada de aprendizagem!
import tensor�ow as tf
mnist = tf.keras.datasets.mnist
 
(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
 
model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation='softmax')
])
 
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])
 
model.�t(x_train, y_train, epochs=5)
model.evaluate(x_test, y_test)
O conjunto de dados MNIST é um conjunto de imagens de dígitos escritos à mão (0 a 9). É
frequentemente usado como um ponto de partida para o aprendizado de máquina. x_train e
x_test contêm as imagens, enquanto y_train e y_test contêm as etiquetas correspondentes.
As imagens são normalizadas dividindo-se cada pixel por 255.0. Isso coloca os valores dos
pixels no intervalo [0, 1], facilitando o treinamento do modelo.
Cria-se, então, um modelo sequencial com as seguintes camadas:
Flatten: converte a matriz bidimensional das imagens (28x28 pixels) em um vetor
unidimensional.
Dense(128, activation='relu'): camada densa com 128 neurônios e função de ativação ReLU.
Dropout(0.2): regularização por abandono, desativando aleatoriamente 20% dos neurônios
durante o treinamento, para evitar over�tting.
Dense(10, activation='softmax'): camada de saída com 10 neurônios (um para cada dígito) e
função de ativação softmax, que produzirá uma distribuição de probabilidade sobre as classes.
O modelo é compilado com o otimizador 'adam', a função de perda
'sparse_categorical_crossentropy' (adequada para problemas de classi�cação multiclasse) e a
métrica de 'accuracy'.
O modelo é treinado usando-se o conjunto de treinamento (x_train e y_train) por cinco épocas.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
O desempenho do modelo é avaliado utilizando-se o conjunto de teste (x_test e y_test), e os
resultados, incluindo a perda e a precisão, são exibidos.
A arquitetura especí�ca do modelo envolve uma camada inicial que “achata” as imagens
bidimensionais em um vetor unidimensional, seguida por uma camada densa (totalmente
conectada) com ativação ReLU, uma camada de dropout para regularização e, por �m, uma
camada de saída com ativação softmax para gerar probabilidades a cada classe.
Após o treinamento, o modelo pode ser usado para prever a classe de um dígito desconhecido, e
a avaliação no conjunto de teste fornece uma medida de quão bem ele generaliza para dados
não vistos. A métrica de “accuracy” indica a proporção de previsões corretas em relação ao total
de previsões.
 
O material visual a seguir esquematiza os principais tópicos abordados nesta unidade de
aprendizagem em que tratamos de aplicações em Python. Este infográ�co exibe uma percepção
clara e sucinta de cada parte desta etapa de estudos, enfatizando os conceitos e fundamentos
necessários para uma boa compreensão dos saberes desenvolvidos.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Figura 1 | Infográ�co: aplicações com Python. Fonte: elaborada pelo autor.
AMÍLCAR NETTO; MACIEL, F. Python para data science e machine learning descomplicado. Rio
de Janeiro: Alta Books, 2021. E-book. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9786555203172/. Acesso em: 21 out. 2023.
https://integrada.minhabiblioteca.com.br/#/books/9786555203172/
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
BANIN, S. L. Python 3: conceitos e aplicações: uma abordagem didática. São Paulo: Érica,
2018. E-book. Disponível em: https://integrada.minhabiblioteca.com.br/books/9788536530253.
Acesso em: 21 out. 2023.
LEMBURG, M. PEP 249 - Python database API speci�cation v.2.0. Python Enhancement
Proposals, 12 abr. 1999. Disponível em: https://peps.python.org/pep-0249/#description. Acesso
em: 31 out. 2023.
MACIEL, F. M. B. Python e Django: desenvolvimento web moderno e ágil. Rio de Janeiro: Alta
Book, 2018. E-book. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9786555200973. Acesso em: 21 out. 2023.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Algoritmos: lógica para desenvolvimento de
programação de computadores. 29. ed. São Paulo: Érica, 2019.
MORAIS, M. S. de F. et al. Fundamentos de desenvolvimento mobile. Porto Alegre: Grupo A, 2022.
Disponível em: https://integrada.minhabiblioteca.com.br/#/books/9786556903057.Acesso em:
21 out. 2023.
PYTHON para desenvolvimento mobile. Python Brasil, 3 jun. 2016. Disponível
em: https://python.org.br/mobile/. Acesso em: 15 nov. 2023.
TENSORFLOW. Página inicial, [s. d.]. Disponível em: https://www.tensor�ow.org/?hl=pt-br. Acesso
em: 16 nov. 2023.
UNITTEST – Unit testing framework. Python 3.12.2 Documentation, [s. d.]. Disponível
em: https://docs.python.org/3/library/unittest.html. Acesso em: 16 nov. 2023.
https://integrada.minhabiblioteca.com.br/books/9788536530253
https://peps.python.org/pep-0249/#description
https://integrada.minhabiblioteca.com.br/#/books/9786555200973
https://integrada.minhabiblioteca.com.br/#/books/9786556903057
https://python.org.br/mobile/
https://www.tensorflow.org/?hl=pt-br
https://docs.python.org/3/library/unittest.html%20maiores ou
iguais a 12 anos e menores de 18; por �m, o terceiro �lme é recomendado para maiores ou iguais
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
a 18 anos. Outro ponto solicitado pela diretoria do cinema diz respeito à disponibilidade de
ingressos. Vamos para o código!
# Bem-vindo à Máquina de Venda Automática de Ingressos de Cinema!
 
# Solicita a idade do cliente
idade = int(input(“Por favor, digite sua idade: ”))
 
# Veri�ca a idade para sugestão de �lmes
if idade 0:
    print(“Ingressos estão disponíveis. Divirta-se no cinema!”)
else:
    print(“Desculpe, todos os ingressos estão esgotados para hoje.”)
Rode esse código no seu Google Colab e faça testes, substitua a disponibilidade de ingresso,
insira idades diferentes... En�m, “brinque” com ele.
Gostou dessa solução? Espero que sim! Esta é a nossa segunda aula e já construímos um
modelo de recomendação. Vamos seguir cada vez mais fundo nesse mundo de Python!  
Saiba mais
1. Para descobrir mais detalhes sobre sistemas de recomendação, é interessante que você
leia o artigo Arquitetura de sistemas de recomendação para apoio ao vendedor no uso de
sistemas de força de vendas em empresa com grande portfólio de produtos, que mostra
algumas aplicações e explica como funciona a utilização de tais modelos. Para acessar o
conteúdo sugerido, clique no link disponível a seguir.
2. Uma leitura interessante para quem está começando a programar em Python é a do livro
Começando a programar em Python para leigos.
3. Outra dica para estudo e aprofundamento sobre esse tema é o livro Use a cabeça! Python.
Referências
https://scielo.pt/pdf/rist/n42/1646-9895-rist-42-46.pdf
https://scielo.pt/pdf/rist/n42/1646-9895-rist-42-46.pdf
https://integrada.minhabiblioteca.com.br/#/books/9786555202298
https://integrada.minhabiblioteca.com.br/#/books/9786555207842
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
BARRY, P. Use a Cabeça! Python. 2. ed. Rio de Janeiro: Alta Books, 2018. E-book. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9786555207842. Acesso em: 12 out. 2023.
BUILT-IN Types. Python 3.12.2 Documentation, [s. d.]. Disponível em:
https://docs.python.org/3/library/stdtypes.html. Acesso em: 14 out. 2023.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Algoritmos: lógica para desenvolvimento de
programação de computadores. 29. ed. São Paulo: Érica, 2019.
MUELLER, J. P. Começando a programar em Python para leigos. Rio de Janeiro: Alta Books, 2020.
E-book. Disponível em: https://integrada.minhabiblioteca.com.br/#/books/9786555202298.
Acesso em: 12 out. 2023.
OHASHI, F. K. et al. Arquitetura de sistemas de recomendação para apoio ao vendedor no uso de
sistemas de força de vendas em empresa com grande portfólio de produtos. Revista Ibérica de
Sistemas e Tecnologias de Informação, Lousada, n. 42, p. 46-61, jun. 2021. Disponível em:
https://scielo.pt/pdf/rist/n42/1646-9895-rist-42-46.pdf. Acesso em: 14 out. 2023.
Aula 3
Estruturas de Repetição em Python
Estruturas de repetição em Python
Este conteúdo é um vídeo!
Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender
conteúdos importantes para a sua formação pro�ssional. Vamos assisti-la? 
Bons estudos!
Ponto de Partida
https://integrada.minhabiblioteca.com.br/#/books/9786555207842
https://docs.python.org/3/library/stdtypes.html
https://integrada.minhabiblioteca.com.br/#/books/9786555202298
https://scielo.pt/pdf/rist/n42/1646-9895-rist-42-46.pdf
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Avançando ainda mais em nossos estudos sobre Python, vamos conhecer, nesta aula, estruturas
de repetição e de controle que são essenciais para a implementação de algoritmos.
Na intenção de simpli�car tarefas repetitivas, você estudará o “for”, uma estrutura de repetição
que permite percorrer uma sequência de elementos, como uma lista, e executar ações para cada
item.
Já para controlar as repetições ou ter uma condição atendida, o “while” é a estrutura ideal. Nesta
etapa de aprendizagem, você investigará o uso dessa ferramenta e entenderá por que sua
implementação é essencial em certos algoritmos.
Para �nalizar, você conhecerá as funções “range”, “break” e “continue”. Tais ferramentas também
são usadas para controle de repetição. Ao �nal desta aula, você será capaz de de�nir a melhor
opção a ser adotada para um determinado caso.
Suponha, agora, que você, ainda trabalhando no cinema do estudo de caso da aula passada,
precise veri�car a aceitação de cinco �lmes exibidos no mês.
Para tanto, será necessário criar um algoritmo que seja capaz de classi�car os �lmes de 1 a 5
estrelas. Como posso utilizar estruturas de repetição e controle de repetição para elaborar esse
algoritmo?
Vamos Começar!
Estrutura de repetição for
A estrutura de repetição for, em Python, é uma poderosa ferramenta que nos permite realizar
ações repetitivas de maneira controlada (Manzano; Oliveira, 2019). Em um loop for,
especi�camos um conjunto de elementos (por exemplo, uma lista ou uma sequência) e, em
seguida, o código é executado para cada elemento desse conjunto. Tal estrutura é especialmente
útil quando sabemos previamente quantas vezes queremos repetir uma ação ou quando temos
uma coleção de itens a serem processados.
Con�ra, a seguir, o exemplo simples de um loop for que itera por uma lista de números e imprime
cada número:
numeros = [1, 2, 3, 4, 5]
 
for numero in numeros:
    print(numero)
Nesse exemplo, a variável ‘numero’ assume o valor de cada elemento da lista ‘numeros’ em
sequência, e o bloco de código dentro do loop é executado para
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
cada valor. Isso resultará na impressão dos números de 1 a 5.
1
2
3
4
5
O loop for é uma ferramenta e�caz para automatizar tarefas repetitivas e processar coleções de
dados de modo e�ciente.
Estrutura de repetição while
O comando while é uma ferramenta muito importante na programação Python, sendo usado para
criar estruturas de repetição quando o número de repetições não é conhecido antecipadamente.
Ele permite que um bloco de código seja executado repetidamente enquanto uma condição
especi�cada for verdadeira. Isso torna o while ideal para situações em que a execução deve
continuar até que uma condição especí�ca seja atendida.
Acompanhe, a seguir, um exemplo simples de uso do while para veri�car se um número inserido
pelo usuário é par ou ímpar e encerrar o programa quando o número zero for inserido:
1 numero = int(input()
2
3 while numero != 0:
4    if numero % 2 == 0:
5        print()
6    else:
7        print()
8    numero = int(input())
Nesse caso, o bloco de código dentro do while é executado repetidamente enquanto a condição
numero != 0 for verdadeira. Isso permite que o programa solicite ao usuário números
repetidamente até que o número zero seja inserido, encerrando o programa. O while é uma
ferramenta valiosa para lidar com situações em que a iteração é necessária, mas o número de
repetições não é conhecido com antecedência.
Siga em Frente...
Controle de repetição: range, break e continue
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
A função range(), em Python, é uma ferramenta útil para criar sequências numéricas que podem
ser usadas em estruturas de repetição, como o comando for. Ela oferece �exibilidade ao
especi�car os limites e o incremento da sequência.
Método 1 – Repetição por quantidade
No primeiro método, você pode passar um único argumento para range(), que representaa
quantidade de vezes em que o loop deve ser repetido. Por exemplo, range(5) cria uma sequência
que se inicia em 0 e vai até 4, realizando 5 iterações.
for x in range(5):
    print(x)
#a saída será:
0
1
2
3
4
Método 2 – Limites inicial e superior
No segundo método, você pode fornecer dois argumentos para range(). O primeiro argumento
representa o início das repetições e o segundo, o limite superior (não incluso) do valor da variável
de controle. Por exemplo, range(2, 7) cria uma sequência que se inicia em 2 e vai até 6,
realizando 5 iterações.
for y in range(2, 7):
    print(y)
#a saída será:
2
3
4
5
6
Método 3 – Com incremento
No terceiro método, você pode passar três argumentos para range(). O primeiro argumento é o
início das repetições, o segundo é o limite superior (não incluso) e o terceiro argumento
representa o incremento entre cada iteração. Por exemplo, range(1, 11, 2) cria uma sequência
que começa em 1, vai até 10 e incrementa de 2 em 2, resultando nas iterações de 1, 3, 5, 7 e 9.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
for z in range(1, 11, 2):
    print(z)
#a saída será:
1
3
5
7
9
Além de controlar iterações com base na sequência de números ou condições especí�cas,
Python oferece dois comandos e�cientes para in�uenciar o �uxo de execução em estruturas de
repetição: “break” e “continue”. Vamos entender como esses comandos funcionam e analisar
alguns exemplos práticos.
O comando “break” é usado para interromper a execução de uma estrutura de repetição quando
uma determinada condição é atendida. Essencialmente, esse comando permite sair do loop
antes que ele seja concluído. Isso é útil quando você deseja encerrar um loop prematuramente
com base em algum critério.
Suponha que desejemos encontrar o primeiro número par em uma sequência e interromper a
iteração assim que o acharmos:
for numero in range(1, 11):
    if numero % 2 == 0:
        print(, numero)
        break
#a saída será:
O primeiro número par encontrado é: 2
Nesse exemplo, o loop “for” itera de 1 a 10, mas, assim que encontra o primeiro número par (2), o
comando “break” é acionado. Desse modo, interrompe-se a execução do loop.
O comando “continue” é usado para pular a iteração atual em uma estrutura de repetição e
continuar com a próxima iteração. Isso é vantajoso quando você deseja ignorar uma iteração
com base em uma condição, mas quer continuar com o restante do loop.
Vamos considerar um loop que imprime todos os números de 1 a 10, exceto o número 5:
for numero in range(1, 11):
    if numero == 5:
        continue
    print(numero)
#a saída será:
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
1
2
3
4
6
7
8
9
10
Nesse caso, quando o número é igual a 5, o comando “continue” é acionado, fazendo com que a
iteração atual seja abandonada. A execução continua com o próximo número.
Em resumo, o “break” e o “continue” são comandos úteis para controlar o �uxo em estruturas de
repetição, permitindo interromper loops antecipadamente com “break” e pular iterações
especí�cas com “continue”, com base em condições especí�cas. Essas ferramentas adicionam
�exibilidade ao controle de repetições em Python.
Vamos Exercitar?
Vamos pensar na solução do problema apresentado no início desta aula. Precisamos criar um
programa que seja capaz de percorrer todos os �lmes (Filme 1, Filme 2, Filme 3, Filme 4 e Filme
5) e de atribuir a cada um deles uma nota de 1 a 5. Repare que é importante sempre
disponibilizar uma forma de a pessoa encerrar o programa, caso queira.
�lmes = [, , , , ]
 
print()
print()
print()
 
for �lme in �lmes:
    while True:
        classi�cacao = input(f{�lme}' de 1 a 5? (ou 0
para parar): ")
        if classi�cacao == '0':
            print(f{�lme}' interrompida.")
            break  # Encerra o loop interno com "break"
        classi�cacao = int(classi�cacao)
        if classi�cacao 5:
            print()
        else:
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
            print(f{�lme}' com {classi�cacao}
estrelas.\n")
            break  # Sai do loop interno
 
print()
 
Nessa solução, utilizamos “while True:”, que é uma técnica comum para criar loops em que a
condição de parada pode variar ou não é conhecida, como acontece nesse exemplo, visto que o
usuário pode parar a classi�cação escolhendo 0 ou encerrá-la depois de classi�car todos os
cinco �lmes.
Gostou dessa solução? Espero que sim! Rode esse código no colab, faça modi�cações e
“brinque” com ele. Lembre-se de que a prática é extremamente importante para alcançar
melhorias.
Saiba mais
1. Para entender como funciona a aplicação de processos automatizados, leia o texto Robotic
process automation e a auditoria �nanceira: modern framework, que utiliza algoritmos para
automação e inteligência arti�cial. Note que já aprendemos sobre Python, porém existem outras
linguagens semelhantes que também são adotadas para a automação. Para acessar o conteúdo
sugerido, clique no link disponível a seguir.
CALÇADA, L. I. S. Robotic process automation e a auditoria �nanceira: modern framework. 2020.
52 f. Dissertação (Mestrado em Gestão de Sistemas de Informação) – Instituto Superior de
Economia e Gestão, Universidade de Lisboa, Lisboa, 2020.
2. Uma leitura interessante para quem está começando a programar em Python é a do livro
Começando a programar em Python para leigos.
MUELLER, J. P. Começando a programar em Python para leigos. Rio de Janeiro: Alta Books, 2020.
E-book.
3. Outra dica para estudo e aprofundamento sobre esse tema é o livro Use a cabeça! Python.
BARRY, P. Use a Cabeça! Python. 2. ed. Rio de Janeiro: Alta Books, 2018. E-book.
 
Referências
https://colab.research.google.com/
https://www.repository.utl.pt/bitstream/10400.5/20874/1/DM-LISC-2020.pdf
https://www.repository.utl.pt/bitstream/10400.5/20874/1/DM-LISC-2020.pdf
https://integrada.minhabiblioteca.com.br/#/books/9786555202298
https://integrada.minhabiblioteca.com.br/#/books/9786555207842
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
BARRY, P. Use a Cabeça! Python. 2. ed. Rio de Janeiro: Alta Books, 2018. E-book. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9786555207842. Acesso em: 12 out. 2023.
CALÇADA, L. I. S. Robotic process automation e a auditoria �nanceira: modern framework. 2020.
52 f. Dissertação (Mestrado em Gestão de Sistemas de Informação) – Instituto Superior de
Economia e Gestão, Universidade de Lisboa, Lisboa, 2020. Disponível em:
https://www.repository.utl.pt/bitstream/10400.5/20874/1/DM-LISC-2020.pdf. Acesso em: 12 out.
2023.
GOOGLE COLAB. Página inicial, [s. d.]. Disponível em: https://colab.research.google.com/.
Acesso em: 12 out. 2023.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Algoritmos: lógica para desenvolvimento de
programação de computadores. 29. ed. São Paulo: Érica, 2019.
MUELLER, J. P. Começando a programar em Python para leigos. Rio de Janeiro: Alta Books, 2020.
E-book. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9786555202298. Acesso em: 12 out. 2023.
Aula 4
Funções em Python
Funções em Python
Este conteúdo é um vídeo!
Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender
conteúdos importantes para a sua formação pro�ssional. Vamos assisti-la? 
https://integrada.minhabiblioteca.com.br/#/books/9786555207842
https://www.repository.utl.pt/bitstream/10400.5/20874/1/DM-LISC-2020.pdf
https://colab.research.google.com/
https://integrada.minhabiblioteca.com.br/#/books/9786555202298
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Bons estudos!
Ponto de Partida
Python é uma linguagem de programação de alto nível amplamente usada na indústria de
tecnologia. Nesta aula, você começará a entender por que a
Python é tão popular e como pode ser utilizada em diversas aplicações.Você conhecerá as ferramentas necessárias para dar início à programação em Python, o que
inclui a instalação do Python em seu computador e a seleção de um ambiente de
desenvolvimento adequado.
As variáveis são fundamentais na programação, pois permitem armazenar e manipular dados.
Durante esta etapa de estudos, você aprenderá a criar variáveis e descobrirá os diferentes tipos
de dados disponíveis em Python.
Você se lembra da nossa primeira aula, quando pedi a ajuda da Python para calcular a média e
mostrar a situação dos alunos? Vamos melhorar nosso cálculo com os conhecimentos de hoje!
 
Vamos Começar!
Funções built-in em Python
Desde o momento em que iniciamos nossa jornada na programação com a simples linha de
código “print(“hello world”)”, já estávamos explorando funções. O que é uma função? No contexto
de Python, pense em funções como ferramentas prontas para uso. Elas são como blocos de
construção pré-instalados, incorporados ao coração da linguagem Python, sem a necessidade de
instalação adicional. A Python oferece uma ampla variedade de funções embutidas que podem
ser utilizadas em suas tarefas de programação.
No site python constam todas as funções prontas existentes em Python. Acredito que seja muito
importante você acessar essa página e conhecer as funções. Já utilizamos algumas delas em
nossos estudos, como a função “print”, que exibe objeto no formato de texto.
Outra função que exploramos foi a “int”, que retorna um objeto inteiro a partir de um número ou
string. Também usamos a função “range”, que nada mais é do que um tipo de sequência
imutável.
https://docs.python.org/3/library/functions.html
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Con�ra, a seguir, o exemplo que utiliza a função built-in len() para calcular o comprimento de uma
lista e, em seguida, imprime o resultado com comentários explicativos:
# Cria uma lista de números
numeros = [1, 2, 3, 4, 5]
 
# Usa a função len() para calcular o comprimento da lista
comprimento = len(numeros)
 
# Imprime o comprimento da lista
print(, comprimento)
Nesse caso, criamos uma lista chamada “números”, com cinco elementos. Em seguida, usamos
a função len() para calcular o comprimento dessa lista e armazenamos o resultado na variável
“comprimento”. Por �m, imprimimos o valor do comprimento com uma mensagem explicativa.
O comprimento da lista é: 5
Como já foi mencionado, é interessante que você faça mais testes e aplicações das funções, na
intenção de praticar o conhecimento estudado.
Função de�nida pelo usuário (com retorno e parâmetro)
O repertório de 70 funções built-in (pré-construídas) da Python torna a vida do programador mais
fácil. No entanto, cada problema é singular e frequentemente requer abordagens especí�cas. É
nesse contexto que surge a necessidade de criar nossas próprias funções. Tais funções são
pedaços de código que executam ações de�nidas por nós, os desenvolvedores. Temos o
controle sobre o nome da função, os dados que ela recebe e o resultado que produz. Isso nos
permite personalizar soluções para atender às demandas especí�cas de nossos projetos.
Acompanhe o exemplo de uma função que calcula a soma de dois números:
# De�nindo uma função chamada "soma"
def soma(a, b):
    resultado = a + b
    return resultado
 
# Chamando a função e armazenando o resultado em uma variável
resultado_soma = soma(5, 3)
 
# Imprimindo o resultado
print(, resultado_soma)
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
#resultado
A soma de 5 e 3 é: 8
Nesse exemplo, de�nimos uma função chamada “soma”, que aceita dois argumentos: a e b.
Dentro da função, realizamos a operação de adição entre esses dois números e retornamos o
resultado. Em seguida, chamamos a função com os valores 5 e 3, e armazenamos o resultado
retornado em uma variável chamada “resultado_soma”. Por �m, imprimimos o resultado.
Outro exemplo interessante de ser observado é a criação de uma função para de�nir se um
número é par:
# De�nindo uma função chamada "e_par"
def e_par(numero):
    if numero % 2 == 0:
        return True
    else:
        return False
Repare que de�nimos a função e utilizamos o operador “%”, que, em Python, é conhecido como
operador de módulo ou operador de resto. Ele é usado para calcular o resto da divisão de um
número pelo outro. Em uma expressão como a % b, o operador % retorna o valor do resto quando
a é dividido por b.
Sendo assim, se um número é dividido por 2 e tem resto zero, então esse número é par.
Vamos testar essa função para dois valores: 123.120 e 1.355.989.
# Testando a função
numero = 123120
if e_par(numero):
    print(f{numero} é um número par.")
else:
    print(f{numero} não é um número par.")
#resultado: 123120 é um número par.
 
 
# Testando a função
numero = 1355989
if e_par(numero):
    print(f{numero} é um número par.")
else:
    print(f{numero} não é um número par.")
#resultado 1355989 não é um número par.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Note que a função retornou que o primeiro número é par e o segundo, não. Nesses exemplos,
percebemos como é feita uma função de�nida por nós. Agora, faça testes e utilize sua
imaginação para criar funções.
Siga em Frente...
Funções anônimas em Python
Dentro do universo das funções em Python, existe um recurso poderoso chamado “expressão
lambda”. As expressões lambda são usadas para criar funções anônimas, o que signi�ca que
elas não têm um nome de�nido com “def”. Tais funções são úteis quando você precisa de uma
ação simples que será utilizada apenas uma vez. Para saber mais detalhes sobre esse recurso,
acesse: python (Python 3.12.2 Documentation, [s. d.]b).
Con�ra um exemplo:
soma = lambda a, b: a + b
resultado = soma(3, 4)
print(resultado)  # Isso imprimirá 7
 
#resultado: 7
Nesse exemplo, criamos uma expressão lambda que realiza a adição de dois números: a e b.
Não atribuímos um nome à função, mas podemos usá-la como qualquer outra. Portanto,
expressões lambda são úteis em situações nas quais precisamos de uma função pequena e
simples para uma tarefa especí�ca.
Até agora, conhecemos as funções prontas do Python e descobrimos como podemos
desenvolver nossas próprias funções, seja de forma mais visual (quando utilizamos def), seja de
forma anônima (usando lambda).
 
Vamos Exercitar?
Já sabemos como calcular médias. Vamos, a partir de agora, dar um upgrade no primeiro código
com o qual trabalhamos utilizando o conhecimento obtido nesta aula.
# Lista de notas dos estudantes
notas = [7.5, 8.0, 6.5, 9.0, 7.0]
 
https://docs.python.org/3/reference/expressions.html#lambda
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
# Função regular para calcular a média
def calcular_media(notas):
    total = sum(notas)
    media = total / len(notas)
    return media
 
# Função lambda para arredondar a média para duas casas decimais
arredondar_media = lambda media: round(media, 2)
 
# Calcular a média
media = calcular_media(notas)
media_arredondada = arredondar_media(media)
 
# Veri�car se os estudantes foram aprovados
situacao = if media_arredondada >= 7 else
 
# Resultados
print(, notas)
print(, media_arredondada)
print(, situacao)
Esse código calcula a média das notas dos estudantes, arredonda o resultado e determina se
eles foram aprovados ou reprovados com base na média.
Trata-se, portanto, de um exemplo prático de uso de funções e estruturas condicionais, já que
utilizamos funções prontas como “sum”, “len” e “round”, e criamos funções de�nidas e anônimas.
Elaboramos, na primeira aula, um código simples para calcular a média. Agora, no �nal desta
unidade de aprendizagem, conseguimos criar nossas próprias funções e utilizar muitas
ferramentas de Python!
Você se sentirá cada vez mais preparado para criar algoritmos mais robustos e aplicá-los a
diversas realidades. Lembre-se de sempre praticar!
Saiba mais
1. Uma leitura interessante para quem está começando a programar em Python é a do livro
Começando a programar em Python para leigos.
MUELLER, J. P. Começando a programar em Python para leigos. Rio de Janeiro: Alta Books, 2020.
E-book.
2. Outra dica para estudo e aprofundamentosobre esse tema é o livro Use a cabeça! Python.
https://integrada.minhabiblioteca.com.br/#/books/9786555202298
https://integrada.minhabiblioteca.com.br/#/books/9786555207842
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
BARRY, P. Use a Cabeça! Python. 2. ed. Rio de Janeiro: Alta Books, 2018. E-book.
3. Para saber mais detalhes sobre a aplicação da linguagem Python, sugiro a leitura do texto
Normalização de dados textuais com Python.
TURKEL, J.; CRYMBLE, A. Normalização de dados textuais com Python. The Programming
Historian, 17 jul. 2012.
 
 
Referências
6. EXPRESSIONS. Python 3.12.2 Documentation, [s. d.]b. Disponível em:
https://docs.python.org/3/reference/expressions.html#lambda. Acesso em: 12 out. 2023.
BARRY, P. Use a Cabeça! Python. 2. ed. Rio de Janeiro: Alta Books, 2018. E-book. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9786555207842. Acesso em: 12 out. 2023.
BUILT-IN Functions. Python 3.12.2 Documentation, [s. d.]a. Disponível em:
https://docs.python.org/3/library/functions.html. Acesso em: 12 out. 2023.
MUELLER, J. P. Começando a programar em Python para leigos. Rio de Janeiro: Alta Books, 2020.
E-book. Disponível em: https://integrada.minhabiblioteca.com.br/#/books/9786555202298.
Acesso em: 12 out. 2023.
TURKEL, J.; CRYMBLE, A. Normalização de dados textuais com Python. The Programming
Historian, 17 jul. 2012. Disponível em: https://programminghistorian.org/pt/licoes/normalizacao-
dados-textuais-python. Acesso em: 12 out. 2023.
Aula 5
Introdução a Linguagem Python
Videoaula de Encerramento
Este conteúdo é um vídeo!
https://programminghistorian.org/pt/licoes/normalizacao-dados-textuais-python
https://docs.python.org/3/reference/expressions.html#lambda
https://integrada.minhabiblioteca.com.br/#/books/9786555207842
https://docs.python.org/3/library/functions.html
https://integrada.minhabiblioteca.com.br/#/books/9786555202298
https://programminghistorian.org/pt/licoes/normalizacao-dados-textuais-python
https://programminghistorian.org/pt/licoes/normalizacao-dados-textuais-python
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender
conteúdos importantes para a sua formação pro�ssional. Vamos assisti-la? 
Bons estudos!
Ponto de Chegada
Olá, estudante! Para desenvolver a competência associada a esta unidade de aprendizagem, que
é “Desenvolver o pensamento lógico para a resolução de problemas a partir da programação
utilizando a linguagem Python”, devemos, antes de tudo, conhecer os conceitos fundamentais da
linguagem Python.
Isso inclui compreender sua sintaxe, as variáveis, os tipos de dados e as estruturas de controle.
Tais conceitos servirão como alicerce para o aprimoramento de sua capacidade de resolver
problemas por meio da programação (Manzano; Oliveira, 2019).
Ao longo desta etapa de estudos, foi possível relacionar esses conceitos básicos com a
construção de scripts. Você também aprendeu a utilizar estruturas condicionais para tomar
decisões em seus programas, o que é essencial para criar soluções �exíveis. Além disso,
exploramos as estruturas de repetição para automatizar tarefas repetitivas e criar programas
mais e�cientes.
Uma parte crucial para o desenvolvimento do pensamento lógico é a criação de funções em
Python (Mueller, 2020). As funções são blocos de código reutilizáveis que permitem dividir
problemas complexos em partes menores, tornando-os mais fáceis de se gerenciar e resolver.
Você não apenas aprendeu sobre os conceitos e técnicas relacionados a esse contexto, mas
também se tornou capaz de aplicar esse conhecimento em situações práticas. Ao construir
scripts e funções em Python, você desenvolveu a habilidade de analisar problemas, dividindo-os
em etapas lógicas e elaborando soluções algorítmicas (Barry, 2018).
A competência desta unidade de aprendizagem permite que você se torne um solucionador de
problemas com habilidades em Python, preparando-o para enfrentar desa�os tecnológicos e
computacionais.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
É Hora de Praticar!
Este conteúdo é um vídeo!
Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Para contextualizar sua aprendizagem, imagine a seguinte situação: você trabalha em uma loja
de eletrodomésticos e precisa criar uma calculadora de desconto em Python para ajudar os
vendedores a calcularem o valor �nal de uma compra com base no preço do produto e em um
desconto percentual oferecido.
Questões norteadoras:
1. Como você pode aplicar seus conhecimentos em programação em Python para criar uma
calculadora de desconto?
2. Que estruturas condicionais em Python você pode usar para veri�car se o desconto está
dentro de limites aceitáveis?
Para encerrar e consolidar seu aprendizado, re�ita sobre as seguintes perguntas:
1. Como as estruturas condicionais em Python podem ser usadas para tomar decisões em
programas?
2. Qual é a importância da reutilização de código por meio de funções na programação em
Python?
3. Como você pode aplicar o pensamento lógico para resolver problemas complexos usando
Python em sua trajetória acadêmica e pro�ssional?
Esses questionamentos ajudarão você a internalizar ainda mais os conhecimentos adquiridos e a
perceber a amplitude de sua aplicação. Desejo sucesso em sua jornada de aprendizagem!
Vamos resolver o desa�o seguindo um passo a passo.
Nesse estudo de caso, desenvolveremos um programa em Python para calcular o valor �nal de
uma compra com desconto. A principal competência é a aplicação do pensamento lógico para
construir um programa funcional, que ajude os vendedores a calcularem o preço �nal.
Con�ra, a seguir, o código Python para criar a calculadora de desconto:
# Solicita ao usuário que insira o valor do produto e o percentual de desconto
valor_produto = �oat(input())
percentual_desconto = �oat(input())
 
# Veri�ca se o percentual de desconto está dentro dos limites aceitáveis (0-100%)
if percentual_desconto 100:
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
    print()
else:
    # Calcula o valor do desconto
    desconto = valor_produto * (percentual_desconto / 100)
 
    # Calcula o valor �nal da compra
    valor_�nal = valor_produto - desconto
 
    # Exibe o valor �nal da compra
    print(f{valor_�nal:.2f})
Um exemplo de resultado:
Digite o valor do produto: R$ 150
Digite o percentual de desconto: 12.5
Valor com desconto: R$ 131.25
Nesse código, o programa solicita ao usuário que insira o valor do produto e o percentual de
desconto. Em seguida, ele veri�ca se o percentual de desconto está dentro dos limites aceitáveis
(entre 0% e 100%). Se estiver em conformidade, o programa calcula o valor do desconto e o valor
�nal da compra, exibindo o resultado na tela.
O material visual a seguir esquematiza os principais tópicos abordados nesta unidade de
aprendizagem, em que apresentamos uma introdução à linguagem Python. Este infográ�co exibe
uma percepção clara e sucinta de cada parte dessa etapa de estudos, enfatizando os conceitos e
fundamentos necessários para uma boa compreensão dos saberes desenvolvidos.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Figura 1 | Infográ�co: introdução à linguagem Python. Fonte: elaborada pelo autor.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
BARRY, P. Use a Cabeça! Python. 2. ed. Rio de Janeiro: Alta Books, 2018. E-book. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9786555207842. Acesso em: 12 out. 2023.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Algoritmos: lógica para desenvolvimento de
programação de computadores. 29. ed. São Paulo: Érica, 2019.[Fd1]
MUELLER,J. P. Começando a programar em Python para leigos. Rio de Janeiro: Alta Books, 2020.
E-book. Disponível em: https://integrada.minhabiblioteca.com.br/#/books/9786555202298.
Acesso em: 12 out. 2023.
,
Unidade 2
Explorando Recursos do Python
Aula 1
Estruturas de Dados em Python - Parte I
Estruturas de dados em Python – parte I
Este conteúdo é um vídeo!
Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender
conteúdos importantes para a sua formação pro�ssional. Vamos assisti-la? 
Bons estudos! 
Ponto de Partida
Em Python, a premissa fundamental é a de que tudo gira em torno de objetos. De acordo com a
Python Software Foundation (PSF), todos os dados em um programa Python são representados
https://integrada.minhabiblioteca.com.br/#/books/9786555207842
https://integrada.minhabiblioteca.com.br/#/books/9786555202298
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
por objetos ou pela relação entre objetos. Conheceremos, nesta aula, três estruturas de dados:
sequência, lista e tuplas.
Sequências são estruturas de dados que nos permitem armazenar coleções ordenadas de
informações. As listas consistem em uma forma fundamental de objetos do tipo sequência e são
mutáveis, o que signi�ca que nesse caso podemos adicionar, remover e alterar elementos. Já as
tuplas são praticamente semelhantes às listas, mas com uma diferença crucial: elas são
imutáveis. Isso signi�ca que, uma vez criadas, as tuplas não podem ser alteradas.
Para contextualizar sua aprendizagem, imagine a seguinte situação: você está gerenciando a
lista de convidados de uma festa e a lista de pessoas que con�rmaram a presença no evento.
Você deseja identi�car as pessoas que ainda não con�rmaram presença, a �m de convidá-las
novamente.
Vamos Começar!
Objetos do tipo sequência
Os objetos do tipo sequência são como coleções versáteis que podem armazenar vários valores.
Eles servem para organizar dados em uma ordem especí�ca e são indexados por números
inteiros não negativos. O primeiro elemento da sequência é acessado pelo índice 0, o segundo,
pelo índice 1, e assim por diante, até o último elemento, que está na posição n - 1, onde n
representa a capacidade de armazenamento da sequência. O grupo de estruturas de dados que
se encaixam nessa categoria compartilha algumas operações comuns. Observe o Quadro 1, a
seguir.
Operação Resultado
x in s True caso um item de s seja igual a x, senão
false.
s + t Concatenação de s e t.
n * s Adiciona s a si mesmo n vezes.
s[i] Acessa o valor guardado na posição i da
sequência.
s[i:j] Acessa os valores da posição i até j.
s[i:j:k] Acessa os valores da posição i até j, com
passo k.
len(s) Comprimento de s.
min(s) Menor valor de s.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
max(s) Maior valor de s.
s.count(x) Número total de ocorrência de x em s.
Quadro 1 | Operações em comum dos objetos do tipo sequência. Fonte: adaptado de PSF.
Um texto, representado por objetos da classe str (strings), é uma forma de sequência. Essas
strings oferecem uma variedade de operações, como as descritas no Quadro 1, apresentado
anteriormente. No entanto, é importante notar que as strings são objetos imutáveis, o que
signi�ca que não é possível modi�car seu conteúdo atribuindo um novo valor a uma posição
especí�ca. Vamos, agora, experimentar algumas dessas operações. Con�ra o código a seguir.
texto = “Explorando a diversidade de linguagens de programação com Pyhton.”
 
print(f”Tamanho do texto = {len(texto2)}”)
print(f”Python in texto = {'Python' in texto2}”)
print(f”Quantidade de e no texto = {texto2.count('e')}”)
print(f”As 5 primeiras letras são: {texto2[:5]}”)
#resultado
Tamanho do texto = 62
Python in texto = False
Quantidade de e no texto = 6
As 5 primeiras letras são: Explo
Na primeira demonstração, exploramos várias operações que podem ser aplicadas a sequências.
A função len() revela o tamanho da sequência, enquanto o operador “in” permite veri�car a
presença de um valor na sequência. Com o operador count, é possível determinar quantas vezes
um valor especí�co aparece na sequência. Além disso, usando a notação de colchetes, podem-
se extrair partes especí�cas da sequência, como demonstrado na linha 6, onde solicitamos a
exibição dos elementos da posição 0 até 5, excluindo o valor na posição 6.
A classe str (strings) vai além das operações listadas no Quadro 1, sugerindo uma série de
outros métodos úteis. O site da Python Software Foundation (PSF) contém uma lista completa
dessas funções para objetos str.
Listas
As listas são estruturas de dados em Python conhecidas por sua mutabilidade, o que signi�ca
que você pode adicionar ou remover elementos conforme necessário. São estruturas indexadas,
ou seja, cada elemento tem uma posição, começando em 0.
Considere o código a seguir, no qual criamos uma lista chamada “cores” e, em seguida, usamos
uma estrutura de repetição para imprimir cada elemento junto com seu índice. Observe a função
index, que retorna à posição de um valor na lista.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
cores = ['vermelho', 'azul', 'verde', 'amarelo', 'roxo']
for cor in cores:
    print(f'Posição = {cores.index(cor)}, cor = {cor}')
#resultado
Posição = 0, cor = vermelho
Posição = 1, cor = azul
Posição = 2, cor = verde
Posição = 3, cor = amarelo
Posição = 4, cor = roxo
As list comprehensions, ou listcomps, são uma abordagem pythônica para criar listas com base
em objetos iteráveis. Essa técnica é especialmente útil quando você deseja transformar ou �ltrar
as informações de uma sequência existente para construir uma nova sequência com as
informações desejadas. Para ilustrar essa técnica, vamos considerar um exemplo no qual temos
uma lista de palavras e queremos convertê-las em letras minúsculas. Acompanhe o código a
seguir:
linguagens = [“Python”, “Java”, “JavaScript”, “C”, “C#”, “C++”, “Swift”, “Go”, “Kotlin”]
print(“Antes da listcomp = “, linguagens)
linguagens = [item.lower() for item in linguagens]
print(“\nDepois da listcomp = “, linguagens)
#resultado
Antes da listcomp =  ['Python', 'Java', 'JavaScript', 'C', 'C#', 'C++', 'Swift', 'Go', 'Kotlin']
Depois da listcomp =  ['python', 'java', 'javascript', 'c', 'c#', 'c++', 'swift', 'go', 'kotlin']
No exemplo apresentado anteriormente, criamos a lista “linguagens”, que contém várias
linguagens de programação. Em seguida, aplicamos uma list comprehension. No interior dos
colchetes, utilizamos a variável “item” para representar cada elemento da lista original. Com a
expressão “item.lower()”, transformamos cada elemento em minúsculas e substituímos os
valores originais na mesma variável “linguagens”. Por �m, imprimimos a lista antes e depois da
aplicação da list comprehension.
Agora, vamos explorar as funções map() e �lter() em Python, que são usadas para manipular
listas e aplicar transformações ou �ltragens a elementos iteráveis. Primeiro, vou apresentar
exemplos diferentes para cada função.
Suponha que você tenha uma lista de preços em dólares e deseje convertê-los para reais usando
uma taxa de câmbio �xa:
precos_em_dolares = [100, 50, 75, 120]
taxa_de_cambio = 5.25
precos_em_reais = list(map(lambda x: x * taxa_de_cambio, precos_em_dolares))
print(precos_em_reais)
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
#Resultado: [525.0, 262.5, 393.75, 630.0]
Nesse caso, usamos a função map() para aplicar uma função lambda que multiplica cada preço
em dólares pela taxa de câmbio. Depois, convertemos o resultado em uma lista. O resultado será
uma lista com os preços em reais.
Agora, imagine que você tenha uma lista de números e queira �ltrar apenas os números pares:
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
numeros_pares = list(�lter(lambda x: x % 2 == 0, numeros))
print(numeros_pares)
#Resultado: [2, 4, 6, 8,10]
Nesse exemplo, usamos a função �lter() com uma função lambda que veri�ca se um número é
par (resto da divisão por 2 igual a 0) e, em seguida, convertemos o resultado em uma lista. O
resultado será uma lista contendo apenas os números pares.
 
Siga em Frente...
Tuplas
As tuplas são estruturas de dados pertencentes ao grupo de objetos do tipo sequência em
Python. A principal distinção entre listas e tuplas é o fato de que as listas são mutáveis,
permitindo a atribuição de valores a posições especí�cas, enquanto as tuplas são objetos
imutáveis.
Você pode criar tuplas em Python de três maneiras:
1. Usando um par de parênteses para denotar uma tupla vazia: tupla1 = ().
2. Usando um par de parênteses e elementos separados por vírgulas: tupla2 = ('a', 'b', 'c').
3. Usando o construtor de tipo tuple().
Con�ra, a seguir, um exemplo no qual criamos uma tupla chamada “vogais” e, posteriormente,
usamos uma estrutura de repetição para imprimir cada elemento da tupla, juntamente com sua
posição:
vogais = ('a', 'e', 'i', 'o', 'u')
print(f”Tipo do objeto vogais = {type(vogais)}”)
for p, x in enumerate(vogais):
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
    print(f”Posição = {p}, valor = {x}”)
#Resultado:
Tipo do objeto vogais = 
Posição = 0, valor = a
Posição = 1, valor = e
Posição = 2, valor = i
Posição = 3, valor = o
Posição = 4, valor = u
Nesse exemplo, utilizamos a função enumerate() para obter tanto a posição quanto o valor de
cada elemento na tupla. É importante observar que as tuplas são imutáveis, o que signi�ca que,
uma vez criadas, não é possível alterar seu conteúdo. Isso as torna úteis em situações nas quais
a ordem dos elementos deve permanecer inalterada. Além disso, as tuplas têm um papel
fundamental em várias operações em Python, como no desempacotamento de valores e no
retorno múltiplo de funções.
Vamos Exercitar?
Vamos, agora, colocar em prática o que aprendemos pensando no problema apresentado no
início desta aula. Cada venda é registrada como uma tupla com os seguintes elementos: data da
venda, nome do produto, quantidade vendida e preço unitário. Essas tuplas são armazenadas em
uma lista chamada registros_de_vendas. Além disso, você recebeu uma lista de produtos que
precisam ser reabastecidos no estoque, chamada produtos_a_reabastecer. Também é preciso
acompanhar o total de vendas de cada produto. Para fazer isso, você deve criar um dicionário
chamado total_de_vendas_por_produto, no qual as chaves são os nomes dos produtos, e os
valores são os totais de vendas para cada um. Vamos ao código!
# Tupla de convidados
convidados = (“Alice”, “Bob”, “Carol”, “David”, “Eve”)
# Lista de con�rmações
con�rmados = [“Bob”, “David”]
# Identi�car quem ainda não con�rmou
nao_con�rmados = [convidado for convidado in convidados if convidado not in con�rmados]
# Exibir os convidados que ainda não con�rmaram
print(“Convidados que ainda não con�rmaram:”)
for pessoa in nao_con�rmados:
    print(pessoa)
# Enviar lembretes aos não con�rmados
print(“\nEnviando lembretes para os convidados que ainda não con�rmaram.”)
#Resultado:
Convidados que ainda não con�rmaram:
Alice
Carol
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Eve
Enviando lembretes para os convidados que ainda não con�rmaram.
Nesse código, temos uma tupla de convidados e uma lista de pessoas que con�rmaram.
Usamos tupla, lista e uma compreensão de lista (list comprehension) para identi�car as pessoas
que ainda não con�rmaram. Em seguida, exibimos os nomes dessas pessoas e, opcionalmente,
podemos enviar lembretes a elas. Essa situação utiliza objetos do tipo sequência (listas e tuplas)
para resolver um problema prático.
Espero que você tenha gostado da solução. Lembre-se: a prática é importante! Mude alguma
parte desse código e diversi�que seu conhecimento! 
Saiba mais
1. Para exercitar os conhecimentos aprendidos nesta aula, faça a leitura do livro Python 3:
conceitos e aplicações: uma abordagem didática, cujo link de acesso está disponível a seguir.
BANIN, S. L. Python 3: conceitos e aplicações: uma abordagem didática. São Paulo: Érica,
2018. E-book.
2. Como mencionado anteriormente, uma leitura interessante para quem está começando a
programar em Python é a do livro Começando a programar em Python para leigos.
MUELLER, J. P. Começando a programar em Python para leigos. Rio de Janeiro: Alta Books, 2020.
E-book.
3. Também encorajo você a navegar pelo site Python, que contém documentações e de�nições
sobre as ferramentas de Python.
Referências
5. ESTRUTURAS de dados. Python 3.12.2 Documentation, 9 dez. 2019. Disponível em:
https://docs.python.org/pt-br/3/tutorial/datastructures.html. Acesso em: 21 out. 2023.
BANIN, S. L. Python 3: conceitos e aplicações: uma abordagem didática. São Paulo: Érica,
2018. E-book. Disponível em: https://integrada.minhabiblioteca.com.br/books/9788536530253.
Acesso em: 21 out. 2023.
BARRY, P. Use a Cabeça! Python. 2. ed. Rio de Janeiro: Alta Books, 2018. E-book. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9786555207842. Acesso em: 12 out. 2023.
https://integrada.minhabiblioteca.com.br/books/9788536530253
https://integrada.minhabiblioteca.com.br/books/9788536530253
https://integrada.minhabiblioteca.com.br/#/books/9786555202298
https://www.python.org/psf-landing/
https://docs.python.org/pt-br/3/tutorial/datastructures.html
https://integrada.minhabiblioteca.com.br/books/9788536530253
https://integrada.minhabiblioteca.com.br/#/books/9786555207842
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Algoritmos: lógica para desenvolvimento de
programação de computadores. 29. ed. São Paulo: Érica, 2019.
MUELLER, J. P. Começando a programar em Python para leigos. Rio de Janeiro: Alta Books, 2020.
E-book. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9786555202298. Acesso em: 21 out. 2023.
PSF landing. Python Software Foundation, 12 dez. 2023. Disponível em:
https://www.python.org/psf-landing/. Acesso em: 21 fev. 2024.
Aula 2
Estruturas de Dados em Python - Parte II
Estruturas de dados em Python – parte II
Este conteúdo é um vídeo!
Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender
conteúdos importantes para a sua formação pro�ssional. Vamos assisti-la?
Bons estudos! 
Ponto de Partida
Dando continuidade à nossa aprendizagem, nesta aula vamos aprofundar nossos conhecimentos
sobre estruturas de objetos em Python.
O primeiro objeto a ser estudado é o do tipo set em Python. Um conjunto, ou set, é uma estrutura
de dados que representa uma coleção de elementos únicos, sem repetição. Nesse sentido,
descobriremos como criar, modi�car e realizar operações com conjuntos.
https://integrada.minhabiblioteca.com.br/#/books/9786555202298
https://www.python.org/psf-landing/
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
O segundo objeto analisado será o do tipo mapping, com foco voltado ao dicionário (dict) em
Python. Dicionários são estruturas que associam chaves a valores, permitindo o armazenamento
e a recuperação e�ciente de informações. Saberemos como criar dicionários, adicionar itens e
efetuar operações de busca.
O terceiro objeto é do tipo array NumPy. O NumPy é uma biblioteca essencial para a computação
cientí�ca em Python, fornecendo recursos avançados para manipular arrays multidimensionais.
Entenderemos como criar, realizar operações e acessar elementos em arrays NumPy.
Para estimular a compreensão desses conteúdos, suponha que você esteja gerenciando um
evento cientí�co para o qual participantes de diferentes regiões do mundo se inscreveram. Cada
participante concedeu informações sobre sua localização, a�liação a instituições de pesquisa e
áreas de interesse. O objetivo é desenvolver análises

Mais conteúdos dessa disciplina