Console
- Console
1. Sintaxe Básica do Python
1.1 Variáveis e Tipos de Dados
Em Python, você pode declarar variáveis sem especificar o tipo. Python faz isso automaticamente.
# Variáveis
x = 5 # Inteiro
y = 3.14 # Flutuante
nome = "Alice" # String
verdade = True # Booleano
# Exibindo os valores
print(x, y, nome, verdade)
1.2 Estruturas de Controle
If-else (Decisões)
Use if, elif e else para verificar condições.
x = 10
if x > 5:
print("x é maior que 5")
elif x == 5:
print("x é igual a 5")
else:
print("x é menor que 5")
Laços de Repetição (Loops)
- For Loop: Itera sobre sequências (listas, strings, etc.).
for i in range(5): # Itera de 0 a 4
print(i)
- While Loop: Continua executando enquanto a condição for verdadeira.
x = 5
while x > 0:
print(x)
x -= 1 # Decrementa x
1.3 Funções
Funções permitem encapsular lógica para reutilização. Elas são definidas com def.
def soma(a, b):
return a + b
resultado = soma(3, 4)
print(resultado) # Saída: 7
1.4 Estruturas de Dados
Listas
Listas são coleções mutáveis (você pode alterar os elementos).
lista = [1, 2, 3, 4, 5]
print(lista[0]) # Acessa o primeiro elemento
lista.append(6) # Adiciona um elemento ao final
print(lista)
Tuplas
Tuplas são imutáveis (não podem ser alteradas).
tupla = (10, 20, 30)
print(tupla[1]) # Acessa o segundo elemento
Dicionários
Dicionários armazenam pares chave-valor.
dicionario = {'nome': 'Alice', 'idade': 25}
print(dicionario['nome']) # Acessa o valor associado à chave 'nome'
Sets (Conjuntos)
Sets são coleções não ordenadas e sem duplicatas.
conjunto = {1, 2, 3, 2}
print(conjunto) # Saída: {1, 2, 3} (sem duplicatas)
1.5 Compreensão de Listas
Forma compacta de criar listas.
quadrados = [x * x for x in range(5)]
print(quadrados) # Saída: [0, 1, 4, 9, 16]
1.6 Importação de Módulos
Você pode importar bibliotecas para usar funções extras.
import math
print(math.sqrt(16)) # Saída: 4.0
2. Tópicos para Estudar Depois da Sintaxe Básica
2.1 Estruturas de Dados e Algoritmos
Listas e Manipulações
As listas são uma das estruturas de dados mais comuns. Você deve aprender a fazer inserções, remoções e manipulações como slicing.
lista = [10, 20, 30, 40]
lista.append(50) # Adiciona ao final
print(lista[1:3]) # Slice: elementos de índice 1 a 2
lista.remove(20) # Remove o valor 20 da lista
print(lista)
Conjuntos e Dicionários
Essas estruturas são usadas frequentemente para buscas rápidas.
# Conjuntos
conjunto = {1, 2, 3}
conjunto.add(4)
print(conjunto)
# Dicionários
dicionario = {'a': 1, 'b': 2}
print(dicionario['a'])
Filas e Pilhas
Você pode usar listas para implementar essas estruturas.
# Pilha (LIFO)
pilha = []
pilha.append(1) # Empilhar
pilha.append(2)
pilha.pop() # Desempilhar
# Fila (FIFO)
from collections import deque
fila = deque([1, 2, 3])
fila.append(4) # Adicionar à fila
fila.popleft() # Remover da fila
Árvores e Grafos
Estude árvores (binárias, AVL) e grafos. Travessias importantes:
- Busca em Largura (BFS).
- Busca em Profundidade (DFS).
Exemplo de travessia em árvore binária (em Python, árvores precisam ser implementadas manualmente ou com bibliotecas).
2.2 Algoritmos
Ordenação
Aprenda algoritmos como QuickSort, MergeSort, e métodos de busca binária.
# Ordenação em Python
lista = [3, 1, 4, 1, 5, 9]
lista_ordenada = sorted(lista)
print(lista_ordenada) # Saída: [1, 1, 3, 4, 5, 9]
Recursão
Recursão é uma função que chama a si mesma. Exemplo clássico de fatoriais:
def fatorial(n):
if n == 1:
return 1
return n * fatorial(n - 1)
print(fatorial(5)) # Saída: 120
Programação Dinâmica
Programação dinâmica é usada para resolver problemas dividindo-os em subproblemas menores. Exemplo de Fibonacci usando memoização:
def fibonacci(n, memo={}):
if n in memo:
return memo[n]
if n <= 2:
return 1
memo[n] = fibonacci(n-1, memo) + fibonacci(n-2, memo)
return memo[n]
print(fibonacci(10)) # Saída: 55
2.3 Complexidade de Tempo e Espaço
Estude as notações O(n), O(log n) para entender a eficiência dos algoritmos.