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

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

Transcript of Python Uma introdução Klaus Natorf Quelhas Novembro de 2009.

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