Python I - Fundamentos
Python I – Introdução ao curso
Formação inicial: Fundamentos da linguagem
Carga horária: *36 horas
Objetivos:
Este curso tem como objetivo desenvolver
profissionais para compreender a linguagem de
programação Python, desenvolver algoritmos e
utilizar módulos de terceiros para extração de
dados.
Apresentação e Expectativas
Expectativa:
1-
Pasta compartilhada WhatsApp
https://drive.google.com/drive/folders/1v9Tl1u1j11BiqSowgHY2nOgbtZe_BMDh?usp=sharing https://chat.whatsapp.com/IuTzLS3cEEaLZKZCPhkB0g
O que Python?
Expectativa:
1-
Histórico
Quem criou? Van Rossum
Quando? O Python foi criado em 1989 e lançado em 1991
como nome de Python
Com qual motivação? Precisava de uma linguagem de
script que tivesse sintaxe semelhante ao ABC e que tivesse
acesso às chamadas de sistema;
Principais Características:
➢ Linguagem simples em relação a outras linguagens como C e C++;
➢ Tem suporte a orientação a objetos;
➢ Interpretada por uma máquina virtual;
➢ Tipagem dinamicamente forte;
➢ Multiplataforma (funciona em sistemas Windows, Linux e Mac);
Interpretador || Compilador
CPython é a implementação principal da linguagem de programação
Python, escrita em Linguagem C. CPython é um interpretador de
Bytecode.
PyPy é um compilador Just in Time (JIT), ele usa uma técnica
conhecida como meta-tracing, que é responsável por transformar um
interpretador em um compilador JIT.
Jython é uma implementação da linguagem Python que gera
bytecode para máquinas Java (JVM - Java Virtual Machine). Com ela é
possível fazer o desenvolvimento de aplicações híbridas que unem
código em Java e Python.
IronPython é uma implementação da linguagem de programação
Python escrita em C#, para plataforma.NET e Mono, criada por Jim
Hugunin.
Versões/Documentação
https://www.python.org/downloads/
https://docs.python.org/3.13/
Outros links:
https://www.python.org/dev/peps/pep-0008/
https://wiki.python.org.br/GuiaDeEstilo
https://www.w3schools.com/python/
Para que serve o Python?
Construção coletiva:
1-
Para que serve o Python?
Pandas
Data Science NumPy
Scikit Learn, TensorFlow, Keras
Selenium
Automação Pytest, PyAutoGui
Python Extração de dados
BeautifulSoap
WebDriver
Flet
Flask
Desenvolvimento Django
Tkinter
PyGame
Desenvolvimento Game PyOpenGL
Kivy
Scapy
Ethical Hacker Flowgrep
Subrute
Mão na massa...
Ambientes utilizando Nuvem:
✓ Google Colab: https://colab.research.google.com/
✓ Repl.it: https://replit.com/
Ambientes Locais:
✓ Realizar a instalação do VS Code
https://code.visualstudio.com/download
✓ Utilizar o interpretador Python 3.10
https://ideasdays.com/python/pyth.html
POO – Programação Orientação a Objetos
Paradigmas de programação:
Paradigma de programação é um meio de se classificar as linguagens de programação baseado em suas
funcionalidades. As linguagens podem ser classificadas em vários paradigmas. O paradigma de programação
fornece a visão que o programador possui sobre a estruturação e execução do programa.
Mais informações: https://pt.wikipedia.org/wiki/Paradigma_de_programa%C3%A7%C3%A3o
Programação Programação Orientada a Objetos (POO)
Estruturada/Procedural/Imperativa ❑ Abstração;
❑ Funcional; ❑ Herança/Polimorfismo;
❑ Lógico; ❑ Encapsulamento;
❑ Declarativa; ❑ Concorrente;
❑ Orientado a eventos; ❑ Reativa;
Estruturada vs. Orientação a Objetos
Programação
Estruturada/Procedural
Chamada de procedimentos (ou
funções) para manipulação de
dados e variáveis;
Programação
Orientada a Objetos - POO
Estruturas de CLASSES com
comportamentos;
Fonte da imagem:
https://docente.ifrn.edu.br/pedrobaesse/disciplinas/programacao-orientada-a-
objetos/material-de-aula/aula-02-introducao-a-programacao-orientada-a-
objeto
Estruturada vs. Orientação a Objetos
Programação Estruturada Programação Orientada a Objetos – POO
Procedimentos e funções Métodos
Variáveis Instâncias de atributos
Chamadas a procedimentos e funções Método construtor e métodos de acesso;
Tipos de dados definidos de forma global Atributos das Classes
--------------------- Herança
--------------------- Polimorfismo
Linguagens multiparadigma
Programação Estruturada
Utilizando a linguagem Python
Fonte:
https://pt.wikipedia.org/wiki/Linguagem_de_programa%C3%A7%C3%A3o_multiparadigma
Linguagens multiparadigma
Classe - POO
Orientação a Objetos (POO)
Utilizando a linguagem Python
Fonte:https://pt.wikipedia.org/wiki/Linguagem_de_p
rograma%C3%A7%C3%A3o_multiparadigma
Orientação a Objetos
Pode não possuir o mesmo
Provê uma melhor organização desempenho de códigos
estruturados. Seus conceitos são
do código. Contribui para o mais difíceis de compreender que
os conceitos da programação
reaproveitamento do código estruturada.
POO - Vantagens POO - Desvantagens
Estruturada && Orientação a Objetos
✓ Na Programação estruturada observamos algumas
vantagens como um controle mais eficaz quanto ao fluxo de
execução do programa e a facilidade de compreender o
código quando o mesmo é analisado.
✓ Na POO temos como vantagens a reutilização de código e a
melhor organização do código do programa.
Em ambas os paradigmas existem características bem
peculiares nas suas definições, onde dependendo da
complexidade da solução a ser implementada uma pode
ser mais viável que a outra.
De forma que podemos entender que ao invés de concorrer, se
usadas de maneira inteligente pelos programadores elas se
complementam!
Pilares - POO
Princípio da Abstração:
O conceito de abstração consiste em esconder os
detalhes de algo, no caso, os detalhes
desnecessários. Na vida, utilizamos abstrações o
tempo todo. Em tudo que não sabemos como
funciona nos bastidores, pode ser considerado uma
abstração.
❑ Encapsulamento;
❑ Herança;
❑ Composição;
❑ Polimorfismo;
https://materialpublic.imd.ufrn.br/curso/disciplina/2/8/1/4
Instanciando uma classe com Python
Desafio Calculadora:
Fazer uma calculadora que receba dois valores e retorne o resultado de adição,
subtração, multiplicação ou divisão destes dois valores;
Resposta do desafio Python
Mão na massa... Encapsulamento com o Python
Desafio Produto:
Construir uma classe Produto que com atributos descrição, precoCusto e precoVenda. O atributo
precoVenda deve ser protegido e ter um método GET e SET alterando o valor apenas se o novo
valor for maior que o precoCusto;
Resposta do desafio
Exemplo de
Composição
Agregação
Desafio CarrinhoCompras:
Construir uma classe CarrinhoCompras que tenha como atributos: data da compra, um objeto Cliente composto
por nome e endereço e o atributo produtos onde serão agregado N objetos da classe protuto. A classe produto
deve ter os atributos descrição e preco. A classe Carrinho de compras deve ter um método par a somar os preços de
todos os produtos agregados e exibir o total.
Resposta do desafio