Introdução à Linguagem Curso de Nivelamento do PPGMNE Janeiro / 2011 Juliano J. Scremin jjscremin@jjscremin.t5.com.br
Um pouco de história
Um pouco de história: Nascimento do Python
Um pouco de história: Bases do Python
Um pouco de história: Ambiente de concepção
Introdução
Introdução: Características Básicas Interpretada: usa máquina virtual, facilita portabilidade. Interativa: pode-se programar interativamente, os comandos podem ser executados enquanto são digitados. Facilita testes, desenvolvimento rápido e outros. Orientada a Objetos: tudo é objeto: números, strings, funções, classes,instâncias, métodos,... Fortemente Tipada: Não existe casts e nem conversão automática, não se mistura tipos - automagicamente. Tipagem Dinâmica: A tipagem de um objeto é feita em tempo de execução. Um objeto tem tipo, uma variável não.
Introdução: Obtenção e instalação Python é um software livre, ou seja, não há custos para a obtenção dele. Em nosso curso utilizaremos uma suite de desenvolvimento conhecida como PythonXY que pode ser baixada no seguinte site: www.pythonxy.com ou mais precisamente no link: http://ftp.ntua.gr/pub/devel/pythonxy/python(x,y)-2.6.5.6.exe Python (x, y) é uma distribuição científica do Python baseada no Qt e Eclipse. Sua finalidade é ajudar os programadores científicos que utilizam linguagens interpretadas (como MATLAB ou IDL) ou linguagens compiladas (C/C++ ou Fortran), a mudar para Python. Programadores de C/C++ ou Fortran vão apreciar poder reutilizar seus códigos tal como estãoǁ usando um wrapper e podendo assim chamá-los diretamente a partir de scripts em Python.
Introdução: Aparência da Suite Python(x,y) Python(x,y) conta com um número considerável de aplicativos como Eclipse, Qt, MayaVI. Neste curso faremos uso do Spyder por ser um aplicativo mais compacto e muito funcional
Sintaxe Básica
Sintaxe Básica: Linhas lógicas Um programa em Python é constituído de linhas lógica Linhas Lógicas são terminadas com uma nova linha; Exceto quando explicitamente continuadas na próxima linha física, para isto usa-se o \. Ou implicitamente continuadas na próxima linha física por expressões que usam parênteses, colchetes ou chaves
Sintaxe Básica: Linhas lógicas Ao criar um novo arquivo de código no Eclipse ele inicia com a codificação utf-8 que não suporta os caracteres da língua portuguesa, logo temos que trocar a primeira linha para: # -*- coding: cp1252 -*- Textos com várias linhas são iniciados e terminados com três aspas (podem ser duplas ou simples) como no comentário abaixo da linha inicial Para inserir comentários de apenas uma linha basta iniciar a linha com o caractere # (jogo da velha shift+3)
Sintaxe Básica: Objeto Python é uma linguagem orientada a objeto, sendo assim as estruturas de dados possuem atributos (os dados em si) e métodos (rotinas associadas aos dados). Tanto os atributos quanto os métodos são acessados usando ponto (.). Para mostrar um atributo: print objeto.atributo Para executar um método: objeto.metodo(argumentos) Mesmo um método sem argumentos precisa de parênteses: objeto.metodo() O ponto também é usado para acessar estruturas de módulos que foram importados pelo programa.
Sintaxe Básica: Identação Em Python não existem palavras chave para abrir ou fechar um bloco de códigos Usa-se a identação para definir o início e fim do bloco de códigos com o uso da tecla TAB Cuidado com o uso de espaços prefira sempre o TAB para realizar a identação Cuidado com a identação muitos erros em códigos são devido a não observação dela
Sintaxe Básica: Tipos de Dados
Sintaxe Básica: Variáveis Python usa tipagem dinâmica: uma variável não tem tipo fixo, ela tem o tipo do objeto que ela contém. ( Ou seja não é necessário declarar variáveis ) Para criar um novo conteúdo para a variável é necessário apenas uma atribuição. Para atribuir por exemplo o valor 2 a variável number basta escrever: number = 2 Um conteúdo é destruído e recolhido pelo coletor de lixo quando nenhuma variável ou estrutura aponta mais para ele.
Sintaxe Básica: Números
Sintaxe Básica: Exemplos de Manipulação de Números
Sintaxe Básica: Texto
Sintaxe Básica: Exemplos de Manipulação de Texto
Sintaxe Básica: Exemplos de Interpolação de Texto
Sintaxe Básica: Conversões de Tipos de Dados int() : converte um número real em inteiro por truncamento das casas decimais como também converte um número inteiro em formato texto (ex. 345 ) para inteiro float() : converte um número inteiro para real como também converte um número inteiro ou um número real em formato texto (ex. 345, 345.729 para real ) str() : converte qualquer número, seja inteiro ou real para o tipo texto (string)
Sintaxe Básica: Entrada e Saída de Dados Para ler um dado via teclado e armazená-lo em uma variável o comando a ser usado é input e sua sintaxe é: nome_da_variável = input( Texto que aparecerá na tela: ) Já para imprimir na tela um dado basta o comando print : print dado_1,dado_2,dado_3, Os dados podem ser valores numéricos ou ainda texto, podendo ser por exemplo uma indicação do que é o dado que será plotado após a próxima vírgula: print valor do dado_1:,dado_1
Sintaxe Básica: Exemplo de Entrada e Saída de Dados
Sintaxe Básica: Operadores Operador Descrição Operador Descrição + adição & e lógico (and) - subtração ou lógico (or) * multiplicação ^ ou exclusivo (xor) ** potenciação < menor / divisão > maior // divisão por baixo (floor) <= menor ou igual % módulo (resto da divisão) >= maior ou igual == igual lógico!= diferente lógico
Estruturas de Dados
Estruturas de Dados: Listas Listas em Python são coleções heterogêneas de objetos, que podem ser de qualquer tipo, inclusive de outras listas Elas são mutáveis podendo ser alteradas a qualquer momento na execução do código
Estruturas de Dados: Manipulação de Listas :.append()
Estruturas de Dados: Manipulação de Listas : referência
Estruturas de Dados: Manipulação de Listas : extend(), insert(), remove(), count() list.extend(l) expande a lista existente adicionando como objetos diferentes (e não como apenas um único objeto lista) todos os elementos de uma lista (representada por L). list.insert(i, x) insere um item em uma dada posição numa lista (i representa a posição na lista onde o elemento será inserido, movendo para adiante os elementos posteriores, e x representa o item a ser inserido) list.remove(x) remove o elemento x de dentro da lista. list.count(x) retorna o número de vezes que o elemento x aparece na lista.
Estruturas de Dados: Manipulação de Listas : pop(), index(), sort(), reverse() list.pop([i]) remove o item especificado na posição i declarada entre [ ] e retorna este valor para o usuário. Caso nenhum índice de posição seja especificado é removido o último item da lista. list.index(x) retorna o índice da lista onde o primeiro elemento x aparece. Caso o elemento não conste na lista aparece uma mensagem de erro. list.sort() ordena de forma crescente a lista. list.reverse() inverte a ordem dos elementos na lista
Estruturas de Dados: Operações com Listas Soma de listas: Outras operações importantes: Soma de trechos de listas: