1 / 62

Linguagem Python

Linguagem Python. Características e Aplicações Renato Violin. http://www.python.org/. Conteúdo. Histórico Características Python e outras linguagens Quem usa Python ? Python para Web. Python mobile Python 3D e Games Interface gráfica IDE’s Referências. Histórico.

janna
Download Presentation

Linguagem Python

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Linguagem Python Características e Aplicações Renato Violin http://www.python.org/

  2. Conteúdo • Histórico • Características • Python e outras linguagens • Quem usa Python? • Python para Web • Pythonmobile • Python 3D e Games • Interface gráfica • IDE’s • Referências

  3. Histórico • Criada por Guido Van Rossum em 1991 • Baseado no linguagem ABC • Projetada inicialmente para o sistema operacional distribuído Amoeba • Origem do nome: Grupo de humor MontyPython • Código aberto: GPL • Atualmente (novembro/2009 ) na versão 3.0

  4. Filosofia Python >>> import this The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Special cases aren't special enough to break the rules. There should be one- and preferably only one -obvious way to do it. […]

  5. Características da Linguagem • Legível – Identação obrigatória • Interpretada – Compila bytecode e interpreta (.pyc, .pyo) • Multiplataforma – Windows, Linux/Unix, MacOS • Tipagem forte e dinâmica • Multiparadigma – Procedural, Funcional e Orientado a Objetos. • Usada em várias aplicações: Web, desktop, sistemas embarcados, sistemas 3D. • Não há declarações, apenas instruções (ações).

  6. Legívelsintaxe simples e identação obrigatória

  7. Tipagem forte e dinâmica <type 'int'> <type 'str'> <type 'bool'> <type 'list'>

  8. Estruturas de alto nível

  9. Orientação a objetosapesar do self a sintaxe é reduzida

  10. Características Funcionais Saída 9 Lambda.: 27 MAP....: [1, 8, 27, 64, 125] REDUCE.: 24 Filter.: [3, 4, 5, 6, 7, 8, 9] Zip....: [(1, 4, 7), (2, 5, 8)] Lambda: função sem nome Map: aplica uma função a cada item de uma lista Reduce: faz um somatório de uma lista Filter: aplica uma condição em cada item da lista Zip: agrupa elementos entre listas

  11. Outros Recursos • Testes de Unidades • Threads • Sockets • SPADE – Agente inteligente

  12. Bibliotecas • Persistência de objetos • Banco de dados • Geração de PDFs • Manipulação de imagens • Protocolos de redes • Criptografia • Integração com o S.O • ... http://www.python.org.br/wiki/CookBook

  13. Python conversa com outras linguagens • C/C++ - Swig • Fortran – PyFort • Java – Jython • .NET – IronPython

  14. Python vs. Java/C++ • “Não desperdiça pixels” • Não utiliza { } em blocos, apenas identação. • Não utiliza ( ) em condições if e while. • Em geral utiliza menos pontuação. • Tipos: forte porem dinâmicos. • nomes não tem tipos, objetos sim. • Sem declarações, apenas instruções.

  15. Python e Javaalgumas semelhanças • Ambas são compiladas em bytecode. • Todas as classes herdam de object. • Em Python: números e funções. • Semântica uniforme para objeto-referência. • Não há copia de objetos. • Garbagecollection (coletor de lixo) • Python: mais pró-ativo, faz a coleta assim que possível. • Enorme biblioteca padrão + pacotes de terceiros.

  16. Python e Java com Jython

  17. Python e Java comparando: código em Java para fatorial

  18. Python e .NETcom IronPython Trecho de código incompleto. Falta declaração dos outros objetos.

  19. Quem usa Python

  20. Google "Python tem sido uma parte importante do Google desde o início, e permance assim conforme o sistema cresce e evolui. Hoje, dezenas de engenheiros do Google usam Python, e estamos procurando por mas pessoas com conhecimento nessa linguagem." disse Peter Norvig, diretor de qualidade de busca do Google, Inc. http://www.pythonbrasil.com.br/moin.cgi/PythonNoGoogle […] nossafilosofia é “Python ondepodemos, C++ ondesomosobrigados”. Python não é apenas um pequenopedaçonemmesmousadoapenasparatarefas de script. Se um virus parasse a execução de todocódigo Python, a grandeinfraestruturadescritacomo “A armasecreta do Google” pararia. Alex Martineli, Sistemas de produção Google Inc. http://groups.google.com/group/comp.lang.python/browse_thread/thread/af75a3e91a03ec18/

  21. Youtube “Python é rapidosuficienteparanosso site e permiteproduzir e mantercaracterísticasem tempo recorde, com um mínimo de desenvolvedores”. Cuong Do, Arquiteto de software Google. http://www.python.org/about/quotes/ Youtube (uma das propriedadesmaisvaliosas do Google) é essencialmentetodo Python […]. Alex Martineli, Sistemas de produção Google Inc. http://groups.google.com/group/comp.lang.python/browse_thread/thread/af75a3e91a03ec18/

  22. RedHat A distribuição linuxRedHat usa Python no instalador (Anaconda) e seus utilitários de configuração. A interface gráfica foi desenvolvida utilizando a biblioteca pyGtk http://wiki.python.org/moin/OrganizationsUsingPython

  23. DreamWorks “Gostariamos de ter tudo Python, mas ainda temos muito de Perl”. Ed Leonard, Diretor de tecnologia de Animação http://www.linuxjournal.com/article/9653 Nossa equipe tem baseado a transição de Perl para Python na facilidade. Há três razoes para isso: A criação de bindings para C++ é muito fácil [...], A natureza orientada a objetos do Python é mais atrativa [...], Python é uma cidadã de primeira classe na nossa empresa. Darin Grant, Chefe de produção e tecnologia http://www.linuxjournal.com/article/9653

  24. Industrial Light and Magic “Python desempenha um papelchaveemnossalinha de produçao. Semele, um projetodo tamanho de Star Wars: Episode II teriasidomuitodificil de ser concluído. Desde a renderizaçãodamultidãoaté o processamentoemlotepara a composição, Python mantemtodas as partes juntas”. Tommy Burnette, DiretorTécnicoSênior. http://www.python.org/about/success/ilm/ http://www.python.org/about/quotes/

  25. Walt Disney “Walt Disney Feature Animation é um grandearmazem de Perl, masalgumasdesvantagens com Perl conduziu o pessoal de desenvolvimento a pesquisaroutrasalternativaspara script. […] Nósestavamostendosproblemas de estabilidade com Perl e nãoestavamosconseguindointegrar Perl com interfaces gráficasem C++ da forma quegostariamos. […] Python forneceua integraçãoqueeugostaria.” Brent Burley, Engenheiro de software sênior WDFA http://www.oreillynet.com/pub/a/oreilly/python/news/disney_0201.html

  26. Blender Blender utiliza a linguagem Python. Através dos scripts Python é possívelacessartodasos dados dos objetosemcena. http://www.blender.org/features-gallery/features/ http://www.guiadohardware.net/dicas/blender-python.html

  27. NASA Johnson Space Center usa Python no Sistema de PlanejamentoIntegrado. Esforçosestão a caminhoparadesenvolverumacoleção de ferramentas modular paraajudar no planejamentoda pre-missão de lançamento e tambemparatrocarferramentasantigas. http://wiki.python.org/moin/OrganizationsUsingPython

  28. Python para Web

  29. Djangowww.djangoproject.com/ • Framework Web de alto nível. • Segue o padrão MTV – Model Template View. • Automatiza algumas tarefas do processo de desenvolvimento. • Reduz o tempo para construção da aplicação. • Mantém o desenvolvedor com foco no negócio.

  30. Django características • Mapeamento Objeto-Relacional. • Interface de administração automática. • URLs elegantes • Sistema com Templates. • Coloca resultados em Cache. • Multilíngue http://noticias.terra.com.br/brasil/noticias/0,,OI4072763-EI306,00-Indios+encontram+aviao+da+FAB+e+relatam+que+ha+sobreviventes.html http://www2.ljworld.com/news/2009/oct/30/alvamar-pro-towner-shoots-71/?sports

  31. Grokgrok.zope.org/ • Baseado no framework Zope 3 • Orientado a objetos • Fácil aprendizado • Desenvolvimento ágil • Componentes plugáveis

  32. Pylonspylonshq.com • Um dos primeiros a adotar o padrão WSGI. • Permite mapeamento objeto relacional. • Templates. • Helpers: WebHelperse FormAlchemy. • URLs elegantes. • Padrão MVC.

  33. Turbo Gears http://www.turbogears.org/ • Surgiu em 2005. • Framework Front-to-back. • Padrão MVC. • SQLObject - Mapeamento Objeto-Relacional. • Ferramenta de testes. • Mais recursos em: http://www.o3magazine.com/pastissues/issue5/

  34. Web2pyhttp://mdp.cti.depaul.edu/ • Foi inspirado no RubyonRails. • Inspirando também no Django. • Mais compacto, mais simples e mais fácil de aprender. • Padrão MVC. • Fácil instalação.

  35. Zope http://www.zope.org/ • Servidor de aplicações WEB • United States Navy • http://www.zope.com/customers/case_studies/navy_ge.html • IDG Now! • http://idgnow.uol.com.br/ • Lista completa de aplicações • http://www.zope.org/Resources/ZSP

  36. Plonehttp://plone.org/ • Aplicativo CMS – Content Management System. • Baseado no Zope • SERPRO • http://www.serpro.gov.br/

  37. Breve comparativo • Objetivo: • Construir uma aplicação simples para rastrear a entrada e o tempo de permanência no site. • Frameworks: • J2EE, Rails, Zope/Plone, TurboGears, Django. Vídeo disponível em: http://oodt.jpl.nasa.gov/better-web-app.mov

  38. J2EEcomparativo

  39. Railscomparativo

  40. Zope/Plonecomparativo

  41. Turbo Gearscomparativo

  42. Djangocomparativo

  43. PythonMobilePyS60 • Python para celulares baseado no Symbian. • Acessa “alguns” recursos do celular: • Recursos gráficos 3D. • Som (texto -> voz) • Câmera, Vídeo. • Bluetooth. • Wireless. • GPS. • Sensor movimento. • TouchScreen • ... http://mobilenin.com/pys60/menu.htm http://wiki.forum.nokia.com/index.php/Category:Python http://wiki.opensource.nokia.com/projects/PyS60_applications

  44. PythonMobileoutros dispositivos IpodIPhonePythonCE

  45. Python 3DopenGL • PyOpenGL • Biblioteca que fornece acesso ao OpenGL. http://pyopengl.sourceforge.net/ http://glinter.sourceforge.net/ http://www.linuxjournal.com/article/4830 http://web.fi.uba.ar/~ssantisi/works/pyopengl_eschers_relativity/ http://www.siafoo.net/snippet/142

  46. Python 3Dvisualização científica • PyGLPlot http://www.dominik-epple.de/pyglplot/

  47. Python 3D visualização científica • MayaVi http://mayavi.sf.net/

  48. Python 3Dno Brasil • InVesalius – Reconstrução 3D de imagens médicas http://www.cti.gov.br/promed/software.htm

  49. Python na GPUPyGPU • É um compilador de Python que permite escrever programas de processamento de imagens para serem executados direto na GPU. Filtro Sobel defsobelEdgeDetect(im=DImage, p=Position):wX = outerproduct([1,2,1],[-1,0,1])wY = transpose(wX)Gx = convolve(wX,im,p)Gy = convolve(wY,im,p)returnsqrt(Gx**2 + Gy**2) http://www.cs.lth.se/home/Calle_Lejdfors/pygpu/

  50. Python e GamesPyGame • Estende a biblioteca SDL. Greyhawk: Temple of Elemental Evil http://www.greyhawkgame.com/ http://pygame.org/

More Related