Introdução ao Python para iniciantes

1. O que é Python e por que aprender?

Python foi criado por Guido van Rossum no final dos anos 1980 e lançado em 1991 com uma filosofia clara: legibilidade e simplicidade. O nome não vem da cobra, mas do grupo de comédia britânico Monty Python. A linguagem foi projetada para que programadores lessem código como se fosse inglês simples, reduzindo drasticamente o custo de manutenção de software.

A filosofia do Python está documentada no "Zen do Python" (PEP 20), que inclui princípios como "Explícito é melhor que implícito" e "Simples é melhor que complexo". Esses princípios tornam Python uma escolha excelente para iniciantes e profissionais.

Principais áreas de aplicação:

  • Desenvolvimento web: frameworks como Django e Flask
  • Ciência de dados: pandas, NumPy, Matplotlib
  • Automação de tarefas: scripts para manipulação de arquivos, web scraping
  • Inteligência Artificial: TensorFlow, PyTorch, scikit-learn
  • Desenvolvimento de jogos: Pygame

Comparação rápida com outras linguagens:

Característica Python Java C JavaScript
Curva de aprendizado Baixa Média Alta Média
Tipagem Dinâmica Estática Estática Dinâmica
Sintaxe Legível Verbosa Complexa Flexível
Velocidade Moderada Rápida Muito rápida Rápida

2. Instalação e primeiro ambiente

Instalação do Python 3.x

Windows: Acesse python.org, baixe o instalador e marque "Add Python to PATH" durante a instalação.

macOS: Use o Homebrew: brew install python3 ou baixe do site oficial.

Linux: A maioria das distribuições já vem com Python. Verifique com python3 --version. Se necessário: sudo apt install python3 (Debian/Ubuntu).

Interpretador interativo (REPL)

Após instalar, abra o terminal e digite python3 (ou python no Windows):

Python 3.11.0 (main, Oct 24 2022, 18:26:48) 
[GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Olá, mundo!")
Olá, mundo!
>>> 2 + 2
4
>>> exit()

Editores e IDEs recomendados:

  • VS Code: Leve, com extensões para Python
  • PyCharm: IDE completo, versão Community gratuita
  • Thonny: Excelente para iniciantes absolutos
  • Jupyter Notebook: Ideal para análise de dados

3. Fundamentos da sintaxe

Variáveis e tipos de dados

Python é dinamicamente tipado — você não precisa declarar o tipo:

# Tipos básicos
idade = 25                    # int
altura = 1.75                 # float
nome = "Maria"                # string
estudante = True              # bool

# Verificando tipos
print(type(idade))            # <class 'int'>
print(type(altura))           # <class 'float'>

Operadores

# Aritméticos
soma = 10 + 5                 # 15
subtracao = 10 - 5            # 5
multiplicacao = 10 * 5        # 50
divisao = 10 / 3              # 3.333...
divisao_inteira = 10 // 3     # 3
resto = 10 % 3                # 1
potencia = 2 ** 3             # 8

# Relacionais
print(10 > 5)                 # True
print(10 == 5)                # False
print(10 != 5)                # True

# Lógicos
print(True and False)         # False
print(True or False)          # True
print(not True)               # False

Entrada e saída

nome = input("Digite seu nome: ")
idade = int(input("Digite sua idade: "))  # Converte para inteiro
print(f"Olá {nome}, você tem {idade} anos!")

4. Estruturas de controle de fluxo

Condicionais

nota = float(input("Digite a nota: "))

if nota >= 7:
    print("Aprovado")
elif nota >= 5:
    print("Recuperação")
else:
    print("Reprovado")

Laços de repetição

# for com range
for i in range(5):
    print(f"Contagem: {i}")

# for em lista
frutas = ["maçã", "banana", "laranja"]
for fruta in frutas:
    print(fruta)

# while
contador = 0
while contador < 5:
    print(f"While: {contador}")
    contador += 1

Controle de laços

# break - interrompe o loop
for i in range(10):
    if i == 5:
        break
    print(i)  # 0, 1, 2, 3, 4

# continue - pula para próxima iteração
for i in range(5):
    if i == 2:
        continue
    print(i)  # 0, 1, 3, 4

# else em loops - executa se não houve break
for i in range(3):
    print(i)
else:
    print("Loop concluído sem interrupção")

5. Estruturas de dados essenciais

Listas

# Criação e indexação
numeros = [10, 20, 30, 40, 50]
print(numeros[0])      # 10
print(numeros[-1])     # 50 (último elemento)

# Fatiamento
print(numeros[1:4])    # [20, 30, 40]
print(numeros[::2])    # [10, 30, 50] (pulando de 2 em 2)

# Métodos comuns
numeros.append(60)     # Adiciona ao final
numeros.insert(0, 5)   # Insere na posição 0
numeros.remove(30)     # Remove o valor 30
numeros.sort()         # Ordena a lista
print(len(numeros))    # Tamanho da lista

Tuplas e dicionários

# Tupla - imutável
coordenadas = (10, 20)
print(coordenadas[0])  # 10

# Dicionário - chave:valor
aluno = {
    "nome": "João",
    "idade": 20,
    "curso": "Ciência da Computação"
}
print(aluno["nome"])           # João
print(aluno.get("nota", "N/A"))  # N/A (valor padrão)
aluno["nota"] = 8.5            # Adiciona nova chave

Conjuntos (sets)

conjunto_a = {1, 2, 3, 4}
conjunto_b = {3, 4, 5, 6}

print(conjunto_a | conjunto_b)  # União: {1, 2, 3, 4, 5, 6}
print(conjunto_a & conjunto_b)  # Interseção: {3, 4}
print(conjunto_a - conjunto_b)  # Diferença: {1, 2}

6. Funções e modularização

Definindo funções

def saudacao(nome, saudacao="Olá"):
    """Retorna uma saudação personalizada."""
    return f"{saudacao}, {nome}!"

print(saudacao("Ana"))           # Olá, Ana!
print(saudacao("Pedro", "Oi"))   # Oi, Pedro!

Escopo de variáveis

x = 10  # variável global

def funcao():
    x = 20  # variável local
    print(f"Dentro: {x}")

funcao()           # Dentro: 20
print(f"Fora: {x}")  # Fora: 10

Importando módulos

import math
import random
from datetime import datetime

print(math.sqrt(16))                    # 4.0
print(random.randint(1, 10))           # Número aleatório entre 1 e 10
print(datetime.now())                   # Data e hora atuais

7. Tratamento de erros e boas práticas

Blocos try/except/finally

try:
    numero = int(input("Digite um número: "))
    resultado = 10 / numero
    print(f"Resultado: {resultado}")
except ValueError:
    print("Erro: Digite um número válido!")
except ZeroDivisionError:
    print("Erro: Divisão por zero não permitida!")
else:
    print("Operação realizada com sucesso!")
finally:
    print("Bloco finally sempre executa.")

Comentários e docstrings

# Comentário de uma linha

"""
Docstring multi-linha
Geralmente usada para documentar funções e módulos
"""

def calcular_media(notas):
    """
    Calcula a média aritmética de uma lista de notas.

    Args:
        notas (list): Lista de números (notas)

    Returns:
        float: Média calculada
    """
    return sum(notas) / len(notas) if notas else 0

Dicas de estilo (PEP 8)

  • Use 4 espaços para indentação (nunca tabs)
  • Limite de 79 caracteres por linha
  • Nomes de variáveis em snake_case: nome_completo
  • Nomes de classes em PascalCase: MinhaClasse
  • Constantes em MAIÚSCULAS: PI = 3.14159
  • Espaços ao redor de operadores: x = 10 + 5

8. Projeto prático: calculadora simples

def somar(a, b):
    return a + b

def subtrair(a, b):
    return a - b

def multiplicar(a, b):
    return a * b

def dividir(a, b):
    if b == 0:
        raise ValueError("Divisão por zero não é permitida!")
    return a / b

def exibir_menu():
    print("\n=== CALCULADORA SIMPLES ===")
    print("1. Somar")
    print("2. Subtrair")
    print("3. Multiplicar")
    print("4. Dividir")
    print("5. Sair")

def obter_numero(mensagem):
    while True:
        try:
            return float(input(mensagem))
        except ValueError:
            print("Erro: Digite um número válido!")

def main():
    while True:
        exibir_menu()
        opcao = input("Escolha uma opção (1-5): ")

        if opcao == "5":
            print("Encerrando calculadora...")
            break

        if opcao in ("1", "2", "3", "4"):
            a = obter_numero("Digite o primeiro número: ")
            b = obter_numero("Digite o segundo número: ")

            try:
                if opcao == "1":
                    resultado = somar(a, b)
                    operacao = "+"
                elif opcao == "2":
                    resultado = subtrair(a, b)
                    operacao = "-"
                elif opcao == "3":
                    resultado = multiplicar(a, b)
                    operacao = "*"
                elif opcao == "4":
                    resultado = dividir(a, b)
                    operacao = "/"

                print(f"\nResultado: {a} {operacao} {b} = {resultado}")

            except ValueError as e:
                print(f"Erro: {e}")
        else:
            print("Opção inválida! Escolha entre 1 e 5.")

if __name__ == "__main__":
    main()

Este projeto prático demonstra:
- Funções para cada operação matemática
- Loop principal com menu interativo
- Tratamento de entradas inválidas (try/except)
- Tratamento específico para divisão por zero
- Estrutura modular e organizada

Python é uma linguagem versátil que combina simplicidade com poder. Comece praticando os exemplos deste artigo, experimente modificar o código da calculadora e, em breve, você estará pronto para projetos mais complexos como análise de dados, automação ou desenvolvimento web.

Referências