Apostila do Desenvolvedor Python

Resumo da Instalação do Python

**********| Itens resumidos |**********

  1. Instalar Python
  2. Verificar Instalação
  3. Configurar Variável de Ambiente
  4. Instalar um IDE/Editor de Código
  5. Criar e Executar um Script Python
  6. Instalar Pacotes Adicionais
  7. Configurar um Ambiente Virtual
  8. Atualizar pip e Pacotes
  9. Usar um Gerenciador de Pacotes Adicionais
  10. Aprender Conceitos Básicos de Python

**********| Itens detalhados |**********

  1. Instalar Python:
    • Baixe o instalador do Python do site oficial.
    • Execute o instalador e marque "Add Python to PATH" antes de clicar em "Install Now".
  2. Verificar Instalação:
    • Abra o Prompt de Comando (Windows) ou Terminal (macOS/Linux).
    • Digite python --version ou python3 --version para verificar a versão instalada.
  3. Configurar Variável de Ambiente (se necessário):
    • Windows: Adicione o caminho do Python (C:\PythonXX) e Scripts à variável PATH:
      • Vá para "Configurações do Sistema" > "Avançado" > "Variáveis de Ambiente".
      • Adicione o caminho às variáveis PATH.
    • macOS/Linux: Normalmente, o Python é configurado automaticamente. Para alterar, adicione o caminho ao seu arquivo de perfil (.bashrc, .zshrc, etc.).
  4. Instalar um IDE/Editor de Código:
    • Recomendação: Instale VS Code ou PyCharm.
    • Configure o editor para usar o Python instalado.
  5. Criar e Executar um Script Python:
    • Crie um arquivo com a extensão .py (ex.: script.py).
    • Escreva seu código Python no arquivo.
    • Execute o script com python script.py ou python3 script.py.
  6. Instalar Pacotes Adicionais:
    • Use o gerenciador de pacotes pip para instalar bibliotecas. Exemplo: pip install nome_do_pacote.
  7. Configurar um Ambiente Virtual (opcional, mas recomendado):
    • Crie um ambiente virtual para gerenciar dependências:
    • No Prompt de Comando ou Terminal: python -m venv nome_do_ambiente.
    • Ative o ambiente:
      • Windows: nome_do_ambiente\Scripts\activate
      • macOS/Linux: source nome_do_ambiente/bin/activate
  8. Atualizar pip e Pacotes:
    • Mantenha o pip e pacotes atualizados:
    • Atualizar pip: python -m pip install --upgrade pip
    • Atualizar pacotes: pip list --outdated e pip install --upgrade nome_do_pacote
  9. Usar um Gerenciador de Pacotes Adicionais (opcional):
    • Para projetos mais complexos, considere usar ferramentas como Poetry ou Conda para gerenciamento de dependências e ambientes.
  10. Aprender Conceitos Básicos de Python:
    • Familiarize-se com conceitos básicos, como variáveis, tipos de dados, estruturas de controle (if, loops), funções, e classes.

**********| Para começar com Python, aprenda estes conceitos básicos. |**********

Indice

1 - Programação Orientada a Objetos (POO)

2 - Manipulação Avançada de Arquivos

3 - Conceitos de Concorrência

4 - Desenvolvimento e Deployment de Aplicações

5 - Segurança

6 - Desenvolvimento de Interfaces Gráficas

7 - Interação com Banco de Dados

8 - Automação e Scripts

9 - Análise de Dados e Machine Learning

10 - Princípios de Design de Software

11 - Particularidades do Python

12 - Como o Python é Usado nas Empresas

13 - Dependências do Python e Suas Utilizações

14 - Editores

15 - Sites para ajuda

16 - Cursos

17 - Certificação

Conceitos Básicos

Variáveis e Tipos de Dados:


nome = "João"  # String
idade = 25     # Inteiro
altura = 1.75  # Float
ativo = True   # Booleano
    

Estruturas de Controle:


# Condicional
if idade > 18:
    print("Maior de idade")
else:
    print("Menor de idade")

# Loop
for i in range(5):
    print(i)

while idade < 30:
    print("Ainda jovem")
    idade += 1
    

Funções:


def soma(a, b):
    return a + b

resultado = soma(2, 3)
print(resultado)  # Saída: 5
    

Manipulação de Arquivos:


# Escrever em um arquivo
with open('arquivo.txt', 'w') as f:
    f.write('Escrevendo no arquivo')

# Ler de um arquivo
with open('arquivo.txt', 'r') as f:
    conteudo = f.read()
    print(conteudo)
    

Conceitos Intermediários

List Comprehensions:


quadrados = [x**2 for x in range(10)]
print(quadrados)  # Saída: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
    

Decorators:


def meu_decorator(func):
    def wrapper():
        print("Algo antes da função")
        func()
        print("Algo depois da função")
    return wrapper

@meu_decorator
def diz_oi():
    print("Oi!")

diz_oi()
# Saída:
# Algo antes da função
# Oi!
# Algo depois da função
    

Generators:


def meu_generator():
    for i in range(10):
        yield i

for valor in meu_generator():
    print(valor)
    

Context Managers:


class MeuContexto:
    def __enter__(self):
        print("Entrando no contexto")
        return self

    def __exit__(self, exc_type, exc_val, exc_tb):
        print("Saindo do contexto")

with MeuContexto() as contexto:
    print("Dentro do contexto")
# Saída:
# Entrando no contexto
# Dentro do contexto
# Saindo do contexto
    

Conceitos Avançados

Programação Orientada a Objetos (POO):


class Animal:
    def __init__(self, nome):
        self.nome = nome

    def fazer_som(self):
        print("Som genérico")

class Cachorro(Animal):
    def fazer_som(self):
        print("Au au!")

animal = Animal("Genérico")
cachorro = Cachorro("Rex")
animal.fazer_som()  # Saída: Som genérico
cachorro.fazer_som()  # Saída: Au au!
    

Manipulação Avançada de Arquivos:


# Trabalhar com CSV
import csv

with open('dados.csv', 'w', newline=' ') as csvfile:
    escritor = csv.writer(csvfile)
    escritor.writerow(['Nome', 'Idade'])
    escritor.writerow(['João', 25])

# Trabalhar com JSON
import json

dados = {'nome': 'Maria', 'idade': 30}
with open('dados.json', 'w') as jsonfile:
    json.dump(dados, jsonfile, indent=4)
    

Conceitos de Concorrência:


import threading

def minha_funcao():
    print("Executando em uma thread")

t = threading.Thread(target=minha_funcao)
t.start()
t.join()

import asyncio

async def minha_corrotina():
    print("Executando assíncronamente")

asyncio.run(minha_corrotina())
    

Desenvolvimento e Deployment de Aplicações:


# Criar ambiente virtual
python -m venv "meu_ambiente"

# Usar Docker
FROM python:'3.9'
WORKDIR /app
COPY . /app
RUN pip install -r requirements.txt
CMD ['python', 'app.py']
    

Segurança:


from cryptography.fernet import Fernet

chave = Fernet.generate_key()
fernet = Fernet(chave)
texto = "Texto secreto"
texto_criptografado = fernet.encrypt(texto.encode())
texto_decifrado = fernet.decrypt(texto_criptografado).decode()

print(texto_criptografado)
print(texto_decifrado)
    

Desenvolvimento de Interfaces Gráficas:


import tkinter as tk

root = tk.Tk()
label = tk.Label(root, text="Olá, Mundo!")
label.pack()
root.mainloop()
    

Interação com Banco de Dados:


import sqlite3

def criar_banco():
    conexao = sqlite3.connect('banco.db')
    cursor = conexao.cursor()
    cursor.execute('CREATE TABLE IF NOT EXISTS pessoas (nome TEXT, idade INTEGER)')
    conexao.commit()
    conexao.close()

def inserir_pessoa(nome, idade):
    conexao = sqlite3.connect('banco.db')
    cursor = conexao.cursor()
    cursor.execute('INSERT INTO pessoas (nome, idade) VALUES (?, ?)', (nome, idade))
    conexao.commit()
    conexao.close()
    

Automação e Scripts:


import os

def listar_arquivos():
    arquivos = os.listdir('.')
    print(arquivos)

listar_arquivos()
    

Análise de Dados e Machine Learning:


import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# Criar DataFrame
dados = pd.DataFrame({
    'Nome': ['Ana', 'Pedro'],
    'Idade': [22, 30]
})

print(dados)

# Plotar gráfico
dados.plot(x='Nome', y='Idade', kind='bar')
plt.show()
    

Princípios de Design de Software:


# Exemplo de Padrão Singleton
class Singleton:
    _instancia = None

    def __new__(cls):
        if cls._instancia is None:
            cls._instancia = super(Singleton, cls).__new__(cls)
        return cls._instancia

singleton1 = Singleton()
singleton2 = Singleton()
print(singleton1 is singleton2)  # Saída: True
    

Particularidades do Python

O Python possui várias particularidades que o tornam único e poderoso. Aqui estão algumas delas:

Exemplos

Como o Python é Usado nas Empresas

Exemplos

Dependências do Python e Suas Utilizações

Exemplos

Editores

Exemplos

Sites para ajuda

Cursos

Certificação


Exemplos de Código Python - Por área

1. Desenvolvimento Web com Flask

from flask import Flask
app = Flask(__name__)

@app.route('/')
def home():
return "Olá, Mundo!"

if __name__ == '__main__':
app.run(debug=True)
Saída: Acesse http://localhost:5000 no navegador.

2. Automação de Navegador com Selenium

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('http://www.google.com')
search_box = driver.find_element_by_name('q')
search_box.send_keys('Python')
search_box.submit()
driver.quit()
Saída: Pesquisa "Python" no Google.

3. Análise de Dados com Pandas

import pandas as pd

data = {'Nome': ['Alice', 'Bob', 'Charlie'],
    'Idade': [25, 30, 35]}
df = pd.DataFrame(data)
print(df)
Saída:
      Nome  Idade
0    Alice     25
1      Bob     30
2  Charlie     35

4. Machine Learning com Scikit-learn

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score

data = load_iris()
X = data.data
y = data.target

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
model = RandomForestClassifier()
model.fit(X_train, y_train)
predictions = model.predict(X_test)
print(accuracy_score(y_test, predictions))
Saída: Acurácia do modelo.

5. Deep Learning com TensorFlow

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

model = Sequential([
Dense(64, activation='relu', input_shape=(784,)),
Dense(10, activation='softmax')
])

model.compile(optimizer='adam',
          loss='sparse_categorical_crossentropy',
          metrics=['accuracy'])
print(model.summary())
Saída: Resumo do modelo de rede neural.

6. Jogos com Pygame

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption('Meu Jogo')

running = True
while running:
for event in pygame.event.get():
    if event.type == pygame.QUIT:
        running = False
pygame.quit()
Saída: Janela de jogo com Pygame.

7. Interfaces Gráficas com Tkinter

import tkinter as tk

root = tk.Tk()
root.title('Minha Aplicação')

label = tk.Label(root, text='Olá, Mundo!')
label.pack()

root.mainloop()
Saída: Janela com um label "Olá, Mundo!"

8. APIs Rápidas com FastAPI

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
return {"Hello": "World"}
Saída: API RESTful com um endpoint.

9. Testes com Pytest

def test_soma():
assert 1 + 1 == 2
Saída: Teste passa sem erros.

10. Cálculos Numéricos com NumPy

import numpy as np

array = np.array([1, 2, 3, 4])
print(np.mean(array))
Saída: 2.5

11. Simulação de Dados

import random

dados = [random.random() for _ in range(100)]
print(dados[:10])
Saída: Primeiros 10 números aleatórios.

12. Gráficos com Matplotlib

import matplotlib.pyplot as plt

x = [1, 2, 3, 4]
y = [1, 4, 9, 16]
plt.plot(x, y)
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Gráfico de Exemplo')
plt.show()
Saída: Gráfico de linha com Matplotlib.

13. Chatbots com ChatterBot

from chatterbot import ChatBot
from chatterbot.trainers import ChatterBotCorpusTrainer

chatbot = ChatBot('Meu ChatBot')
trainer = ChatterBotCorpusTrainer(chatbot)
trainer.train('chatterbot.corpus.portuguese')

response = chatbot.get_response('Olá')
print(response)
Saída: Resposta do chatbot.

14. Edição de Vídeos com MoviePy

from moviepy.editor import VideoFileClip

clip = VideoFileClip('meu_video.mp4')
clip = clip.subclip(10, 20)
clip.write_videofile('video_editado.mp4')
Saída: Vídeo editado salvo como "video_editado.mp4".

15. Análise de Dados Financeiros com Python

import yfinance as yf

acoes = yf.Ticker('AAPL')
historico = acoes.history(period='1y')
print(historico.head())
Saída: Dados históricos das ações da Apple.

16. Análise de Pacotes de Rede com Scapy

from scapy.all import sniff

def pacote_callback(pacote):
print(pacote.summary())

sniff(prn=pacote_callback, count=10)
Saída: Resumo dos primeiros 10 pacotes capturados.

17. Envio de E-mails com SMTP

import smtplib
from email.mime.text import MIMEText

msg = MIMEText('Olá, este é um e-mail de teste.')
msg['Subject'] = 'Teste'
msg['From'] = 'seuemail@example.com'
msg['To'] = 'destinatario@example.com'

with smtplib.SMTP('smtp.example.com') as server:
server.login('seuemail@example.com', 'sua_senha')
server.send_message(msg)
Saída: E-mail enviado.

18. Trabalhando com CSV

import csv

with open('exemplo.csv', mode='w', newline='') as arquivo:
escritor = csv.writer(arquivo)
escritor.writerow(['Nome', 'Idade'])
escritor.writerow(['Alice', 25])
escritor.writerow(['Bob', 30])
Saída: Arquivo CSV "exemplo.csv" criado.

19. Scraping de Dados com BeautifulSoup

from bs4 import BeautifulSoup
import requests

resposta = requests.get('http://example.com')
sopa = BeautifulSoup(resposta.text, 'html.parser')
print(sopa.title.string)
Saída: Título da página.

20. Envio de Dados para uma API

import requests

url = 'https://api.example.com/dados'
dados = {'nome': 'Alice', 'idade': 25}
resposta = requests.post(url, json=dados)
print(resposta.json())
Saída: Resposta da API.

21. Geração de Relatórios em PDF com ReportLab

from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas

pdf = canvas.Canvas('relatorio.pdf', pagesize=letter)
pdf.drawString(100, 750, 'Relatório de Exemplo')
pdf.save()
Saída: Relatório PDF gerado.

22. Leitura e Escrita de Arquivos JSON

import json

dados = {'nome': 'Alice', 'idade': 25}
with open('dados.json', 'w') as arquivo:
json.dump(dados, arquivo)

with open('dados.json', 'r') as arquivo:
dados_lidos = json.load(arquivo)
print(dados_lidos)
Saída: Dados lidos do arquivo JSON.

23. Configuração de Ambiente Virtual

python -m venv meu_ambiente
source meu_ambiente/bin/activate
Saída: Ambiente virtual ativado.

24. Manipulação de Arquivos Excel com openpyxl

from openpyxl import Workbook

wb = Workbook()
ws = wb.active
ws['A1'] = 'Nome'
ws['A2'] = 'Alice'
ws['B1'] = 'Idade'
ws['B2'] = 25
wb.save('exemplo.xlsx')
Saída: Arquivo Excel "exemplo.xlsx" criado.

25. Manipulação de DataFrames com Pandas

import pandas as pd

dados = pd.DataFrame({'Nome': ['Alice', 'Bob'], 'Idade': [25, 30]})
dados.to_excel('dados.xlsx', index=False)
Saída: Arquivo Excel "dados.xlsx" gerado.

26. Arquitetura de Aplicações com Flask e SQLAlchemy

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///banco.db'
db = SQLAlchemy(app)

class Usuario(db.Model):
id = db.Column(db.Integer, primary_key=True)
nome = db.Column(db.String(80), unique=True, nullable=False)

@app.route('/')
def index():
return "Aplicação com Flask e SQLAlchemy"

if __name__ == '__main__':
db.create_all()
app.run(debug=True)
Saída: Aplicação Flask com SQLAlchemy.

27. Criação de Funções e Módulos

# meu_modulo.py
def saudacao(nome):
return f"Olá, {nome}!"

# script principal
from meu_modulo import saudacao

print(saudacao('Alice'))
Saída: Olá, Alice!