python n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Python PowerPoint Presentation
Download Presentation
Python

Loading in 2 Seconds...

play fullscreen
1 / 56

Python - PowerPoint PPT Presentation


  • 276 Views
  • Uploaded on

Python. Andrea Menezes (afm3) Maíra Nascimento (mcn2). Agenda. O que é Python Por que usar python História Quem usa Python Características A Liguagem. O que é Python. Python. Linguagem de alto nível Orientada a Objetos Interpretada Não é apenas uma linguagem de script

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Python' - inga


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
python

Python

Andrea Menezes (afm3)

Maíra Nascimento (mcn2)

agenda
Agenda
  • O que é Python
  • Por que usar python
  • História
  • Quem usa Python
  • Características
  • A Liguagem
python1
Python
  • Linguagem de alto nível
  • Orientada a Objetos
  • Interpretada
  • Não é apenas uma linguagem de script
  • Fácil de usar e de aprender
por que usar python1
Por que usar Python?
  • Conceitos fundamentais simples
  • Sintaxe clara – muito próxima de um pseudo-código
  • Código curto e legível
  • Tipos pré-definidos poderosos
  • Possui um vasto repertório de bibliotecas
  • Ciclo de desenvolvimento rápido
por que usar python2
Por que usar Python?
  • Licença Open Source
  • Pouco punitiva: poucas regras arbitrárias;
  • Extensível (adicionar novos módulos)
    • C/C++
    • Java (através Jython)
  • Extremamente portável
    • Unix/Linux, Windows, Mac, PalmOS, WindowsCE, RiscOS, VxWorks, QNX, OS/2, OS/390, AS/400, PlayStation, Sharp Zaurus, BeOS, VMS…
breve hist ria
Breve História
  • Criada por Guido van Rossum em 1989
  • no Centrum voor Wiskunde en Informatica (CWI), em Amsterdã,Holanda.
  • Linguagem de scripts para o sistema operacional distribuído Amoeba
  • Baseada na linguagem ABC, desenvolvida no CWI por Guido e outros nas décadas de 70 e 80.
  • O nome Python teve origem no grupo humorístico britânico Monty Python.
vers es
Versões
  • 26 de janeiro de 1994 – versão 1.0
  • 1998 – JPython
  • 16 de outubro de 2000 – versão 2.0
  • 19 de setembro de 2006 – versão 2.5 (atual)
no mundo
No Mundo
  • NASA (vários projetos)
  • Yahoo! (Yahoo mail & groups)
  • Apple, H.P., Microsoft
  • Muitas Universidades, como MIT, e Stanford
google
Google
  • Sistema de ajuda do GMail
  • Google Groups
  • Sistema de compilação de aplicativos (build system).
  • Sistema de empacotamento e entrega de dados (packaging system).
  • Sistema de monitoramento e manutenção do cluster
  • Sistema de testes
no brasil
No Brasil
  • Jornal do Brasil, AOL Brasil
  • Embratel: monitoramento das interfaces de backbone e clientes de internet, também existem scripts de uso interno.
  • CPqD: monitoramento de centrais telefônicas.
  • Conectiva: Gerenciamento de pacotes da distribuição Linux e ferramentas de uso interno.
  • Async: desenvolvimento de software de automação comercial
compilada x interpretada
Compilada X Interpretada
  • Interpretada
  • Interpretador interativo
  • Compilador de byte code
    • compilação implícita e automática
paradigma
Paradigma
  • Orientada a Objetos
  • Suporte a outros paradigmas
    • Estrutural
    • Funcional
  • Fácil integração com outras linguagens
sistema de tipos
Sistema de Tipos
  • Fortemente tipada
    • Objetos não podem mudar de tipo
    • Não há conversão automática de tipos
  • Tipagem dinâmica
    • Não há declaração de variáveis
outras
Outras
  • Poderosas estruturas de dados nativas
    • Listas
    • Dicionários
  • Identação para estrutura de bloco
    • Blocos demarcados por espaços

print "O valor de a "

if a == 0:

print "zero"

else:

print a

coment rios e coment rios funcionais
Comentários e Comentários Funcionais
  • Após o caractere “#” até o final da linha, tudo é considerado um comentário e ignorado, exceto pelos comentários funcionais.
  • Definindo a codificação do arquivo fonte
    • #−− coding: <encoding−name> −−
  • Em sistemas Posix pode-se usar o comentário funcional #!/usr/bin/env python para executar o arquivo com o comando python encontrado no ambiente.
    • Isto não é característico de Python, mas dos sistemas Posix.
indenta o
Indentação
  • Em Python, os blocos de código são delimitados pelo uso de indentação.
  • A indentação não precisa ser consistente em todo o arquivo, só no bloco de código.
    • Uma boa prática é ser consistente no projeto todo.
  • Cuidado ao misturar TAB e Espaços: configure seu editor!
vari veis
Variáveis
  • Tipagem dinâmica
    • uma variável não tem tipo fixo, ela tem o tipo do objeto que ela contém.
  • Não precisam ser declaradas
  • Variáveis são criadas quando atribuídas pela primeira vez
    • Variáveis devem ser atribuídas antes de serem referenciadas
  • “Tudo” é uma variável
    • Funções, classes, módulos ...
tipos de dados
Tipos de Dados
  • Variáveis Numéricas
    • Imutáveis

num_int = 13

num_int_long = 13L

num_real = 13.0

tipos de dados1
Tipos de Dados
  • Strings
    • Imutáveis
    • Criação
      • texto1 = ‘abcdefghij ‘
      • texto2 = “outro texto”
      • texto3 = ‘’’este texto

tem varias

linhas ‘’’

tipos de dados2
Tipos de Dados
  • Strings
    • Acesso a elementos pelo índice

texto1 = ‘abcdefghij ‘

print texto1 [ 2 ] # Imprime ’ c ’

print’GSB ’[ 1 ] # Imprime ’ S ’

    • Principais Métodos:

split, count, index, join, lower, upper, replace

tipos de dados3
Tipos de Dados
  • Tuplas
    • Formadas por elementos de qualquer tipo
    • Delimitadas por parênteses. ‘(‘ e ‘)’
    • Imutáveis
      • não se pode acrescentar apagar ou modificar valores
    • Vantagem: eficiente
tipos de dados4
Tipos de Dados
  • Listas
    • Formadas por elementos de qualquer tipo
    • Criação
      • lista = [ 10 , 2 , 3 , ’texto’ , 20 ]
    • Acesso a elementos pelo índice
      • print lista [ 2 ] # imprime ’3 ’
    • Principais Métodos:

append, count, index, insert, pop, remove,reverse, sort

listas
Listas
  • Dado uma lista “lista”, verifique se “valor” está dentro dela, caso verdade imprima “Sim”, senão imprima “Não”.
  • Dado uma lista “lista”, itere sobre a lista, imprimindo cada um de seus elementos.
  • Dado uma lista “lista”, crie uma nova lista “rotaciona_3” que cada posição está rotacionada em 3 posiçõeses, isto é, indice0 = indice + 3.
tipos de dados5
Tipos de Dados
  • Dicionários
    • Formados por pares de chave-valor
    • Delimitados por chaves. ‘{‘ e ‘}’

d = { ’chave ’: ’valor ’ , ’linguagem ’: ‘python’ }

    • Chave sempre um valor Imutável!

lista = [ 1 , 2 ]

d[ lista ] = ’outro valor ’ #TypeError: list object are unhashable

tipos de dados6
Tipos de Dados
  • Dicionários
    • Principais Métodos:

copy, get, has_key, items, keys, update, values

    • Obtendo iteradores (otimizado para for):

for chave in d.iterkeys ():

print chave

for valor in d.itervalues ():

print valor

for chave , valor in d.iteritems ():

print chave , ‘=‘ , valor

dicion rios
Dicionários
  • Crie um dicionário d e coloque nele seus dados: nome, idade, telefone,endereço.
  • Usando o dicionário d criado anteriormente, imprima seu nome.
  • Também usando d, imprima todos os itens do dicionário no formato chave : valor, ordenado pela chave.
controle de fluxo
Controle de Fluxo

if exp:

#comandos

else:

#comandos

if exp:

#comandos

elif exp:

#comandos

else:

#comandos

controle de fluxo1
Controle de Fluxo
  • Os seguintes valores são considerados falsos:
    • None
    • False
    • Valor 0 de viários tipos: 0, 0.0, 0L, 0j
    • Seqüências vazias: ”, (), []
    • Mapeamentos vazios
    • Instâncias de objetos que definam __nonzero__() que retorne valor False ou 0
    • Instância de objetos que definem o __len__() o qual retorne 0.
controle de fluxo2
Controle de Fluxo
  • Implemente o seguinte conjunto de regras em Python:
    • Se a for verdadeiro e b for falso, imprima “Caso 1”
    • Senão, Caso a for falso e b for verdadeiro, imprima “Caso 2”
    • Caso contrário:
      • Caso c for maior que 10 e d estiver entre 0.0 e 100.0, imprima “Caso 3”
      • Caso e estiver na lista lst, imprima “Caso 4”
      • Senão imprima “Caso 5”
estruturas de repeti o
Estruturas de Repetição

while exp:

#comandos

from time import time

start = time ()

while time () - start < 3.0:

print“ esperando ... “

for var in seq:

#comandos

for num in range(200):

print num

estruturas de repeti o1
Estruturas de Repetição
  • Python fornece a cláusula else para os laços.
  • Será executada quando a condição do laço for falsa.

for elemento in lista :

if elemento == parada :

break

print elemento

else :

print" Laço chegou ao fim “

  • No exemplo acima, a mensagem “Laço chegou ao fim” só é imprimida caso não existir um elemento que seja igual a “parada”.
estrutura de repeti o
Estrutura de Repetição
  • Dada uma lista de palavras “lista” e uma palavra “chave” imprima o índice do elemento que encontrou a palavra, senão imprima “Palavra Não Encontrada”.
fun es
Funções
  • Regra LGB
    • Referências buscam 3 escopos: local, global, built-in
    • Atribuições criam ou modificam nomes locais por default
    • Pode forçar argumentos a serem globais utilizando global
    • Exemplo

x = 99

def func(y):

z = x+y #x não é atribuído então é global

return z

func(1)

fun es1
Funções
  • É possível definir argumentos defaults que não precisam ser passados

def func(a, b, c=10, d=100):

print a, b, c, d

>>> func(1,2)

1 2 10 100

>>> func(1,2,3,4)

1,2,3,4

fun es2
Funções
  • Número variável de argumentos
    • argumentos são passados para a função na forma de uma lista

def arg_sem_nome ( * args ):

for arg in args :

print" arg :" , arg

arg_sem_nome ( ’a’ , ’b’ , 123 )

fun es3
Funções
  • Número variável de argumentos
    • argumentos são passados para a função na forma de um dicionário, o nome do argumento é a chave

def arg_com_nome ( ** kargs ):

for nome , valor in kargs . iteritems ():

print nome , "=" , valor

arg_com_nome ( a=1 , b=2 , teste =123 )

m dulos
Módulos
  • Módulos são funções definidas em arquivos separados
  • Itens são importados utilizando from ou import

from module import function

function()

import module

module.function()

  • Módulos são “namespaces”
    • Podem ser utlizados para organizar nomes de variáveis.

mod1.umValor = mod1.umValor - mod2.umValor

classes
Classes

class A:

atributo1 = 'atributo1 da classe A'

atributo2 = 'atributo2 da classe A‘

def __init__(self, val_ini=1):

" " " Construtor da classe A" " "

self.atributo_de_instacia = val_ini

def metodo (self):

printself.atributo_de_instacia

print A.atributo1

classes1
Classes

import datetime

class Pessoa ( object ):

def __init__ ( self , nome , nascimento ):

self . nome = nome

self . nascimento = nascimento

def idade ( self ):

delta = datetime . date . today () - self . nascimento

return delta . days / 365

def __str__ ( self ):

return’%s , % d anos ’ % ( self .nome , self . idade () )

classes2
Classes
  • Atributos de Classe
    • São atributos que estão na classe, não na instância
    • São compartilhados entre todas as instâncias (economia de memória)
    • Os valores são instanciados/atribuídos ao ler a definição de classe
    • Úteis para casos como Jogos, onde uma imagem deve ser compartilhada por todos os personagens idênticos, economizando memória
    • Úteis para fazer “lock” em regiões críticas, evitar condições de corrida, etc...
classes3
Classes
  • Atributos de classes

class C( object ):

l = []

c1 = C()

c2 = C()

c1.l.append ( 1 )

print c1.l # imprime [ 1 ]

print c2.l # imprime [ 1 ]

print C.l # imprime [ 1 ]

classes4
Classes
  • Atributos Públicos e Privados
    • Nomenclatura define atributos/métodos públicos e privados
      • Privados: nomes que se iniciam com __ e não terminam com __.
      • Públicos: os outros nomes possíveis.
      • Convenciona-se que atributos/métodos que se iniciam e terminam com __ (portanto públicos) são de uso interno da classe, apesar de poderem ser utilizados pelo mundo externo.
classes5
Classes
  • Propriedade
    • Escrita e leitura dos atributos

class C( object ):

def __init__ ( self ):

self . __x = None

def getX ( self ):

returnself . __x

def setX ( self , valor ):

if isinstance ( valor , int ):

self . __x = valor

else :

raise TypeError ( “x precisa ser inteiro !” )

x = property ( getX , setX )

c = C()

c.x = 1

c.x = ’abc ’# TypeError : x precisa ser inteiro

print c.x

exce es
Exceções

try:

algumaCoisa()

except:

print ‘Erro’

else:

# Será executado se quando não houver exceção

outraCoisa()

exce es1
Exceções

try:

algumaCoisa()

finally:

# Será executado sempre! (com ou sem exceção)

outraCoisa()

# Podemos usar except ou finally, nunca os dois!

arquivos
Arquivos
  • Lendo todo o conteúdo para a memória:

arquivo = open ( ’nome_arq.txt ’ )

conteudo = arquivo.read ()

arquivo.close ()

  • Lendo todas as linhas para a memória (lista):

arquivo = open ( ’nome_arq.txt ’ )

linhas = arquivo.readlines ()

arquivo.close ()

  • Lendo uma quantidade específica de bytes:

arquivo = open ( ’nome_arq.txt ’ )

comeco = arquivo.read ( 20 ) # 20 primeiros bytes

arquivo.close ()

arquivos1
Arquivos
  • Lendo com laços:

arquivo = open ( ’nome_arq.txt ’ )

# idêntico a arquivo.readlines()

for linha in arquivo :

print linha

arquivo = open ( ’nome_arq.txt ’ )

whileTrue :

linha = arquivo.readline ()

if linha == “”:

break

print linha

contador de palavras
Contador de Palavras
  • Pedir Arquivo
  • Ler Arquivo
  • Contar quantas vezes aparece cada palavra
  • Listar as palavras em ordem alfabética, junto com o seu número de repetições no texto
refer ncias
Referências
  • Python Language Reference
    • http://docs.python.org/ref/ref.html
  • Python Library Reference
    • http://docs.python.org/lib/lib.html
  • Python Tutorial
    • http://docs.python.org/tut/tut.html
  • Python Brasil
    • http://www.pythonbrasil.com.br/moin.cgi/PythonBrasil