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