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