Explorando Recursos Do Python
Explorando Recursos Do Python
LINGUAGEM DE PROGRAMAÇÃO
Unidade 2
Explorando Recursos do Python
Aula 1
Estruturas de Dados em Python - Parte I
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender
conteúdos importantes para a sua formação profissional. 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
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 significa que nesse caso podemos adicionar, remover e alterar elementos. Já as
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
tuplas são praticamente semelhantes às listas, mas com uma diferença crucial: elas são
imutáveis. Isso significa 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 confirmaram a presença no evento.
Você deseja identificar as pessoas que ainda não confirmaram presença, a fim de convidá-las
novamente.
Vamos Começar!
Operação Resultado
Quadro 1 | Operações em comum dos objetos do tipo sequência. Fonte: adaptado de PSF.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
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
significa que não é possível modificar seu conteúdo atribuindo um novo valor a uma posição
específica. Vamos, agora, experimentar algumas dessas operações. Confira o código a seguir.
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 verificar a
presença de um valor na sequência. Com o operador count, é possível determinar quantas vezes
um valor específico aparece na sequência. Além disso, usando a notação de colchetes, podem-
se extrair partes específicas 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 significa
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.
LINGUAGEM DE PROGRAMAÇÃO
#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 filtrar
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 = [[Link]() 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']
Agora, vamos explorar as funções map() e filter() em Python, que são usadas para manipular
listas e aplicar transformações ou filtragens 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 fixa:
LINGUAGEM DE PROGRAMAÇÃO
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 filtrar apenas os números pares:
Nesse exemplo, usamos a função filter() com uma função lambda que verifica 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íficas, enquanto as tuplas são objetos
imutáveis.
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().
Confira, 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:
LINGUAGEM DE PROGRAMAÇÃO
#Resultado:
Tipo do objeto vogais = <class 'tuple'>
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 significa 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?
# Tupla de convidados
convidados = (“Alice”, “Bob”, “Carol”, “David”, “Eve”)
# Lista de confirmações
confirmados = [“Bob”, “David”]
# Identificar quem ainda não confirmou
nao_confirmados = [convidado for convidado in convidados if convidado not in confirmados]
# Exibir os convidados que ainda não confirmaram
print(“Convidados que ainda não confirmaram:”)
for pessoa in nao_confirmados:
print(pessoa)
# Enviar lembretes aos não confirmados
print(“\nEnviando lembretes para os convidados que ainda não confirmaram.”)
#Resultado:
Convidados que ainda não confirmaram:
Alice
Carol
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Eve
Enviando lembretes para os convidados que ainda não confirmaram.
Nesse código, temos uma tupla de convidados e uma lista de pessoas que confirmaram.
Usamos tupla, lista e uma compreensão de lista (list comprehension) para identificar as pessoas
que ainda não confirmaram. 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 diversifique 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 definições
sobre as ferramentas de Python.
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: [Link]
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:
[Link] Acesso em: 12 out. 2023.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
MUELLER, J. P. Começando a programar em Python para leigos. Rio de Janeiro: Alta Books, 2020.
E-book. Disponível em:
Aula 2
Estruturas de Dados em Python - Parte II
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender
conteúdos importantes para a sua formação profissional. Vamos assisti-la?
Bons estudos!
Ponto de Partida
Dando continuidade à nossa aprendizagem, nesta aula vamos aprofundar nossos conhecimentos
sobre estruturas de objetos em Python.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
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, modificar e realizar operações com conjuntos.
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 eficiente 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ífica 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ífico para o qual participantes de diferentes regiões do mundo se inscreveram. Cada
participante concedeu informações sobre sua localização, afiliação a instituições de pesquisa e
áreas de interesse. O objetivo é desenvolver análises sobre a distribuição geográfica dos
participantes, suas afiliações e as áreas de interesse predominantes. Como podemos utilizar os
conhecimentos desta aula para resolver esse caso?
Vamos Começar!
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.
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).
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
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 significa que podemos
modificar o valor associado a uma chave existente ou adicionar novas chaves.
LINGUAGEM DE PROGRAMAÇÃO
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...
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
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
projeto usando o comando import numpy sempre que quiser aproveitar seus recursos
vantajosos.
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 eficiente de trabalhar com matrizes e executar operações em massa.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Vamos Exercitar?
Agora, vamos colocar em prática o que aprendemos nesta aula para resolver nosso problema
inicial. Como podemos usar conjuntos (sets) para identificar as diferentes regiões dos
participantes do evento científico, dicionários para categorizar suas afiliações e arrays NumPy
para analisar as áreas de interesse?
LINGUAGEM DE PROGRAMAÇÃO
Esse código usa conjuntos para identificar as diferentes regiões dos participantes, um dicionário
para categorizar suas afiliações e o NumPy para avaliar as áreas de interesse. Os resultados são
exibidos no final 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 verificar como se comportam os índices
de empregabilidade utilizando Pyhton.
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.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
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:
NUMPY. Página inicial, [s. d.]. Disponível em: [Link] Acesso em: 21 out. 2023.
multivariada. Produção Online, Florianópolis, SC, v. 22, n. 4, p. 3528-3554, 2022. Disponível em:
[Link] Acesso em: 21 out. 2023.
Aula 3
Classes e Métodos em Python
LINGUAGEM DE PROGRAMAÇÃO
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender
conteúdos importantes para a sua formação profissional. Vamos assisti-la?
Bons estudos!
Ponto de Partida
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 definir atributos e métodos
dentro delas.
Discutiremos, também, sobre a herança em Python, a qual permite que classes-filhas 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!
A programação orientada a objetos tem suas raízes fincadas 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
polimorfismo.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
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 define todos os detalhes da estrutura. A classe organiza os
dados e comportamentos que os objetos de uma classe específica terão.
Classe: Pessoa
Atributos (dados):
Nome:
Idade:
Gênero:
Métodos (comportamentos):
Objeto 1: Pessoa1
Atributos (dados):
Nome: João
Idade: 30
Gênero: Masculino
Métodos (comportamentos):
LINGUAGEM DE PROGRAMAÇÃO
Nesse exemplo, a classe “Pessoa” define 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.
Atributos: são os dados que representam o estado do objeto, como nome e idade.
Métodos: definem 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.
Polimorfismo: refere-se à capacidade de várias classes responderem de forma diferente a
uma mesma mensagem, graças à herança e às respostas específicas de cada classe às
mensagens.
Classes em Python
Python é uma linguagem que oferece suporte ao paradigma orientado a objetos, viabilizando a
implementação de encapsulamento, herança e polimorfismo. 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 definidos os atributos e métodos.
LINGUAGEM DE PROGRAMAÇÃO
[Link] += 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([Link]()) # Saída: “Olá, meu nome é João.”
# Acessa o atributo idade da instância pessoa1 e imprime sua idade.
print(f”Idade: {[Link]}”) # Saída: “Idade: 30”
# Chama o método “aniversário” na instância pessoa1 para aumentar sua idade em 1.
[Link]()
# Acessa o atributo idade atualizado da instância pessoa1 e imprime a nova idade.
print(f”Nova idade: {[Link]}”) # 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).
Herança em Python
A herança é um dos pilares fundamentais da programação orientada a objetos, pois permite que
uma classe (a classe-filha) herde características e comportamentos de outra classe (a classe-
pai). Em Python, essa técnica é amplamente suportada e flexível, possibilitando que uma classe-
filha herde de múltiplas classes-pai, processo que configura um conceito conhecido como
herança múltipla.
A sintaxe para criar uma classe-filha que herda de uma classe-pai é simples e legível. A classe-
filha é definida após o nome da classe-pai, entre parênteses.
class ClasseFilha(ClassePai):
# Definição da classe-filha
Siga em Frente...
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
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íficos às classes-
filhas sem modificar 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-filhas
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-filhas, como “Cachorro”
e “Gato,” que herdam essas características gerais, mas que também podem ter comportamentos
específicos, 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):
[Link] = nome
def fazer_barulho(self):
pass
class Cachorro(Animal):
def fazer_barulho(self):
return “Latir”
class Gato(Animal):
def fazer_barulho(self):
return “Miar”
Nesse exemplo, criamos objetos “rex” e “whiskers” das classes-filhas “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-filhas
herdam o método da classe-pai, mas podem fornecer suas próprias implementações.
Vamos Exercitar?
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
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 fim, mostraremos os atributos e a velocidade atual do
veículo.
class Veiculo:
def __init__(self, marca, modelo, ano):
[Link] = marca
[Link] = modelo
[Link] = ano
[Link] = 0
def status(self):
return f”Marca: {[Link]}, Modelo: {[Link]}, Ano: {[Link]}, Velocidade:
{[Link]} km/h”
class Carro(Veiculo):
def __init__(self, marca, modelo, ano, potencia):
super().__init__(marca, modelo, ano)
[Link] = potencia
class Bicicleta(Veiculo):
def __init__(self, marca, modelo, ano, tipo):
super().__init__(marca, modelo, ano)
[Link] = tipo
def status(self):
return f”Marca: {[Link]}, Modelo: {[Link]}, Ano: {[Link]}, Tipo: {[Link]},
Velocidade: {[Link]} km/h”
# Criando objetos
carro1 = Carro(“Toyota”, “Corolla”, 2022, 150)
bicicleta1 = Bicicleta(“Trek”, “Mountain Bike”, 2021, “MTB”)
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
print(“\nStatus da Bicicleta:”)
print([Link]())
Temos a classe-pai “Veiculo”, com atributos e métodos gerais; a classe-filha “Carro”, que herda de
“Veiculo” e inclui a potência no método de aceleração; e a classe-filha “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-
filhas podem fornecer suas próprias implementações.
Gostou dessa solução? Espero que sim! Rode esse código no colab, faça modificações e
“brinque” com ele. Lembre-se de que a prática é extremamente importante para alcançar
melhorias.
Saiba mais
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 fim, 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.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Referências
BARRY, P. Use a Cabeça! Python. 2. ed. Rio de Janeiro: Alta Books, 2018. E-book. Disponível em
MUELLER, J. P. Começando a programar em Python para leigos. Rio de Janeiro: Alta Books, 2020.
E-book. Disponível em:
Aula 4
Bibliotecas e Módulos em Python
LINGUAGEM DE PROGRAMAÇÃO
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender
conteúdos importantes para a sua formação profissional. 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 classificados 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 fim, os próprios consistem na construção de
nós para resolver um determinado problema e podem ser reutilizados.
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!
LINGUAGEM DE PROGRAMAÇÃO
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 oficial 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, afinal, 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 eficaz de reutilizar código em diferentes partes de
um programa ou em projetos distintos.
#primeiro modo
import math
[Link](25)
math.log2(1024)
[Link](45)
#segundo modo
import math as m
[Link](25)
m.log2(1024)
[Link](45)
#terceiro modo
from math import sqrt, log2, cos
sqrt(25)
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
log2(1024)
cos(45)
No primeiro modo, usamos a importação que carrega todas as funções na memória, trouxemos
toda a funcionalidade de “math” e colocamos [Link], 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 [Link], por exemplo, para chamar a
função sqrt.
No terceiro modo, usamos a importação que carrega funções específicas na memória, utilizando-
a diretamente – sqrt(), por exemplo.
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 oficial 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
extras aos seus programas. Confira, a seguir, alguns pontos importantes sobre módulos de
terceiros:
LINGUAGEM DE PROGRAMAÇÃO
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
[Link] facilita a instalação de todas as dependências em um único comando pip.
4. Ambientes virtuais isolam projetos Python para evitar conflitos 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.
6. Módulos de terceiros geralmente possuem comunidades ativas de desenvolvedores e
documentação rica, fornecendo suporte e recursos valiosos.
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íficas 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áficos e visualizações de dados de maneira flexível e
personalizável. É frequentemente usado para construir gráficos 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áficos de modo conveniente. Observe, a seguir, um exemplo
simples de como elaborar um gráfico de linha usando o Matplotlib:
# Dados
x = [1, 2, 3, 4, 5]
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
y = [2, 4, 1, 3, 5]
# Mostrar o gráfico
[Link]()
LINGUAGEM DE PROGRAMAÇÃO
Nesse exemplo:
O código apresentado anteriormente cria um simples gráfico 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áfico.
Vamos Exercitar?
# Dados de exemplo
meses = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio']
vendas = [120, 90, 150, 80, 200]
# Mostrar o gráfico
[Link]()
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Esse código cria um gráfico de barras que exibe as vendas por mês. Você pode personalizar
ainda mais esse gráfico ajustando cores, estilos e outros parâmetros de acordo com suas
necessidades. O Matplotlib concede muitas opções de customização para criar gráficos
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
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
métodos de leitura distante computacional. Para acessar o material sugerido, clique no link a
seguir.
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
BARRY, P. Use a cabeça! Python. 2. ed. Rio de Janeiro: Alta Books, 2018. E-book. Disponível em:
GRUS, J. Data science do zero: primeiras regras com o Python. Rio de Janeiro: Alta Books, 2021.
E-book. Disponível em: [Link]
Acesso em: 12 out. 2023.
Aula 5
Explorando Recursos do Python
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
Videoaula de Encerramento
Estudante, esta videoaula foi preparada especialmente para você. Nela, você irá aprender
conteúdos importantes para a sua formação profissional. Vamos assisti-la?
Bons estudos!
Ponto de Chegada
Olá, estudante! Para desenvolver a competência associada a esta unidade de aprendizagem, que
é “Identificar 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 especificidades é um ponto crucial
nesse contexto.
Ao longo desta etapa de estudos, foi possível conectar esses conceitos fundamentais com a
construção de 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 modificado 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
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
É Hora de Praticar!
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?
LINGUAGEM DE PROGRAMAÇÃO
def __str__(self):
return f{[Link]} por {[Link]}, Publicado em {self.ano_publicacao}
LINGUAGEM DE PROGRAMAÇÃO
[Link](True)
[Link]()
O resultado é:
O livro 'Dom Quixote' foi adicionado à biblioteca.
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áficas para a
interação do usuário.
Disciplina
LINGUAGEM DE PROGRAMAÇÃO
LINGUAGEM DE PROGRAMAÇÃO
LINGUAGEM DE PROGRAMAÇÃO
GRUS, J. Data science do zero: primeiras regras com o Python. Rio de Janeiro: Alta Books, 2021.
E-book.
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.