Sumário
Capítulo 1 - As sintaxes básicas da linguagem Python
1.1 Introdução - 1
1.1.1 Instalando o Python no Windows - 2
1.1.2 O pacote matplotlib - 6
1.1.3 Instalando o pygame - 7
1.1.4 Instalação do desenvolvedor anaconda - 8
1.1.5 Python como calculadora: lançamento oblíquo sem atrito - 8
1.2 A sintaxe do primeiro programa em Python - 10
1.2.1 A função print - 11
1.2.2 Saída fomatada da função print -12
1.2.3 A função input - 14
1.2.4 A função eval - 15
1.2.5 Funções matemáticas em Python - 15
1.2.6 Modos de importação de módulos - 16
1.2.7 Variáveis em Python - 17
1.3 Tipos de variáveis numéricas - 18
1.3.1 Números inteiros - 18
1.3.2 Números reais ou de ponto flutuante - 19
1.3.3 Números complexos - 19
1.3.4 Convertendo valores de tipos diferentes - 20
1.3.5 Variável global e variável local - 21
1.4 operadores em Python - 23
1.4.1 Operador de atribuição = - 23
1.5 Operadores aritméticos - 24
1.5.1 Precedência de operadores aritméticos - 25
1.5.2 Conversão de tipos implícitas - 26
1.5.3 Operadores aritméticos de atribuição - 28
1.6 Exercícios - 28
Capítulo 2 - Objetos turtle graphics
2.1 Primeiro programa com turtle (tartaruga) - 31
2.2 Círculos e rosetas com turtle - 33
2.3 Um gerador de polígonos - 35
2.4 Espiral de Arquimedes - 36
2.5 Espiral de quadrados crescentes com lados seguindo a sequência de Fibonacci - 38
2.6 Exercícios - 40
Capítulo 3 - O uso de estruturas de decisão e repetição – gravação em arquivo
3.1 Estruturas de decisão - 45
3.1.1 Operadores Relacionais - 45
3.1.2 Operadores Lógicos - 46
3.1.3 Estrutura if - 48
3.1.4 Estrutura if-else - 49
3.1.5 Estrutura if-elif-else - 51
3.2 Listas em Python - 52
3.2.1 Sintaxe para criação de listas - 52
3.2.2 Acessando elementos da lista - 53
3.2.3 Operações com listas: alterando, acrescentando e removendo elementos - 53
3.3 Estruturas de Repetição – Laços 56
3.3.1 Simulação: Mapa logístico (xn+1 = mxn (1-xn)) - 56
3.3.2 A sintaxe da estrutura de repetição em linguagem Python - 61
3.3.3 O laço for - 61
3.3.4 List comprehensions – abrangência de listas - 65
3.4 Gravação em arquivo - 67
3.4.1 Como funciona a gravação de arquivo em Python - 68
3.4.2 Abertura de arquivos - 69
3.4.3 Função para abertura de arquivo – função open()- 69
3.4.4 Tratamento de exceções - 70
3.5 Lendo um arquivo de dados em Python - 72
3.6 Usando Matplotlib para gerar gráficos - 73
3.6.1 Gráfico simples com pylab - 74
3.6.2 Gerando gráfico com várias funções - 76
3.6.3 Formas de linhas e símbolos para gráficos com matplotlib - 78
3.6.4 Alterando as propriedades da fonte nos gráficos - 82
3.6.5 Gráficos com pontos individuais – função scatter - 83
3.6.6 Figura com vários gráficos - 85
3.6.7 Figuras em 3D - 87
3.6.8 Gravando figuras em vários formatos - 89
3.6.9 Gráfico em coordenadas polar - 90
3.7 Comando de repetição while - 91
3.7.1 Reposicionando a leitura de arquivos – função seek()-95
3.7.2 A função de números aleatórios - rand - 96
3.7.3 Métodos básicos para lidar com strings - 100
3.7.4 Módulo turtle e janelas (canvas) - 103
3.8 Simulação: Objetos Fractais - 106
3.8.1 Algoritmo para gerar fractais - 107
3.8.2 O algoritmo IFT – Iterated Functions System – Sistema de Funções Interativas - 108
3.8.3 Teorema de decodificação IFS - 108
3.8.4 O algoritmo IFS - 109
3.9 Projetos - 117
Capítulo 4
Solução numérica de equações diferenciais, vetores e matrizes com o pacote Numpy
4.1 Efeito da resistência do ar no lançamento de projétil - 123
4.2 Método de Euler para solução de EDO - 126
4.3 O pêndulo amortecido - 132
4.4 Resolvendo numericamente a equação diferencial adimensional - 133
4.5 Redução de uma equação diferencial de segunda ordem para duas de primeira ordem - 135
4.6 O Efeito Magnus - 137
4.7 O Uso de Funções em Python - 141
4.7.1 Sintaxe da construção de uma função em Python - 142
4.7.2 Tipos de argumentos ou parâmetros de funções em Python - 144
4.7.3 Funções matemáticas como funções em Python - 144
4.7.4 Funções que retornam mais de um valor - 146
4.7.5 Funções com parâmetros posicionais - 147
4.7.6 Funções com argumentos nomeados (Keywords argument) - 149
4.7.7 Funções recursivas - 151
4.7.8 Funções como argumentos de outras funções - 157
4.7.9 Função lambda - 158
4.8 Vetores e Matrizes em Python – Pacote Numpy - 159
4.8.1 Pacote numérico NumPy - 159
4.8.2 Acesso aos elementos - 162
4.8.3 Matrizes com mais de uma dimensão - 167
4.8.4 Inicialização - 168
4.8.5 Indexação e seleção de elementos matriciais - 171
4.8.6 Operações algébricas com matrizes no numpy - 172
4.8.7 Método da eliminação de Gauss - 175
4.8.8 Solução de sistema na forma Triangular Superior - 176
4.8.9 Método geral da eliminação de Gauss - 179
4.9 O pêndulo caótico - 182
4.9.1 Listas, vetores e matrizes como argumentos de funções - 188
4.9.2 Solução numérica do pêndulo amortecido e forçado - 195
4.9.3 Inserindo símbolos e estruturas matemáticas do Latex nos gráficos em Python - 200
4.9.4 Exercícios - 202
Capítulo 5 - Integração numérica
5.1 Métodos de Integração Numérica - 207
5.1.1 O método do Retângulo - 209
5.1.2 O método do trapézio - 210
5.1.3 Cálculo do período do pêndulo simples para grandes amplitudes - 216
5.2 Integral utilizando o método de Monte Carlo - 224
5.2.1 Método de Monte Carlo para uma dimensão - 224
5.2.2 Método de Monte Carlo para duas dimensões -228
5.2.3 Exercícios - 228
Capítulo 6 - Programação orientada a objeto (POO)
6.1 Classes e objetos em Python - 231
6.1.1 Criando uma classe – comando class - 236
6.1.2 Instanciando uma classe - 236
6.1.3 Acessando os atributos - 237
6.1.4 A variável self - 237
6.1.5 Métodos - 238
6.1.6 Atributo ou variável de instância e variável local - 239
6.1.7 Regras e observações para o bom uso de classes - 239
6.2 Herança - 243
6.2.1 Polimorfismo – sobreescrevendo métodos - 247
6.2.2 Criando uma classe derivada – herança entre classes - 248
6.3 Importando suas classes - 250
6.3.1 Utilização de uma classe - 250
6.3.2 Classe numérica com integrador de Runge-Kutta - 253
6.3.3 Herança da classe bidimensional – visualização 3D - 262
6.3.4 Importando várias classes de um módulo - 266
6.4 Projetos - 270
Referências - 273