Introdução à Linguagem Curso de Nivelamento do PPGMNE Janeiro / 2011 Juliano J. Scremin – [email protected] 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: Soma de trechos de listas: Outras operações importantes: