python uma introdução klaus natorf quelhas novembro de 2009
TRANSCRIPT
PythonUma 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 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#.
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 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
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
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
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
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]
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']
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.
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 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.
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
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 float25.0>>> x='25' >>> int(x) # retorna x convertido para inteiro25 >>> float(x) # retorna x convertido para float25.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 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>
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>
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 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
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 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 "--"
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