python uma introdução klaus natorf quelhas novembro de 2009

30
Python Uma introdução Klaus Natorf Quelhas Novembro de 2009

Upload: internet

Post on 18-Apr-2015

111 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Python Uma introdução Klaus Natorf Quelhas Novembro de 2009

PythonUma introdução

Klaus Natorf Quelhas

Novembro de 2009

Page 2: 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;

Page 3: 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

• É 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.

Page 4: 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

• É 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

Page 5: 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

• É 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#.

Page 6: 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

• 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);

Page 7: Python Uma introdução Klaus Natorf Quelhas Novembro de 2009

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

Page 8: Python Uma introdução Klaus Natorf Quelhas Novembro de 2009

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)

Page 9: Python Uma introdução Klaus Natorf Quelhas Novembro de 2009

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.

Page 10: Python Uma introdução Klaus Natorf Quelhas Novembro de 2009

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

• 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

Page 11: Python Uma introdução Klaus Natorf Quelhas Novembro de 2009

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

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

Page 12: Python Uma introdução Klaus Natorf Quelhas Novembro de 2009

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úsculosuerj>>> 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

Page 13: Python Uma introdução Klaus Natorf Quelhas Novembro de 2009

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

• 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

Page 14: Python Uma introdução Klaus Natorf Quelhas Novembro de 2009

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 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]

Page 15: Python Uma introdução Klaus Natorf Quelhas Novembro de 2009

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

>>> 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']

Page 16: Python Uma introdução Klaus Natorf Quelhas Novembro de 2009

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

• 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.

Page 17: Python Uma introdução Klaus Natorf Quelhas Novembro de 2009

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.

Page 18: Python Uma introdução Klaus Natorf Quelhas Novembro de 2009

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

• 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.

Page 19: Python Uma introdução Klaus Natorf Quelhas Novembro de 2009

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

• 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 índicec

Page 20: Python Uma introdução Klaus Natorf Quelhas Novembro de 2009

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.

Page 21: Python Uma introdução Klaus Natorf Quelhas Novembro de 2009

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 float25.0>>> x='25' >>> int(x) # retorna x convertido para inteiro25 >>> float(x) # retorna x convertido para float25.0 >>>

Page 22: Python Uma introdução Klaus Natorf Quelhas Novembro de 2009

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>

Page 23: Python Uma introdução Klaus Natorf Quelhas Novembro de 2009

Python Introdução

Características

Tipos de dados

Numéricos

Strings

Listas

Tuplas

Dicionários

Booleanos

Conversão

• Construções

• if

for

while

Exemplos

• 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>

Page 24: Python Uma introdução Klaus Natorf Quelhas Novembro de 2009

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>continuebreak

else:<bolco de expressões>

Page 25: Python Uma introdução Klaus Natorf Quelhas Novembro de 2009

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

Page 26: Python Uma introdução Klaus Natorf Quelhas Novembro de 2009

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

Page 27: Python Uma introdução Klaus Natorf Quelhas Novembro de 2009

Python Introdução

Características

Tipos de dados

Numéricos

Strings

Listas

Tuplas

Dicionários

Booleanos

Conversão

• Construções

if

for

• while

Exemplos

• É 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>continuebreak

else:<bloco de expressões>

• Exemplo:

>>> a=0 >>> while a<5: ... print a ... a+=2 ... 0 2 4

Page 28: Python Uma introdução Klaus Natorf Quelhas Novembro de 2009

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!'

Page 29: Python Uma introdução Klaus Natorf Quelhas Novembro de 2009

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 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,", suffixprint "--"

Page 30: Python Uma introdução Klaus Natorf Quelhas Novembro de 2009

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