Python Intermédio

✨ Nível

🕗 Duração

💻 Prática

Intermédio

6-8 meses

Mais de 300 exercícios de codificação

Bem-vindo ao curso de nível intermédio de Python! Neste curso, irá aprender muito sobre funcionalidades mais avançadas da linguagem e algumas das melhores práticas para as utilizar. Este curso é concebido para pessoas que já têm alguma experiência em Python e gostariam de melhorar os seus conhecimentos e aprender tópicos mais avançados.

1200px-Python-logo-notext.svg.png

No final deste curso, saberá como usar classes e estará fluente em herança. Iremos cobrir as melhores práticas para escrever código para projetos maiores e usaremos typing, que ajuda a analisar estaticamente o código para detetar erros. Irá trabalhar com decoradores e criar os seus próprios decoradores utilitários que reduzirão significativamente o tamanho do código. Iremos discutir iteradores e iteráveis juntamente com a biblioteca padrão itertools. Usaremos glob e pathlib para trabalhar com o sistema de ficheiros. Mais importante ainda, aprenderemos a usar async / await para otimizar o nosso código ao trabalhar com grande I/O, bases de dados e pedidos de rede.

💻 Aprender Fazendo

Neste curso, você aprende fazendo! Cada conceito tem vários desafios interativos que irá resolver para passar ao próximo. Acreditamos que a aprendizagem prática é a melhor forma de obter conhecimento aprofundado. Aqui terá muitos exercícios desafiantes e ao mesmo tempo interessantes para praticar cada conceito abordado.

Irá estudar ao seu próprio ritmo. Pode esforçar-se e completar vários níveis numa semana, ou ir devagar e focar-se em cada conceito por mais tempo.

Há um fórum para fazer perguntas e desbloquear dúvidas. Pode perguntar ou responder às questões de outros em cada desafio.

🎓 Programa

Este curso foca-se nos conceitos fundamentais e em algumas funcionalidades avançadas de Python, introduzindo cada um deles de forma intuitiva. Para tornar o processo mais divertido e envolvente, os conceitos estão organizados em níveis, e passar cada nível significa que dominou um novo conceito. Estas são as principais coisas que iremos abordar aqui:

Funções Avançadas
  • Argumentos apenas posicionais e apenas nomeados

  • Recursão

  • Passagem por valor VS passagem por referência (argumentos mutáveis)

Expressões Regulares
  • Noções básicas e aplicações de expressões regulares

  • Pesquisa e correspondência

Classes
  • Definir classes

  • Definir e aceder a atributos

  • O construtor __init__

  • Definir métodos dentro das classes

  • Métodos mágicos

  • Variáveis públicas e privadas

Herança
  • Herança de uma classe base

  • Modificar a funcionalidade substituindo um método

  • Estender a funcionalidade com a ajuda de super()

  • Herança de várias classes base

Encapsulamento
  • Variáveis privadas

  • Variáveis protegidas

  • Como o Python realmente lida com variáveis privadas e protegidas

Exceções
  • raise e except

  • Hierarquia de exceções

  • Criar exceções personalizadas

Módulos
  • Trabalhar com bibliotecas

  • Módulos no sistema de ficheiros

  • Inicialização de módulos

  • Importar variáveis, funções e classes

Sistema de Ficheiros
  • glob para trabalhar com coleções de ficheiros

  • pathlib para trabalhar com ficheiros específicos

  • Remover ficheiros

  • Criar/apagar recursivamente todo o diretório

Classes Avançadas
  • Variáveis de classe VS variáveis de instância

  • Decoradores embutidos (@dataclass, @property, @staticmethod, etc.)

  • Classes abstratas (módulo ABC)

Decoradores
  • Decoradores para funções

  • Decoradores para classes

  • Criar decoradores personalizados

Typing
  • Typing para tipos embutidos (int, list, dict, etc.)

  • Typing para classes personalizadas

  • Typing dentro de uma classe

  • Análise estática - o que podemos realizar e quais são as limitações

Iteradores e Iteráveis
  • Iteradores

  • Geradores

  • Iteráveis

  • itertools - cycle(), repeat(), chain(), etc.

  • Criar um gerador personalizado

  • Criar um iterável personalizado

Gerenciadores de Contexto
  • Implementar um gerenciador de contexto personalizado

  • Usar a sintaxe with

  • Gerenciadores de contexto como decoradores

Multithreading e Multiprocessing
  • O pacote threading

  • Criar uma classe de thread personalizada

  • O pacote multiprocessing

  • Processamento em pools

  • Partilhar dados entre threads e processos

asyncio
  • Sintaxe async e await para funções

  • Trabalhar com ficheiros

  • Trabalhar com pedidos de rede

  • Consultas através do SQLAlchemy

  • asyncio vs threads e processos

Conclusão e Projetos
  • Vários projetos supervisionados que resumirão todo o material.

  • Isso incluirá muitas pesquisas e autoestudo.

  • Automatizará algumas tarefas e aprenderá algumas bibliotecas úteis

🚀 Bem-vindo

Aprender é 80% trabalho individual! Completar este curso será a sua conquista e estamos aqui para apoiar essa jornada. Pode usar a seção no final de cada exercício para fazer perguntas ou ajudar outros.