Python para Programadores

Embed Size (px)

DESCRIPTION

Um mini-curso rᰩdo de Python para programadores que jᠳabem programar. Apresenta uma vis㯠geral da sintaxe da linguagem.

Citation preview

  • 1. Python para programadores
      • Quick Crash Fast Introductory Course :)
    • Osvaldo Santana Neto
    • Baseado no curso de:
    • Alex Augusto da Luz dos Santos

2. Histrico da Linguagem

  • Guido van Rossum
  • ABC
  • Criada em 1991
  • Monty Python Flying Circus

3. Caractersticas

  • Interpretada + Compilada
  • Orientada objetos
  • Suporte a outros paradigmas
    • Funcional
    • Estrutural
  • Multiplataforma
    • Unix/Linux (Maemo :) ), Windows, Mac OS, etc.
  • Dinamicamente tipada
    • No necessita declarao de tipo pois o tipo fica ligado ao objeto
    • Fortemente tipada (diferente do tipovariantdo Visual Basic)

4. Caractersticas

  • Licena Compatvel com BSD (e com GPL)
  • Conjunto completo de Estruturas de dados nativos na linguagem
    • Listas, Tuplas, Strings, Dicionrios, Iteradores, ...
  • Ambiente Interativo
  • Documentao pertencendo ao cdigo (docstrings)

5. Caractersticas

  • Fcil integrao com outras linguagens
    • C / C++, Java, Lua, ...
  • Exemplo em C:

#include static PyObject * spam_system(PyObject *self, PyObject *args) { const char *command; int sts; if(!PyArg_ParseTuple(args,"s" , &command)) return NULL; sts = system(command); return Py_BuildValue( "i" , sts); } } 6. Comentrios Genricos

  • No necessrio declarar variveis
  • Blocos de cdigo so definidos pela indentao (no precisa de { nem de })
  • O self passado por parmetro para os mtodos
  • No necessrio compilar cdigo

7. Hierarquia de Classes 8. Tipos mais importantes

  • Inteiros:
    • Exemplos:
      • 256, 123456789L, 1.5, 1e-45, 53+12j
    • Operaes:
      • 256 + 54, 32 * 3, 55 ** 2, 128 | 123, ...

9. Tipos mais importantes

  • Strings:
    • Exemplos:
      • "string normal", u"string unicode", r"string expressao regular", """string multilinha""", 'string', ...
    • Operaes (dica: use odir() ):
      • "spam" * 3 # resultado: "spamspamspam"
      • "spam" + "eggs" # resultado: "spameggs"
      • "spam%s%d" % ("eggs", 256) # resultado: "spameggs256"
      • mtodos:upper(), lower(), capitalize(), strip(), split(), join(), ..., ...
      • slicing(veremos adiante)

10. Tipos mais importantes

  • Listas e Tuplas
    • Exemplos:
      • [ "spam", "eggs" ]
      • ( "spam", "eggs" )
    • Operaes:
      • a,b,c = (1, 2, 3) # resulta: a=1, b=2, c=3
      • [1, 2, 3]+[4,5] # resulta: [1, 2, 3, 4, 5]
      • [1, 2, 3].append(4) # resulta: [1, 2, 3, 4 ]
      • mtodos:append(), extend(), pop(), reverse(), sort(), insert(), ...
      • slicing

11. Tipos mais importantes

  • Dicionrios
    • Exemplo:
      • { "spam": 'eggs' }
    • Operaes:
      • dic["spam"] # resulta: 'eggs'
      • mtodos:has_key(), get(), update(), items(), keys(), ...

12. Tipos mais importantes

  • Arquivos (file)
    • Exemplos:
      • f = open("arquivo.txt", "r")
      • f = file("arq.bin", "wb")
    • Operaes:
      • for linha in open("arq.txt"): pass
      • mtodos:read(), readline(), write(), readlines(), close(), ...

13. Slicing

  • "Fatia" uma seqncia
  • Sintaxe:
    • sequencia[inicio:fim:step]
  • Exemplos:
    • "spameggs"[1] # "p"
    • "spameggs"[-1] # "s"
    • "spameggs"[1:5] # "pame"
    • "spameggs"[1:] # "pameggs"
    • "spameggs"[1:-1] # "pamegg"
    • "spameggs"[::2] # "saeg"
    • "spameggs"[::-1] # "sggemaps"

14. Comandos

  • Condicional:
    • ifcondicao:
      • # comandos
    • elifcondicao:
      • # comandos
    • else:
      • # comandos
    • No precisa dos parntesis (" if (condicao): ") que foge aostyle guideda linguagem
    • No permitido atribuio: " if f=x(1): "

15. Comandos

  • Repetio:
    • whilecondicao:
      • # comandos
      • ...continue
      • ...break
    • else :
      • # comandos

16. Comandos

  • Iterao:
    • forelementoinsequencia:
      • # comandos
    • else :
      • # comandos
  • Exemplo:
    • foriinrange(10):
      • print i,
    • # imprimir: 0 1 2 3 4 5 6 7 8 9

17. Comandos

  • Excesses:
    • try :
      • # comandos
    • except Exception , e:
      • raise NewException ,"spam!"

18. Funes

  • Definio:
    • deff(parametro):
      • valor ="x"
      • returnvalor
    • deff(x, parm= 2 ):# parametro default
      • returnparm

19. Funes

  • Definio:
    • deff(*parms):
      • returnparms
    • printf( "spam" ,"eggs" )
    • # ('spam', 'eggs')

20. Funes

  • Definio:
    • deff(**kargs):
      • returnkargs
    • printf(x= 1 , y= 2 )
    • # {'x': 1, 'y': 2}

21. Orientao objetos

  • Definio de classe:
    • classspam( object ):pass
    • Construtor: " __init__() "
  • Exemplo:
    • classspam( object ):
      • def__init__( self , parm):
        • self.attr = parm
    • eggs = spam( "foo" )# instancia um objeto spam
  • O parmetroselfdeve ser explicitamente declarado nos mtodos.

22. Mdulos

  • A biblioteca do Python vem organizada em mdulos e packages.
  • Importando em namespace separado:
    • importmodulo
  • Importando para o namespace corrente:
    • frommoduloimport*

23. Mdulos

  • Exemplos:
    • importsys
    • importos
    • frommailimport*
    • frommoduloimportClasse
    • importpacote.subpacote.modulo
    • frompacote import *
  • Existem dezenas de mdulosbuiltinao Python e mais centenas de mdulos de terceiros.
  • RUDA: Cita os mdulos mais importantes

24. Mdulos mais importantes

  • sys funcionalidades do ambiente Python
  • os funcionalidades do sistema operacional
  • re mdulo de expresses regulares
  • httplib utilizao de HTTP
  • gzip compresso
  • xml parsers xml
  • sha, md5, ... - segurana / digests
  • imaplib, poplib, telnetlib, ... - protocolos de rede
  • ... entre outros

25. Mais informaes

  • www.pythonbrasil.com.br
  • www.python.org
  • diretamente com o Osvaldo (ou Rud)
  • www.google.com :)
  • Aguarde a continuao deste mini-curso...
  • (PyGTK ou Pygame)