🐍 Sintaxe Básica de Python

O que é Sintaxe?

Sintaxe = as "regras de escrita" da linguagem.

Assim como português tem regras (acentuação, pontuação), Python também tem.


🎯 Seu Primeiro Programa

Executar o Básico

Abra VS Code, crie arquivo hello.py:

print("🎉 Olá, Mundo!")

Execute:

python hello.py

Resultado:

🎉 Olá, Mundo!

Parabéns! Você escreveu seu primeiro programa! 🚀


📝 Comentários (Notas no Código)

Comentários são anotações que não são executadas.

# Isto é um comentário de linha única
# Python ignora tudo depois de #

print("Isto executa")  # Comentário depois do código

# Comentário de múltiplas linhas
# Você pode escrever quantas linhas quiser
# Python ignora tudo

"""
Isto é um docstring (comentário de documentação)
Usado para descrever funções e módulos
Pode ter múltiplas linhas
"""

Boa prática: Escreva comentários explicando O QUE o código faz, não COMO.

# ❌ Ruim - explica óbvio
x = x + 1  # Adiciona 1 a x

# ✅ Bom - explica o contexto
profundidade_final = profundidade_inicial + incremento_coleta  # Soma profundidade de coleta

print() é a função mais básica. Mostra mensagens na tela.

# Texto simples
print("Olá, Oceanógrafo!")

# Múltiplos valores
print("Temperatura:", 22.5)

# Vários argumentos separados por vírgula
print("Data", "Espécie", "Profundidade")

# Sem quebra de linha
print("Python", end=" ")
print("Oceanografia")  # Resultado: "Python Oceanografia"

# Com separador customizado
print("Ulva", "Gracilaria", "Sargassum", sep=" | ")
# Resultado: Ulva | Gracilaria | Sargassum

📥 Input (Receber Informações)

input() pede informação do usuário.

# Solicitar nome
nome = input("Qual seu nome? ")
print(f"Bem-vindo, {nome}!")

# Solicitar número
# ⚠️ IMPORTANTE: input() sempre retorna TEXTO!
idade_texto = input("Qual sua idade? ")
idade = int(idade_texto)  # Converter para número

# Forma abreviada
idade = int(input("Qual sua idade? "))

Exemplo Completo:

Crie arquivo coleta_dados.py:

# Sistema de cadastro de amostra
print("=" * 50)
print("📝 CADASTRO DE AMOSTRA DE COLETA")
print("=" * 50)

especie = input("Espécie coletada: ")
profundidade = float(input("Profundidade (m): "))
temperatura = float(input("Temperatura (°C): "))

print("\n✅ Amostra cadastrada:")
print(f"   Espécie: {especie}")
print(f"   Profundidade: {profundidade}m")
print(f"   Temperatura: {temperatura}°C")

Execute:

python coleta_dados.py

Resultado:

==================================================
📝 CADASTRO DE AMOSTRA DE COLETA
==================================================
Espécie coletada: Ulva lactuca
Profundidade (m): 5.2
Temperatura (°C): 22.5

✅ Amostra cadastrada:
   Espécie: Ulva lactuca
   Profundidade: 5.2m
   Temperatura: 22.5°C

🔤 String (Texto) - Operações

Concatenação (Juntar Strings)

# Método 1: Usar + (mais antigo)
nome = "Caetano"
sobrenome = "Ronan"
completo = nome + " " + sobrenome
print(completo)  # Caetano Ronan

# Método 2: f-string (RECOMENDADO - Python 3.6+)
especie = "Ulva lactuca"
profundidade = 5.2
msg = f"Amostra de {especie} a {profundidade}m"
print(msg)  # Amostra de Ulva lactuca a 5.2m

# Dentro de f-string, você pode usar expressões!
temperatura = 22.5
print(f"Temperatura: {temperatura:.1f}°C")  # .1f = 1 casa decimal
print(f"Temperatura + 5: {temperatura + 5}°C")

Propriedades de String

texto = "Oceanografia"

# Tamanho
print(len(texto))  # 12

# Maiúsculas
print(texto.upper())  # OCEANOGRAFIA

# Minúsculas
print(texto.lower())  # oceanografia

# Primeira letra maiúscula
print(texto.capitalize())  # Oceanografia

# Substituir texto
print(texto.replace("Oceano", "Bio"))  # Biorafia

# Dividir em partes
frase = "Ulva,Gracilaria,Sargassum"
especies = frase.split(",")
print(especies)  # ['Ulva', 'Gracilaria', 'Sargassum']

# Verificar se contém
if "Ulva" in frase:
    print("✅ Ulva encontrada!")

🔢 Números - Operações

Inteiros (int)

a = 10
b = 3

print(a + b)    # 13
print(a - b)    # 7
print(a * b)    # 30
print(a / b)    # 3.333... (divisão com decimal)
print(a // b)   # 3 (divisão inteira)
print(a % b)    # 1 (resto da divisão)
print(a ** b)   # 1000 (10 elevado a 3)

# Operações com atribuição
numero = 5
numero += 3  # numero = numero + 3 → 8
numero -= 2  # numero = numero - 2 → 6
numero *= 2  # numero = numero * 2 → 12
numero //= 3 # numero = numero // 3 → 4

Decimais (float)

temperatura = 22.5
profundidade = 5.0
salinidade = 35.123456

# Arredondamento
print(round(salinidade, 2))  # 35.12 (2 casas decimais)
print(round(salinidade, 1))  # 35.1 (1 casa decimal)

# Função abs (valor absoluto)
print(abs(-5.2))  # 5.2

# Funções matemáticas
import math
print(math.sqrt(16))  # 4.0 (raiz quadrada)
print(math.pi)        # 3.14159...
print(math.ceil(5.2))  # 6 (arredonda para cima)
print(math.floor(5.8)) # 5 (arredonda para baixo)

✅ Booleanos (Verdadeiro/Falso)

# Valores booleanos
verdade = True
falsidade = False

# Comparações retornam booleanos
print(5 > 3)      # True
print(5 < 3)      # False
print(5 == 5)     # True (igual)
print(5 != 3)     # True (diferente)
print(5 >= 5)     # True (maior ou igual)

# Operadores lógicos
print(True and True)    # True
print(True and False)   # False
print(True or False)    # True
print(not True)         # False

# Exemplos práticos
temperatura = 22.5
profundidade = 5.2

# Verificar se coleta foi válida
valida = (temperatura > 20) and (profundidade < 10)
print(f"Coleta válida: {valida}")  # True

📋 Conversão de Tipos

Às vezes você precisa converter um tipo para outro.

# String para Número
texto_numero = "123"
numero = int(texto_numero)
print(tipo)  # <class 'int'>

# Número para String
numero = 42
texto = str(numero)
print(texto)  # "42"

# String para Decimal
texto_decimal = "3.14"
decimal = float(texto_decimal)
print(decimal)  # 3.14

# Número para Boolean
print(bool(0))     # False (0 é falso)
print(bool(1))     # True (número != 0 é verdadeiro)
print(bool(""))    # False (string vazia é falsa)
print(bool("Oi"))  # True (string não vazia é verdadeira)

🔍 Tipo de Dado (type)

Verificar que tipo é uma variável:

print(type(5))              # <class 'int'>
print(type(5.0))            # <class 'float'>
print(type("Olá"))          # <class 'str'>
print(type(True))           # <class 'bool'>
print(type([1, 2, 3]))      # <class 'list'>

# Usar em condição
valor = "123"
if type(valor) == str:
    print("É uma string!")

🎯 Exemplo Prático: Sistema de Coleta

Crie arquivo analise_coleta.py:

print("🌊 SISTEMA DE ANÁLISE DE COLETA")
print("-" * 50)

# Receber dados
especie = input("Espécie: ")
profundidade = float(input("Profundidade (m): "))
temperatura = float(input("Temperatura (°C): "))
salinidade = float(input("Salinidade (PSU): "))

# Validações
print("\n📊 ANÁLISE:")

# Verificar profundidade
if profundidade < 5:
    profundidade_status = "Rasa"
elif profundidade < 20:
    profundidade_status = "Intermediária"
else:
    profundidade_status = "Profunda"
print(f"Profundidade: {profundidade}m ({profundidade_status})")

# Verificar temperatura
if 20 <= temperatura <= 25:
    temp_status = "✅ Ideal"
else:
    temp_status = "⚠️ Fora do padrão"
print(f"Temperatura: {temperatura}°C {temp_status}")

# Verificar salinidade
salinidade_arredondada = round(salinidade, 1)
print(f"Salinidade: {salinidade_arredondada} PSU")

# Resumo
valida = (20 <= temperatura <= 25) and (profundidade < 50)
status_final = "✅ VÁLIDA" if valida else "❌ INVÁLIDA"
print(f"\nStatus da coleta: {status_final}")

Execute:

python analise_coleta.py

💾 Variáveis - Boas Práticas

Nomes de Variáveis em Python

# ✅ BOM - Descritivo, em inglês ou português claro
temperatura_media = 22.5
profundidade_coleta_m = 5.2
especie_coletada = "Ulva lactuca"
numero_amostras = 10

# ❌ RUIM - Genérico ou confuso
t = 22.5
x = 5.2
s = "Ulva lactuca"
n = 10

# ✅ BOM - Constantes em MAIÚSCULA
PI = 3.14159
PROFUNDIDADE_MAXIMA = 100
TEMPERATURA_IDEAL_MINIMA = 20
TEMPERATURA_IDEAL_MAXIMA = 25

# ❌ EVITAR
meu_valor_muito_longo_que_ninguem_entende = 42
_variavel = 10  # Convenção: começa com _ = privada

Escopo de Variáveis

# Variável global
mensagem_global = "Oceanografia UFSC"

if True:
    # Variável local
    mensagem_local = "LAFIC"
    print(mensagem_global)  # ✅ Funciona
    print(mensagem_local)   # ✅ Funciona

print(mensagem_global)  # ✅ Funciona
print(mensagem_local)   # ❌ ERRO - não existe fora do bloco

🎓 Exemplo Completo: Calculadora Oceanográfica

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
Calculadora Oceanográfica
Calcula propriedades de água marinha
"""

print("=" * 60)
print("🌊 CALCULADORA OCEANOGRÁFICA")
print("=" * 60)

# Constantes
SALINIDADE_PADRAO = 35.0
DENSIDADE_AGUA_DOCE = 1.0
DENSIDADE_AGUA_SALGADA_COEF = 0.8

# Entrada de dados
print("\n📥 Digite os parâmetros:")
profundidade = float(input("Profundidade (m): "))
temperatura = float(input("Temperatura (°C): "))
salinidade = float(input("Salinidade (PSU): "))

# Cálculos
print("\n📊 RESULTADOS:\n")

# Densidade aproximada
densidade = 1000 + (salinidade - SALINIDADE_PADRAO) * 0.78
print(f"Densidade da água: {densidade:.2f} kg/m³")

# Pressão aproximada (1 atm por 10m)
pressao_atm = 1 + (profundidade / 10)
print(f"Pressão: {pressao_atm:.2f} atm")

# Luz solar (50% em ~5m, ~1% em ~30m)
penetracao_luz = 100 * (0.7 ** (profundidade / 10))
print(f"Penetração de luz: {penetracao_luz:.1f}%")

# Status da coleta
print("\n✓ STATUS DA COLETA:")
if 20 <= temperatura <= 28:
    print("✅ Temperatura adequada")
else:
    print("⚠️ Temperatura fora do ideal")

if 34 <= salinidade <= 36:
    print("✅ Salinidade adequada")
else:
    print("⚠️ Salinidade fora do ideal")

if profundidade < 50:
    print("✅ Profundidade acessível")
else:
    print("⚠️ Profundidade muito grande")

print("\n" + "=" * 60)

🎓 Checklist desta Lição

Se marcou tudo, você está pronto para Estruturas de Dados! 🎉


➡️ Próximo Tópico

👉 02-Estruturas-Dados.html

Lá você aprenderá: - Listas (arrays) - Dicionários - Tuplas - Conjuntos - Operações com coleções


📝 Resumo de Funções Básicas

Função Uso Exemplo
print() Mostrar na tela print("Olá")
input() Receber do usuário nome = input("Nome: ")
int() Converter para inteiro int("5") → 5
float() Converter para decimal float("3.14") → 3.14
str() Converter para string str(42) → "42"
len() Tamanho len("Olá") → 3
type() Ver tipo type(5)<class 'int'>
round() Arredondar round(3.7) → 4

Você está progredindo rápido! 🚀 Próximo: Estruturas de Dados!