300 likes | 367 Views
Python Uma introdução. Klaus Natorf Quelhas Novembro de 2009. Python. Introdução Características Tipos de dados Tipos numéricos Strings Listas Tuplas Dicionários Booleanos Conversão Controle de fluxo if for while Exemplos.
E N D
Python Uma introdução Klaus Natorf Quelhas Novembro de 2009
Python • Introdução Características Tipos de dados Tipos numéricos Strings Listas Tuplas Dicionários Booleanos Conversão Controle de fluxo if for while Exemplos • Criada por Guido van Rossum no final de 1989, no Instituto Nacional de Matemática e Ciência da Computação da Holanda (CWI); • Tinha como principal foco auxiliar físicos e engenheiros; • O nome é uma homenagem ao grupo humorístico britânico Monty Python, criador do programa Monty Python's Flying Circus; • Linguagem de programação livre, com desenvolvimento comunitário;
Python Introdução • Características Tipos de dados Tipos numéricos Strings Listas Tuplas Dicionários Booleanos Conversão Controle de fluxo if for while Exemplos • É uma linguagem interpretada (com Perl, Shell script, etc) – Não é necessário compilar o programa; • Os arquivos fonte podem ser executados diretamente pelo interpretador, que os converte em byte codes (que são multiplataforma); • O Python pode ser executado diretamente no terminal: python (executa o python no modo interativo) python teste.py (executa o programa teste.py) • É ideal para ser usado como linguagem de scripts, automatizando tarefas; • É uma linguagem de aprendizado fácil, com sintaxe clara e concisa.
Python Introdução • Características Tipos de dados Tipos numéricos Strings Listas Tuplas Dicionários Booleanos Conversão Controle de fluxo if for while Exemplos • É uma linguagem com tipagem forte, porém dinâmica; • Estrutura simples (não é necessário digitar ponto-e-vírgula ao final de cada linha de instruções – caso seja preciso continuar na linha seguinte pode-se fazer uso da barra invertida); • Também não é necessário abrir e fechar blocos de código com chaves, como o C, por exemplo; • A identificação de blocos é feita através de identação, Ex: (1) while x<100: (2) s=s+x (3) x=x+1 (4) print s
Python • É uma linguagem orientada a objetos; Tudo em python é objeto, até mesmo os inteiros. Desta forma, até os tipos mais básicos possuem métodos específicos; • Oferece ferramentas para: - Programação funcional; - Processamento de imagens; - Interface gráfica; - Processamento distribuído; - Integração com C e C#. Introdução • Características Tipos de dados Tipos numéricos Strings Listas Tuplas Dicionários Booleanos Conversão Controle de fluxo if for while Exemplos
Python Introdução • Características Tipos de dados Tipos numéricos Strings Listas Tuplas Dicionários Booleanos Conversão Controle de fluxo if for while Exemplos • Integração com outros programas como linguagem de script. • Blender: O Python permite acessar todas as estruturas do Blender (operações 3D, manipulação de materiais, texturas e ambientes de cenas); • BrOffice.org: Dá suporte ao Python como linguagem de Macro (automatiza determinadas tarefas);
Python Introdução Características • Tipos de dados • Numéricos Strings Listas Tuplas Dicionários Booleanos Conversão Controle de fluxo if for while Exemplos Tipos numéricos: • inteiro (int): >>>a=10 • inteiro longo (long): >>>a=9999999999999 • ponto flutuante (float): >>>a=1.294 (ou ainda 12.94e-1) • complexo (complex): >>>a=1+2j
Python Introdução Características • Tipos de dados • Numéricos Strings Listas Tuplas Dicionários Booleanos Conversão Controle de fluxo if for while Exemplos • Operadores: + (Soma) - (Subtração) * (Multiplicação) / (Divisão) // (Divisão inteira) ** (Exponenciação) % (Resto de divisão inteira) • Métodos: a.real (Retorna a parte real do complexo a) a.imag (Retorna a parte imaginária do complexo a)
Python Introdução Características • Tipos de dados Numéricos • Strings Listas Tuplas Dicionários Booleanos Conversão Controle de fluxo if for while Exemplos • Strings são constantes; • A indexação de seus caracteres é feita através de colchetes. Entretanto os caracteres da String não podem ser modificados; Exemplos: >>> st='UERJ' >>> print st[0] U >>> print st[-4] U >>> print st[-len(st)] U • Todos os exemplos acima retornam o último caractere da string st.
Python • Mais exemplos: >>> st='Departamento de Sistemas e Computacao' >>> print st[:15] Departamento de >>> print st[27:] Computacao >>> print st[:15],st[27:] Departamento de Computacao >>> print st[15:27] Sistemas e >>> print st[::-1] oacatupmoC e sametsiS ed otnematrapeD Introdução Características • Tipos de dados Numéricos • Strings Listas Tuplas Dicionários Booleanos Conversão Controle de fluxo if for while Exemplos
Python Operações envolvendo strings: • Concatenação: >>> st='estou' >>> s=' em casa' >>> print st+s estou em casa >>> s='estou' ' em casa' >>> print s • Interpolação: >>> st='vida boa' >>> print “o comprimento de %s é %d” % (st,len(st)) o comprimento de vida boa é 8 • Uso da string como sequencia: >>> for c in s: ... print c ... U E R J Introdução Características • Tipos de dados Numéricos • Strings Listas Tuplas Dicionários Booleanos Conversão Controle de fluxo if for while Exemplos
Python Introdução Características • Tipos de dados Numéricos • Strings Listas Tuplas Dicionários Booleanos Conversão Controle de fluxo if for while Exemplos • Repetição de strings: >>>3*'string' 'stringstringstrig‘ • Métodos: >>> s='UERJ' >>> print s.lower() #retorna a string com caracteres minúsculos uerj >>> if s.startswith('U'): #verifica se a string começa com 'U' ... print 'começa' ... começa >>> if s.endswith('J'): #verifica se a string termina com 'J' ... print 'termina' ... termina
Python • São coleções de objetos, que podem ser de qualquer tipo, até mesmo outras listas; • Os elementos da lista não precisam ser do mesmo tipo; • Os tratamento dado às listas é semelhante ao dado às strings. • Exemplos: >>> lista = ['ab','bc',3,45] >>> print lista[0] ab >>> print lista[3] 45 >>> a=lista[0]+lista[1] >>> print a abbc >>> num=lista[2]+lista[3] >>> print num 48 Introdução Características • Tipos de dados Numéricos Strings • Listas Tuplas Dicionários Booleanos Conversão Controle de fluxo if for while Exemplos
Python • O sistema de indexação é idêntico ao das strings. Da mesma forma, pode-se selecionar intervalos na lista. Exemplo: >>> lista = ['ab','bc',3,45] >>> print lista[:2] ['ab', 'bc'] >>> print lista[2:] [3, 45] >>> print lista[::-1] [45, 3, 'bc', 'ab'] • As operações de concatenação, enumeração e repetição das strings também são aplicáveis às listas. >>> lista = ['a','casa',456,44.5,23+5j] >>> lista2=[1,2,3,4] >>> lista3=lista+lista2 # concatenando as listas >>> print lista3 ['a', 'casa', 456, 44.5, (23+5j), 1, 2, 3, 4] Introdução Características • Tipos de dados Numéricos Strings • Listas Tuplas Dicionários Booleanos Conversão Controle de fluxo if for while Exemplos
Python >>> for c in lista: #usando a lista como uma sequencia • ... print c • ... • a • casa • 456 • 44.5 • (23+5j) • >>> print 3*lista2 # repetindo a lista • [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4] • Ao concatenar uma string a uma lista, os caracteres da string são separados em elementos da lista. >>> lista=[1,2,3] >>> lista+='casa' >>> print lista [1, 2, 3, 'c', 'a', 's', 'a'] Introdução Características • Tipos de dados Numéricos Strings • Listas Tuplas Dicionários Booleanos Conversão Controle de fluxo if for while Exemplos
Python • Os elementos da lista podem ser alterados. Exemplo: >>> lista=[1,2,3] >>> lista[2]='elemento' >>> print lista [1, 2, 'elemento'] • Métodos úteis: >>> lista.append(8) #incluindo elemento >>> lista.remove(lista[1]) #removendo elemento a partir do índice >>> lista.remove(2) #removendo o elemento a partir da descrição do mesmo >>> lista.sort() #ordena a lista >>> lista.reverse() #inverte a lista • O uso do método pop() em conjunto com o método append() faz da lista uma pilha. Introdução Características • Tipos de dados Numéricos Strings • Listas Tuplas Dicionários Booleanos Conversão Controle de fluxo if for while Exemplos
Python Introdução Características • Tipos de dados Numéricos Strings Listas • Tuplas Dicionários Booleanos Conversão Controle de fluxo if for while Exemplos • Uma tupla é como uma lista, a mesma não pode ser alterada. Entretanto seus elementos podem ser mutáveis. Exemplo: >>> tupla=([1,2,3],'abc','de') >>> tupla[0].remove(2) >>> print tupla ([1, 3], 'abc', 'de') • O tratamento dado às tuplas no que se refere à indexação de seus elementos é idêntico ao dado às listas e strings.
Python • Dicionários são listas onde a indexação é feita por associação. É definida uma chave e aquela chave estará associada a um elemento do dicionário. Exemplo: >>> dic={'a':10,'b':20,'c':30} #declarando um dicionário >>> print dic['b'] #retornando um elemento através da chave 20 >>> dic['b']=56 #modificando um elemento através de sua chave >>> print dic {'a': 10, 'c': 30, 'b': 56} • As chaves do dicionário são imutáveis, porém os valores associados à chave são mutáveis. Não há garantia de que as chaves do dicionário estarão ordenadas. Introdução Características • Tipos de dados Numéricos Strings Listas Tuplas • Dicionários Booleanos Conversão Controle de fluxo if for while Exemplos
Python • Operações com dicionários: >>> dic={'a':10,'b':20,'c':30} #declarando o dicionário >>> dic['d']=40 #adicionando um novo elemento >>> del dic['b'] #removendo um elemento >>> print dic {'a': 10, 'c': 30, 'd': 40} • Métodos úteis com dicionários: >>> print dic.items() #retorna os itens do dicionário [('a', 10), ('c', 30), ('b', 20)] >>> print dic.keys() #retorna as chaves do dicionário ['a', 'c', 'b'] >>> print dic.values() #retorna os valores do dicionário [10, 30, 20] >>> print dic.keys()[1] #retorna uma chave do dicionário através de seu índice c Introdução Características • Tipos de dados Numéricos Strings Listas Tuplas • Dicionários Booleanos Conversão Controle de fluxo if for while Exemplos
Python Introdução Características • Tipos de dados Numéricos Strings Listas Tuplas Dicionários • Booleanos Conversão Controle de fluxo if for while Exemplos • O tipo booleano é uma implementação do tipo inteiro. • Ele pode assumir os valores True ou False. • São considerados como False: - False; - None (nulo); - 0 (zero); - “” (string vazia); - [] (lista vazia); - () (tupla vazia); - {} (dicionário vazio); - qualquer outra estrutura com tamanho zero.
Python Introdução Características • Tipos de dados Numéricos Strings Listas Tuplas Dicionários Booleanos • Conversão Controle de fluxo if for while Exemplos • Existem funções que são utilizadas para retornar uma variável convertida para um tipo específico. Exemplos: >>> x=25 >>> str(x) # retorna x convertido para string '25' >>> float(x) # retorna x convertido para float 25.0 >>> x='25' >>> int(x) # retorna x convertido para inteiro 25 >>> float(x) # retorna x convertido para float 25.0 >>>
Python Introdução Características Tipos de dados Numéricos Strings Listas Tuplas Dicionários Booleanos Conversão • Construções • if for while Exemplos • A construção if é utilizada para controle condicional e tem a seguinte sintaxe: if <condição>: <expressão 1> elif <condição 2>: <expressão 2> else: <expressão 3>
Python • Operadores lógicos: and - retorna verdadeiro caso todas as entradas forem verdadeiro; or - retorna verdadeiro caso uma das entradas for verdadeiro; not - se a entrada for verdadeira passará a falsa e vice-versa; is - retorna verdadeiro caso receba duas referências ao mesmo objeto (útil para comparar strings); in - retorna verdadeiro caso receba uma entrada que é encontrada uma ou mais vezes em uma lista. • Expressões condicionais: <variavel>=<valor1> if <condição> else <valor2> Introdução Características Tipos de dados Numéricos Strings Listas Tuplas Dicionários Booleanos Conversão • Construções • if for while Exemplos
Python Introdução Características Tipos de dados Numéricos Strings Listas Tuplas Dicionários Booleanos Conversão • Construções if • for while Exemplos • Utilizado para percorrer listas ,sequencias e processar iteradores. • Sintaxe: for <referência> in <sequencia>: <bolco de expressões> continue break else: <bolco de expressões>
Python Introdução Características Tipos de dados Numéricos Strings Listas Tuplas Dicionários Booleanos Conversão • Construções if • for while Exemplos • O laço não percorre somente sequencias estáticas, mas também sequencias geradas por iteradores. Exemplo: >>> lista=[1,2,3] >>> for i in lista: ... lista.append(len(lista)+1) ... print i ... if i>5:break ... 1 2 3 4 5 6
Python Introdução Características Tipos de dados Numéricos Strings Listas Tuplas Dicionários Booleanos Conversão • Construções if • for while Exemplos • A função range(m, n, p) define uma sequencia de inteiros iniciada em m, menor do que n (ou maior, depende da direção da sequencia), a um passo p (que pode ser negativo). Exemplo: >>> for i in range(1,10,2): ... print i ... 1 3 5 7 9
Python • É utilizada para realizar iterações condicionais, onde não se sabe o momento em que as iterações terminam. • Sintaxe: while<condição>: <bloco de expressões> continue break else: <bloco de expressões> • Exemplo: >>> a=0 >>> while a<5: ... print a ... a+=2 ... 0 2 4 Introdução Características Tipos de dados Numéricos Strings Listas Tuplas Dicionários Booleanos Conversão • Construções if for • while Exemplos
Python Introdução Características Tipos de dados Numéricos Strings Listas Tuplas Dicionários Booleanos Conversão Construções if for while • Exemplos • Adivinhe o que este programa faz: >>>print 'Hello World!'
Python • O programa abaixo implementa a música “99 Bottles of Beer”: for quant in range(99, 0, -1): if quant > 1: print quant, "bottles of beer on the wall,", quant, "bottles of beer." if quant > 2: suffix = str(quant - 1) + " bottles of beer on the wall." else: suffix = "1 bottle of beer on the wall." elif quant == 1: print "1 bottle of beer on the wall, 1 bottle of beer." suffix = "no more beer on the wall!" print "Take one down, pass it around,", suffix print "--" Introdução Características Tipos de dados Numéricos Strings Listas Tuplas Dicionários Booleanos Conversão Construções if for while • Exemplos
Referências: [1] Curso de Python – Gustavo Noronha Silva, Fórum Mineiro de Software Livre [2] Python para desenvolvedores – Luis Eduardo Borges [3] Computação Gráfica em Python – Luis Eduardo Borges [4] Tutorial Python, Release 2.4.2 – Guido Van Rossum , Fred L. Drake, Jr. [5] Por que as pessoas usam... Python? - Emerson Henrique, Thiago Paiva, I Jornada de Iniciação Científica da ASPER - Ciências da Computação e Processamento de Dados