Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
Programando com Python
Next
Download to read offline and view in fullscreen.

11

Share

Python - Programando em alto nível

Download to read offline

Visão geral do que é a linguagem de programação Python, como usá-la e onde usá-la.

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Python - Programando em alto nível

  1. 1. Programando em alto nível Igor Sobreira www.igorsobreira.com
  2. 2. Eu te conheço? • Me chamo Igor Sobreira • Faço TSI no IFPB (antigo CEFET-PB) • Programo em Python a uns 3, 4 anos • Trabalho com Python pra web (Django) • Smart Nuts Technology (www.smartnutstechnology.com) • Velejo de windsurf (quando dá...)
  3. 3. Python começou ... • ... em 1991, o primeiro release: 0.9.0 • Multi-paradigma • Multi-plataforma • Tipagem dinâmica e forte • Biblioteca padrão extensa • Fácil de aprender • Preza pela beleza de código ... beleza?
  4. 4. Beleza Importa!
  5. 5. Código bonito é código legível mais fácil de manter http://www.fickr.com/photos/jorgenjuul/2315754513/
  6. 6. VHLL Linguagem de Altíssimo Nível http://www.fickr.com/photos/carpe_feline/539715666/
  7. 7. Para os humanos
  8. 8. Interpretador interativo
  9. 9. Onde estamos? Pra onde vamos? • Python 3.0: quebra de compatibilidade • 2to3 ajuda na migração • ainda pouco usada (poucos módulos externos) • Versão atual 2.6.2: compatível com a família 2.x • traz algumas novidades do Python 3.0 • lança warnings de features depreciadas
  10. 10. Variáveis http://www.fickr.com/photos/mangtronix/404043506/
  11. 11. Objetos. Eles estão em todos os lugares Eles estão em todos os lugares
  12. 12. Tipagem Dinâmica “ ... executam em tempo de execução muitos comportamentos que outras linguagens realizam em tempo de compilação” Wikipedia • não é preciso declarar o tipo de uma variável • mas é preciso inicializá-la
  13. 13. ... e Forte
  14. 14. O que eu tenho disponível?
  15. 15. • listas [ coleção, de, objetos ] • tuplas (listas, imutáveis) • dicionários { chave: valor } • “strings” • u’unicode’, • r’string cruasn’
  16. 16. Baterias Inclusas Quase tudo que você precisa vem embutido http://www.fickr.com/photos/fensterj/138774850/
  17. 17. http://docs.python.org/library/ re StringIO weakref datetime decimal calendar itertools random math csv os.path os robotparser pdb email sqlite3 gzip json shelve pickle xml.* urllib/urllib2 tarfle hashlib threading multiprocessing
  18. 18. Multiplataforma
  19. 19. • Linux • Maemo - PyMaemo • Unix • S60 - PyS60 • Windows • Android • OS X • E também na JVM e .NET
  20. 20. Python Implementação X Especifcação Implementação X Especifcação
  21. 21. CPython • Implementação de referência, ofcial • Escrita em C • Versão atual: 3.0.1 / 2.6.2
  22. 22. Jython • Python na JVM • Implementação em Java • Versão atual: 2.5.0
  23. 23. IronPython • Python na .NET e Silverlight • Versão atual: 2.0.1 • Compatível com CPython 2.5
  24. 24. Stackless Python • Um python “melhorado” • Microthreads • Threads mais “leves” • Não são threads reais • Um round robin scheduler embutido executa as tasklets
  25. 25. Pypy • “... framework para produção de implementações de linguagens dinâmicas” • “implementação da linguagem Python rápida, fexível e compatível, usando esse framework para permitir novas funcionalidades avançadas sem precisar codifcar detalhes de baixo nível” • Python em (R)Python! • Geração de um compilador JIT!!
  26. 26. Unladen Swallow • Branch do CPython feito pelo Google • Meta? ser 5x mais rápido que o CPython • Como? usando o JIT da LLVM • Boa sorte google :-) • Desenvolvimento ativo
  27. 27. Programação Funcional
  28. 28. flter()
  29. 29. zip()
  30. 30. E muito mais... • Python tem um exelente suporte a programação funcional • Muitas funções embutidas muito úteis • http://docs.python.org/library/functions.html • functools, itertools • O tratamento de parâmetros é muito fexível • Funções são objetos de primeira classe • Closures
  31. 31. Decorators • Modifcam, incrementam uma função ou método • Fazem alguma coisa antes e/ou depois da função real • Filtram parâmetros e/ou valores de retorno • A partir do Python 2.6 podem decorar classes!
  32. 32. Programação Orientada a Objetos
  33. 33. Métodos estáticos e de classe
  34. 34. Herança Múltipla Robô Carro falar() acelerar() Trânsformer
  35. 35. Metaclasses • Uma classe constrói objetos • Uma metaclasse constrói classes
  36. 36. Classes Abstratas • Novidade no Python 2.6 • Defnem a interface de um objeto • É uma forma de organizar as interfaces de suas classes, simplifcando a refexão • Classes abstratas + herança múltipla torna desnecessário um tipo interface, como existe linguagems como Java e PHP
  37. 37. collections.Container
  38. 38. Properties • Evite getters e setters desnecessários • Use-os somente quando precisar • E quando usar, seja transparente • Não precisa encapsular algo que (ainda) não existe!
  39. 39. Isso é só começo ... • OO em python é simples e poderoso! • é fácil deixar seu objeto parecido com um tipo nativo • sobrecarga de operadores (+, -, /, *) • descriptors • alto nível de refexão
  40. 40. Persistência de Dados
  41. 41. • pickle e cPickle: serializa objetos • shelve: objeto dictionary-like persistente • o valor pode ser qualquer objeto pickleble • Unix dbm: pares chave-valor • chaves e valores são strings
  42. 42. Bancos Relacionais • Python DB API (PEP 0242) • sqlite3 (builtin!) • MySQL - mysqldb • PostgreSQL - psycopg2 • Oracle - cx_Oracle • Microsoft SQL Server - pymssql
  43. 43. ORMs • SQLAlchemy • Django ORM • DejaVu • Storm • SQLObject • Autumm
  44. 44. Banco de Dados OO • ZODB • Durus • pod - Pickled Object Database
  45. 45. couchdb-python http://code.google.com/p/couchdb-python/
  46. 46. Programação Concorrente
  47. 47. subprocess • inicar processos e analisar input/output/error • subprocess.call( [‘ls’, ‘-la’] )
  48. 48. threading • Fácil manipulação de threads • Semáforos • Locks • Eventos
  49. 49. GIL
  50. 50. Global Interpreter Lock • Não permite que duas threads executem em paralelo na mesma VM!! • threads são concorrentes, mas não paralelas • facilita muito a implementação, e módulos externos em C/C++ • Paralelismo real? Use processos.
  51. 51. multiprocessing • quase a mesma interface de threading • mas com processos, e não threads • abstrai criação, interação entre processos ...
  52. 52. • Desenvolvimento web: frameworks • frameworks full-stack ou componentes separados • Web Services • python conversa com: JSON, XML,YAML • SOAP, RPC, REST
  53. 53. Fazendo uma busca no Web Service do twitter.com
  54. 54. Testes Automatizados
  55. 55. doctests • as docstrings viram testes reais • documentação e teste num só lugar • basta simular uma sessão no interpretador interativo ( >>> )
  56. 56. unittest • Testes automatizados • A versão em Python do JUnit • Sua aplicação é formada por pequenas unidades testáveis
  57. 57. E por fora? http://www.fickr.com/photos/autobahn/377694041/
  58. 58. • Nose • py.test Eles procuram e rodas os testes para você. E ainda extendem o unittest padrão http://www.fickr.com/photos/rabbitriot/2910866645/
  59. 59. • python-mock • minimock Não teste objetos externos. Falsifque-os, e espere o melhor deles. Ou simplesmente. Monkeypatch :-)
  60. 60. Conversa com outras linguagens • C/C++ • Jython (Java) • IronPython (.NET)
  61. 61. Onde usar?
  62. 62. • Web • GUI • Mobile • Games e 3D • Comp. Gráfca • Ciência e Educação • Rede • Adm. de Sistemas
  63. 63. Quem usa?
  64. 64. www.youtube.com
  65. 65. www.cia.gov
  66. 66. www.brasil.gov.br
  67. 67. www.vericia.com
  68. 68. Aync - Stoq. Gestão comercial
  69. 69. InVersalius
  70. 70. Blender
  71. 71. Inkscape
  72. 72. INdT - Nokia
  73. 73. Documentação
  74. 74. python.org.br docs.python.org
  75. 75. Python para desenvolvedores http://ark4n.wordpress.com/python/
  76. 76. A Comunidade Text
  77. 77. Encontro Brasileiro • I PyconBrasil (2005) Unicamp, São Paulo/SP • II PyconBrasil (2006) Interlegis, Brazília/DF • III PyconBrasil (2007) SOCIESC, Joinville/SC • Pyconbrasil [4] (2008) UVA, Rio de Janeiro/RF • Pythonbrasil [5] UCS, Caxias do Sul/RS • 10 a 12 de Setembro de 2009
  78. 78. • python.org.br • Grupos • python-brasil - 2960 • django-brasil - 1034 • zope-pt - 1047 • IRC • #python-br • #django-br • #qualquer-ferramenta-ou-framework
  79. 79. Bem vindo ao mundo Python
  80. 80. Obrigado. Dúvidas? Igor Sobreira www.igorsobreira.com http://www.fickr.com/photos/pocar/3285251509/
  • WagnerSeixas2

    Mar. 21, 2019
  • FelipeVieira174

    Sep. 27, 2018
  • josenaldocb

    May. 20, 2018
  • wilbermc

    Aug. 3, 2017
  • WivisonArajo

    Jul. 30, 2017
  • Emanuelq23

    Oct. 4, 2016
  • luiz58

    Feb. 23, 2016
  • joelsonbatista1

    May. 11, 2015
  • LeonardoTada

    May. 31, 2013
  • rrs_ssp

    Apr. 25, 2012
  • newliver

    Sep. 15, 2010

Visão geral do que é a linguagem de programação Python, como usá-la e onde usá-la.

Views

Total views

6,321

On Slideshare

0

From embeds

0

Number of embeds

363

Actions

Downloads

377

Shares

0

Comments

0

Likes

11

×