Curso online gratuito de Python do básico ao avançado, com prática em lógica, funções, arquivos, SQLite, Tkinter e Pygame para criar projetos.
Neste curso gratuito, aprenda sobre
Preparação do Ambiente (Windows e Linux)
Fundamentos de Programação e Tipos Básicos
Estruturas de Dados com Listas e Tuplas
Controle de Fluxo e Entrada de Dados
Funções e Modularização do Código
Exercícios Práticos de Revisão (Parte 1)
Programação Orientada a Objetos (Classes, Atributos e Herança)
Arquivos, Exceções e Banco de Dados (SQLite)
Distribuição de Aplicações (Executável)
Interfaces Gráficas com Tkinter (Projeto do Joguinho)
Desenvolvimento de Jogos com Pygame (Space Invaders do Zero)
Descrição do curso
Python do Zero ao Avançado é um curso online gratuito da área de Tecnologia, Informática e Programação, ideal para quem quer sair do básico e evoluir até conceitos mais avançados da linguagem Python com uma trilha prática e progressiva.
Você começa preparando o ambiente de desenvolvimento e entendendo os fundamentos de lógica e estrutura do código. Em seguida, aprende a trabalhar com variáveis, strings e números, além de organizar e manipular coleções como listas, tuplas e dicionários. O conteúdo avança para estruturas de decisão e repetição, permitindo criar programas com fluxo bem definido e mais autonomia para resolver problemas.
Ao longo do curso, você desenvolve raciocínio de programação com funções, parâmetros, retornos e reutilização de código, além de aprender a importar módulos e estruturar melhor seus projetos. Também são abordados temas essenciais para construir aplicações mais robustas, como tratamento de erros e manipulação de arquivos, além de introdução a banco de dados com SQLite.
Na parte mais aplicada, o curso conduz à criação de aplicações com interface gráfica usando Tkinter e aprofunda a prática com projetos que ajudam a consolidar o aprendizado. Para quem quer explorar programação de jogos, há um caminho prático com Pygame, trabalhando movimentação, eventos, colisões, pontuação, níveis e refinamento do código, culminando em um projeto mais completo e estruturado.
Com uma abordagem orientada à prática e à evolução gradual, o curso é uma boa escolha para iniciantes e para quem deseja reforçar fundamentos e ganhar confiança para criar scripts, automações e aplicações em Python.
Conteúdo do curso
Aula em vídeo: Curso completo de Python - Aula 1 - Instalando o PyCharm e o Python 3 no Windows19m
Exercício: Ao instalar o Python no Windows, qual é a finalidade de marcar a opção para adicionar o Python ao PATH?
Aula em vídeo: Curso Completo de Python - Aula 2 - Instalando o PyCharm e Python 3 no Linux15m
Aula em vídeo: Curso Completo de Python - Aula 3 - Algoritmo e Conceitos Básicos26m
Exercício: Em Python, qual afirmação descreve melhor uma variável?
Aula em vídeo: Curso Completo de Python - Aula 4 - Variáveis15m
Aula em vídeo: Curso Completo de Python - Aula 5 - Strings26m
Exercício: Em Python, qual operação está sendo usada ao juntar duas strings com o operador +, como em nome1 + ' ' + nome2?
Aula em vídeo: Curso Completo de Python - Aula 6 - Trabalhando com números14m
Aula em vídeo: Curso Completo de Python - Aula 7 - Introdução à listas10m
Exercício: Em Python, qual é a forma correta de acessar o terceiro elemento de uma lista chamada carros?
Aula em vídeo: Curso Completo de Python - Aula 8 - Manipulando elementos de uma lista10m
Aula em vídeo: Curso Completo de Python - Aula 9 - Organizando listas06m
Exercício: Em Python, qual alternativa descreve corretamente a diferença entre list.sort() e sorted(lista) ao ordenar uma lista?
Aula em vídeo: Curso Completo de Python - Aula 10 - Laço de repetição FOR10m
Aula em vídeo: Curso Completo de Python - Aula 11 - Trabalhando com números no laço FOR11m
Exercício: Em Python, qual é a forma correta de gerar uma lista com os números de 1 até 100 usando range e list?
Aula em vídeo: Curso Completo de Python - Aula 12 - Fatiando listas08m
Aula em vídeo: Curso Completo de Python - Aula 13 - Copiando listas05m
Exercício: Ao querer alterar uma lista em Python sem modificar a lista original, qual é a forma correta de criar uma cópia independente?
Aula em vídeo: Curso Completo de Python - Aula 14 - Tuplas04m
Aula em vídeo: Curso Completo de Python - Aula 15 - If e Else Parte I12m
Exercício: Em Python, qual operador é usado para comparar se o valor de uma variável é igual a outro valor em uma condição?
Aula em vídeo: Curso Completo de Python - Aula 16 - If e Else Parte II08m
Aula em vídeo: Curso Completo de Python - Aula 17 - If e Else Parte III19m
Exercício: Em Python, por que é comum usar int(input(...)) ao pedir a idade do usuário?
Aula em vídeo: Curso Completo de Python - Aula 18 - If e Else Parte IV10m
Aula em vídeo: Curso Completo de Python - Aula 19 - If e Else Parte V final10m
Exercício: Qual é a função do laço while no programa de ingredientes da pizza?
Aula em vídeo: Curso Completo de Python - Aula 20 - Dicionários Parte I12m
Aula em vídeo: Curso Completo de Python - Aula 21 - Dicionários Parte II10m
Exercício: Ao percorrer um dicionário com um laço for para obter chave e valor, qual forma é a correta em Python?
Aula em vídeo: Curso Completo de Python - Aula 22 - Função Imput09m
Aula em vídeo: Curso Completo de Python - Aula 23 - Laço de Repetição While07m
Exercício: Qual condição encerra corretamente um laço while que lê entradas do usuário até ele digitar uma palavra específica?
Aula em vídeo: Curso Completo de Python - Aula 24 - Instrução Break e Instrução Continue11m
Aula em vídeo: Curso Completo de Python - Aula 25 - Funções, argumentos e parâmetros15m
Exercício: Em Python, qual é a forma correta de definir e executar uma função que recebe dois valores para somar?
Aula em vídeo: Curso Completo de Python - Aula 26 - Argumentos posicionais, nomeados e padrões23m
Aula em vídeo: Curso Completo de Python - Aula 27 - Valor de retorno das funções (return)10m
Exercício: Qual é a principal vantagem de uma função usar return em vez de apenas print o resultado?
Aula em vídeo: Curso Completo de Python - Aula 28 - Trabalhando com listas dentro das funções10m
Aula em vídeo: Curso Completo de Python - Aula 29 - Importando Módulos16m
Exercício: Qual é a forma correta de importar apenas uma função específica de um módulo em Python?
Aula em vídeo: Curso Completo de Python - 1ª Parte de Exercícios07m
Aula em vídeo: Curso Completo de Python - Aula 30 - Resolvendo o Exercício 120m
Exercício: Ao criar um programa em Python para montar uma lista de convidados e encerrar quando o usuário digitar fim, qual combinação é a mais adequada para permitir repetição indefinida e saída controlada?
Aula em vídeo: Curso Completo de Python - Aula 31 - Resolvendo o Exercício 224m
Aula em vídeo: Curso Completo de Python - Aula 32 - Resolvendo o Exercício 327m
Exercício: Ao organizar uma calculadora em Python com funções em um arquivo separado, qual é o principal objetivo de usar um módulo externo?
Aula em vídeo: Curso Completo de Python - Aula 33 - Resolvendo o Exercício 441m
Aula em vídeo: Curso Completo de Python - Aula 34 - Classes (introdução)13m
Exercício: Em Python, qual é a função do método __init__ dentro de uma classe?
Aula em vídeo: Curso Completo de Python - Aula 35 - Exercitando Classes - Parte 119m
Aula em vídeo: Curso Completo de Python - Aula 36 - Exercitando Classes - Parte 214m
Exercício: Ao criar uma classe em Python para representar um usuário com atributos (ex.: primeiro_nome, ultimo_nome, idade, cidade, sexo), qual é a finalidade do método especial __init__?
Aula em vídeo: Curso Completo de Python - Aula 37 - Alterando atributos de uma instância - Parte 118m
Aula em vídeo: Curso Completo de Python - Aula 38 - Alterando atributos de uma instância - Parte 217m
Exercício: Qual é a principal diferença entre um método que altera o odômetro e um método que incrementa o odômetro em uma classe Carro?
Aula em vídeo: Curso Completo de Python - Aula 39 - Herança - Parte 122m
Aula em vídeo: Curso Completo de Python - Aula 40 - Herança - Parte 215m
Exercício: Em Programação Orientada a Objetos com Python, qual é a forma correta de acessar o valor numérico armazenado em um atributo de um objeto que está dentro de outro objeto (composição)?
Aula em vídeo: Curso Completo de Python - Aula 41 - Herança - Parte 313m
Aula em vídeo: Curso Completo de Python - Aula 42 - Manipulando Arquivos de texto23m
Exercício: Ao abrir um arquivo de texto em Python para garantir que ele seja fechado automaticamente, qual é a forma mais indicada?
Aula em vídeo: Curso Completo de Python - Aula 43 - Tratamento de erros com Try e Except18m
Aula em vídeo: Curso Completo de Python - Aula 44 - Trabalhando com banco de dados SQLite18m
Exercício: Ao usar SQLite no Python com sqlite3.connect("aula44.db"), o que acontece se o arquivo do banco de dados ainda não existir?
Aula em vídeo: Curso Completo de Python - Aula 45 - Criando executável com o Pyinstaller12m
Aula em vídeo: Curso Completo de Python - Aula 46 - Tkinter: Criando janela08m
Exercício: Em uma aplicação com Tkinter, qual comando mantém a janela aberta e “escutando” eventos até o usuário fechá-la?
Aula em vídeo: Curso Completo de Python - Aula 47 - Tkinter: Adicionando componentes à nossa janela10m
Aula em vídeo: Curso Completo de Python - Aula 48 - Tkinter: Posicionando meus componentes da janela20m
Exercício: No Tkinter, qual parâmetro do método pack() permite definir em qual lado (top, left, right, bottom) um widget será posicionado?
Aula em vídeo: Curso Completo de Python - Aula 49 - Tkinter: Executando métodos com os botões e inserindo imagens14m
Aula em vídeo: Curso Completo de Python - Aula 50 - Tkinter: bordas e cor de fundo da janela20m
Exercício: Em uma aplicação Tkinter, qual método é usado para alterar o título exibido na barra da janela?
Aula em vídeo: Curso Completo de Python - Aula 51 - Tkinter: apresentando nosso primeiro projeto15m
Aula em vídeo: Curso Completo de Python - Aula 52 - Tkinter: Interface gráfica do nosso joguinho - Parte 125m
Exercício: Em um programa com interface gráfica usando Tkinter, qual comando cria a janela principal da aplicação?
Aula em vídeo: Curso Completo de Python - Aula 53 - Tkinter: Interface gráfica do nosso joguinho - Parte 224m
Aula em vídeo: Curso Completo de Python - Aula 54 - Tkinter: Interface gráfica do nosso joguinho - Parte 324m
Exercício: Em uma interface feita com Tkinter, qual é a forma correta de permitir que a ação de jogar seja executada tanto ao clicar no botão quanto ao pressionar a tecla Enter?
Aula em vídeo: Curso Completo de Python - Aula 55 - Tkinter: Função do botão Jogar - Parte 126m
Aula em vídeo: Curso Completo de Python - Aula 56 - Tkinter: Função do botão Jogar - Parte 215m
Exercício: Como impedir que o programa calcule par/ímpar quando o número digitado está fora do intervalo permitido (0 a 10)?
Aula em vídeo: Curso Completo de Python - Aula 57 - Tkinter: Função do botão Jogar - Parte 317m
Aula em vídeo: Curso Completo de Python - Aula 58 - Tkinter: Função do botão Jogar - Parte 435m
Exercício: Em um jogo par/ímpar em Python com Tkinter, qual é a forma correta de atualizar a pontuação quando o jogador ganha um ponto?
Aula em vídeo: Curso Completo de Python - Aula 59 - Tkinter: Compilando para .EXE sem console e com ícone27m
Aula em vídeo: Curso Completo de Python - Aula 60 - Pygame - Estrutura Básica19m
Exercício: Em um projeto de jogo com Pygame, qual é a função do método pygame.display.flip() dentro do loop principal?
Aula em vídeo: Curso Completo de Python - Aula 61 - Pygame - Cor de fundo e tamanho de tela19m
Aula em vídeo: Curso Completo de Python - Aula 62 - Pygame: Adicionando imagem Parte 116m
Exercício: No Pygame, qual é a finalidade de usar o método get_rect() ao carregar a imagem da nave?
Aula em vídeo: Curso Completo de Python - Aula 63 - Pygame: Adicionando imagem Parte 213m
Aula em vídeo: Curso Completo de Python - Aula 64 - Dando movimento a espaço nave parte 126m
Exercício: Para permitir que a nave se mova continuamente enquanto a tecla da direita estiver pressionada, qual abordagem é a mais correta?
Aula em vídeo: Curso Completo de Python - Aula 65 - Dando movimento a espaçonave parte 218m
Aula em vídeo: Curso Completo de Python - Aula 66 - Alterando a velocidade da espaçonave20m
Exercício: Qual é a principal vantagem de criar um atributo de velocidade no arquivo de configurações (Settings) e usá-lo na classe da nave?
Aula em vídeo: Curso Completo de Python - Aula 67 - Delimitando a área de movimento da espaçonave18m
Aula em vídeo: Curso Completo de Paython - Aula 68 - Refatorando Game Fuctions09m
Exercício: Qual é o principal objetivo de refatorar o código ao lidar com muitos eventos de teclado em um jogo com Pygame?
Aula em vídeo: Curso Completo de Python - Aula 69 - Criando o Projétil da espaçonave23m
Aula em vídeo: Curso Completo de Python - Aula 70 - Funções que atualizam a posição dos projéteis12m
Exercício: Qual é a função do método update() na classe Bullet durante a movimentação do projétil?
Aula em vídeo: Curso Completo de Python - Aula 71 - Disparando os projéteis23m
Aula em vídeo: Curso Completo de Python - Aula 72 - Apagando os projéteis que saem da tela10m
Exercício: Ao criar projéteis em um jogo com Python, qual é o principal motivo para removê-los do grupo quando saem da tela?
Aula em vídeo: Curso Completo de Python - Aula 73 - Limitando o número de projéteis na tela09m
Aula em vídeo: Curso Completo de Python - Aula 74 - Refatorando o código10m
Exercício: Qual é o principal objetivo de refatorar o código ao criar funções como update_bullets e fire_bullet?
Aula em vídeo: Curso Completo de Python - Aula 75 - Dando vida aos alienígenas25m
Aula em vídeo: Curso Completo de Python - Aula 76 - Primeira aparição alienígena08m
Exercício: Qual é a forma correta de instanciar o objeto do alien, considerando que a classe recebe as configurações e a tela?
Aula em vídeo: Curso Completo de Python - Aula 77 - Criando um grupo de alienígenas27m
Aula em vídeo: Curso Completo de Python - Aula 78 - Primeira linha da frota alienígena10m
Exercício: Em um jogo, ao criar vários inimigos em uma mesma linha, qual fórmula costuma ser usada para calcular a posição X de cada elemento, mantendo margens e espaçamento uniformes?
Aula em vídeo: Curso Completo de Python - Aula 79 - Refatorando12m
Aula em vídeo: Curso Completo de Python - Aula 80 - Finalizando a frota alienígena - Parte 115m
Exercício: Qual é o objetivo da função que calcula o número de linhas de alienígenas que cabem na tela (eixo Y)?
Aula em vídeo: Curso Completo de Python - Aula 81 - Finalizando a frota alienígena - parte 214m
Aula em vídeo: Curso Completo de Python - Aula 82 - Dando movimentos aos aliens - Parte 110m
Exercício: Qual é o efeito de somar um valor positivo à coordenada x do alien a cada atualização, usando um fator de velocidade configurável?
Aula em vídeo: Curso Completo de Python - Aula 83 - Dando movimento aos aliens - Parte 212m
Aula em vídeo: Curso Completo de Python - Aula 84 - Dando movimento aos aliens - Parte 318m
Exercício: Por que usar a variável/atributo fleet_direction multiplicando a velocidade do alien em vez de alterar diretamente a velocidade?
Aula em vídeo: Curso Completo de Python - Aula 85 - Atirando nos alienígenas13m
Aula em vídeo: Curso Completo de Python - Aula 86 - Repovoando o jogo com alienígenas12m
Exercício: Como repovoar a frota quando todos os alienígenas forem destruídos?
Aula em vídeo: Curso Completo de Python - Aula 87 - Colidindo os aliens e nossa nave espacial10m
Aula em vídeo: Curso Completo de Python - Aula 88 - Trabalhando as colisões entre a nave e os aliens - Parte I13m
Exercício: Qual é o principal objetivo da classe GameState criada no projeto?
Aula em vídeo: Curso Completo de Python - Aula 89 - Trabalhando as colisões entre a nave e os aliens - Parte II16m
Aula em vídeo: Curso Completo de Python - Aula 90 - Colisão do Alien com a borda inferior da tela18m
Exercício: Em um jogo feito com Pygame, como verificar se um alienígena atingiu a parte inferior da tela?
Aula em vídeo: Curso Completo de Python - Aula 91 - Criando o botão play - Parte 114m
Aula em vídeo: Curso Completo de Python - Aula 92 - Criando botão play - Parte 215m
Exercício: Ao criar um método em uma classe Python, por que normalmente não passamos o argumento self na chamada (ex.: obj.metodo(msg))?
Aula em vídeo: Curso Completo de Python - Aula 93 - Fazendo o botão play funcionar - Parte 113m
Aula em vídeo: Curso Completo de Python - Aula 94 - Fazendo o botão play funcionar - Parte 208m
Exercício: Ao clicar em Play para reiniciar o jogo, quais ações foram implementadas para restaurar o estado inicial?
Aula em vídeo: Curso Completo de Python - Aula 95 - Ajustes finais no botão de play e fazendo o mouse desaparecer11m
Aula em vídeo: Curso Completo de Python - Aula 96 - Deixando o jogo mais desafiador21m
Exercício: Qual é a principal vantagem de criar um método para inicializar as configurações dinâmicas (como velocidades) em vez de deixar esses valores direto no construtor?
Aula em vídeo: Curso Completo de Python - Aula 97 - Inserindo Pontuação no Jogo - Parte 114m
Aula em vídeo: Curso Completo de Python - Aula 98 - Inserindo Pontuação no Jogo - Parte 210m
Exercício: Em uma classe que exibe a pontuação na tela usando Pygame, qual chamada é responsável por desenhar a imagem do texto (score) na tela na posição definida pelo retângulo?
Aula em vídeo: Curso Completo de Python - Aula 99 - Atualizando a pontuação - Parte 117m
Aula em vídeo: Curso Completo de Python - Aula 100 - Atualizando a pontuação - Parte 209m
Exercício: Em um jogo feito em Python, qual estratégia permite aumentar a pontuação a cada nova fase, mantendo valores inteiros e arredondados para múltiplos de 10?
Aula em vídeo: Curso Completo de Python - Aula 101 - Pontuação Máxima Parte 115m
Aula em vídeo: Curso Completo de Python - Aula 102 - Pontuação Máxima Parte 209m
Exercício: Qual é a lógica correta para atualizar a pontuação máxima (high score) em um jogo feito com Python?
Aula em vídeo: Curso Completo de Python - Aula 103 - Mudando de nível Parte 112m
Aula em vídeo: Curso Completo de Python - Aula 104 - Mudando de nível parte 210m
Exercício: Ao destruir toda a frota de inimigos, o que o código faz para iniciar um novo nível?
Aula em vídeo: Curso Completo de Python - Aula 105 - Representando a quantidade de vida na tela - parte 117m
Aula em vídeo: Curso Completo de Python - Aula 106 - Representando a quantidade de vida na tela - parte 212m
Exercício: Para exibir na tela o grupo de ícones que representam as vidas restantes (naves), qual chamada é utilizada?