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.
notion image
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.