Python Mini Ccurso Consegi2011

1,774
-1

Published on

Palestras do mini-curso python oferecido em Brasilia no dia 11/05/2011 - Luiz Aldabalde.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,774
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
66
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Python Mini Ccurso Consegi2011

  1. 1. Iniciandono mundo do Python Luiz Guilherme F. Aldabalde Versão.: 12/05/11
  2. 2. ObjetivoApresentar sua origem e o seu propósitoConhecer a sintaxe da linguagemElaborar os primeiros códigosApresentar os módulos importantesIndicar outras fontes de conhecimento
  3. 3. De onde venho ...
  4. 4. SERPRO Maior Provedor do Governo de tecnologia de Informações e Comunicações Principais Clientes: Ministério da Fazenda, Planejamento, Justiça, Transportes, Comunicação, Educação e Gabinete Civil e Presidência. Mais de 3 bilhões de Transações/ano Múltiplas plataformas e padrões abertos ASP + ISP + NSP SERPROServiço Federal de Processamento de Dados 4
  5. 5. Comunidades
  6. 6. Começou assim ...Python foi criada em 1990 por Guido Van Rossum. O nome da linguagem é uma homenagem ao grupo inglês de humor Monty Python. A linguagem foi concebida para ocupar o espaço que existia entre as linguagens C/C++ e o shell.
  7. 7. Porque Python ? oioio 7
  8. 8. A evolução ... 1990 ­ Nascimento 1994 ­ Python ?? Que isso ? 1997 – Mas ninguém usa isso. 1999 – Onde podemos encontrar programadores? 2004 – Infoworld –  6a linguagem mais utilizada 2005 ­  Python na Nokia 2007 – A linguagem que mais cresceu (TIOBE) 2008 – Google App Engine 2009 – Melhor Linguagem Open Source              (Linux New Media Award – CEBIT 2009) 2010 ­ A linguagem que mais cresceu (TIOBE)
  9. 9. Aplicações com PythonEncontramos o Python no :  Blender, Maya OpenOffice  Zope/Plone  Django BitTorrent  MoinMoin  Mailman  Chandler  Gimp  Gnumeric  Anaconda, Portage, Yum Trac oioio 9
  10. 10. Quem está usando Nasa, United Space Alliance  Google, Yahoo , YouTube Nokia, Nortel  RedHat, Gentoo  Apple  Disney  Philips   Los Alamos National Laboratory  ILM ­ Industrial Ligth & Magic SERPRO, PETROBRAS  Interlegis
  11. 11. Fator de sucesso
  12. 12. Quem usa Python ?"Python realiza um papel chave no ciclo de produção. Sem ele umprojeto do tamanho de Star Wars: Episode II seria complicado deser realizado. Desde a renderização das multidões, passando peloprocessamento em batch até a composição, Python junta todasestas coisas. Python está em todos os lugares na ILM.É usado para estender a capacidade de cada aplicação, damesma forma promovendo uma cola entre elas. CadaImagem de CG criada envolveu o uso de Python de algumaforma." disse o Tommy Burnette, Diretor Técnico da IndustrialLight & Magic.
  13. 13. Quem usa Python ?“Nós escolhemos Python porque provê a máxima produtividade, código claro e fácil de manter, forte and extensível (e crescente !)bibliotecas, e excelente capacidade de integração com outrasaplicações em qualquer plataforma.Python atingiu ou excedeu todas as necessidades que nós tínhamos. "disse Steve Waterbury, Software Group Leader, NASA STEP Testbed.
  14. 14. Na universidadePython substituiu o Scheme como linguagem introdutória emEngenharia e Ciência da computação no MIT.“Principalmente por conta de suas bibliotecas que implementaminterfaces para robótica” disse Gerald Jay Sussman um dos criadores doScheme quando perguntado porque do Python no MIT. oioio 14
  15. 15. Quem usa Python ?
  16. 16. Quem usa Python ?“ O Serpro criou uma fábrica virtual para desenvolver portais para ogoverno federal. As ferramentas ZOPE e PLONE, foram selecionadaspara o projeto, representaram uma economia inicial de R$ 10 milhõespara a Empresa em custo de aquisição de softwares proprietários além deum aumento visível de produtividade.”Sérgio Borba Cangiano – Diretor do SERPRO à Revista Tema (2004)
  17. 17. Testemunhos Autor: A Catedral e o Bazar Mantenedor do Jargon File (Hackers Dictionary) Contribuidor do GNU Emac, Linux, Fetchmail Frases famosas: "Havendo olhos suficientes, todos os erros são óbvios"Eric RaymondO que Eric pensa do Python:“Entre todas as linguagens que aprendi, Python é a que menos interfere entre mim e o problema. É a mais efetiva para traduzir pensamentos em ações.” “Python amplifica seu cérebro.”
  18. 18. Testemunhos Autor de Best Sellers: Autor de Best Sellers: “Thinking in C++” “Thinking in C++” “Thinking in Java” “Thinking in Java” Bruce EckelFrases Inspiradoras: ” Python: it fits your brain”Frases Inspiradoras: ” Python: it fits your brain” “ Life is Better Without Braces” “ Life is Better Without Braces” “ Life is short ! You need Python ! “ Life is short ! You need Python ! “ Python: Batteries Included” “ Python: Batteries Included”Palestra: Why I love PythonPalestra: Why I love Python “Python foi feito pra você “ “Python foi feito pra você “ “Python me ajuda a focar nos meus conceitos em vez de ficar brigando com a “Python me ajuda a focar nos meus conceitos em vez de ficar brigando com alinguagem.”linguagem.” “Eu não preciso digitar muito. Mas o que eu digito é o certo “ “Eu não preciso digitar muito. Mas o que eu digito é o certo “
  19. 19. De quem é o Python ? Python Software Foundation “The mission of the Python Software Foundation is to promote, protect, and advance the Python programming language, and to support and facilitate the growth of a diverse and international community of Python programmers.”
  20. 20. IntroduçãoFácil Aprendizado (VHLL)Fácil ManutençãoPossui uma extensa biblioteca padrãoInterpretada e interativaPossui uma poderosa estruturas de dados nativasDisponível com código aberto e livreInterface para outras Linguagens ( Lua, Java, C)Multi-plataformaÉ um canivete-suíço !!! oioio 20
  21. 21. MultiplataformaPresente nos Sistemas Operacionais: Windows: 9x, Me, 2K, XP Unix: HP­UX, Solaris (freqüentemente pré­instalada) Linux (freqüentemente pré­instalada) MacOs X (sempre pré­instalada) Nokia Série 60 Através de Interpretadores : CPython  Jython (máquina virtual Java) IronPython .NET (em desenvolvimento na Microsoft)
  22. 22. CaracterísticasInterpretadoModo InterativoTipagem Dinâmica forteVery High-Level Language (VHLL)“Glue Language” - usada para integrar sistemas distintosGrande quantidade de bibliotecas de objetosSintaxe estimula uma apresentação limpa do códigoOrientada a Objetos
  23. 23. Por que usar o Python ?Código é mais vezes lido do que escrito !Clareza na linguagem é fundamental para oaprendizado e para a manutenção do código.
  24. 24. Múltiplos Paradigmas SCRIPTS ESTRUTURADAPYTHON FUNCIONAL OO oioio 24
  25. 25. O interpretador>> python  [opções] [nome­arquivo­python]­c cmd : programa passado como string (cmd) na linha de comando­h : mensagem de ajuda­i  : executa programa e "cai" no prompt interativo­O : ativa otimizações­OO : mesmo que ­O, incluindo remoção de docstrings (documentação on­line)­t : avisa sobre inconsistências na tabulação­v : importação verborrágica­V : imprime número de versão
  26. 26. Palavras reservadasand del notassert for trybreak is exceptclass raise ifcontinue elif or from whileyield lambda execdef return importfinally else passin globalprint 29 palavras
  27. 27. Começando ... ­ Cada linha termina com ponto e vírgula (;) ou comum <enter > - Cada bloco de instruções é definido pelaidentação- Comentário em uma linha é definido pelo símbolotralha (#)- Comentário em mais e uma linha podemos usar aspastriplas para começar e terminar (“”” texto comentado“””)- Multi linha com o uso de barra invertida () Uma variável não é declarada, ela assume o tipoquando associada com um valor
  28. 28. Tipos básicos- Numérico : Decimal, Hexa (0x1a), long 1.0l, float – 1.0 ou 1.0e-3, complexo 1.0j- Strings : “oi”, oi, ”””oi dentro de outra”””- Tuplas : (1, “a”, 3.0)- Listas : [1,2,3,4]- Dicionários : {“DDD”: “21”, “Estado”:”RJ”}- Booleano : True ou False- Tipo Nulo : None
  29. 29. Controle de Fluxo Condicional :planetas = ["Marte", "Terra", "Venus", "Plutao","Saturno", "Jupiter"]if type(planetas) is list: print "Tenho uma Lista" Loop :for i in xrange(10): print i
  30. 30. Controle de Fluxo Enquanto :planetas = ["Marte", "Terra", "Venus", "Plutao","Saturno", "Jupiter"]conta = 0while planetas[conta] <> "Saturno": print planetas[conta] conta = conta + 1
  31. 31. Show me the code ... Tratando com texto a = “Hoje vai fazer sol “ pos = a.find(“vai) novo_a = a[1:1] outro_a = a[1:-1] a_maiusculo = a.upper() d = dict(zip([“um”, “dois”, “tres”], [1,2,3]))
  32. 32. Show me the code ... Alguns truques : x,y = y,x # Exemplo de swaplist comprehension : resultado=[x for x in xrange(50) if x%3 == 0]
  33. 33. FunçõesUma função pode retornar um ou mais objetos.Quanto aos parâmetros, podemos definir 5 tiposde funções : Caso 1- Função simples : def func_simples(): print “oi” return True func_simples()
  34. 34. FunçõesCaso 2 - Função com parâmetros definidos:def func_soma(a, b): c = a + b return ctotal = func_soma(1,3)
  35. 35. Funções Caso 3 - Função com parâmetros definidos,mas valores defaults: def func_soma(a, b=2): c = a + b return c total = func_soma(1,3) total = func_soma(2)
  36. 36. Funções Caso 4 - Função com quantidade de parâmetros variáveis:#entrada é uma tupla composta pelos valores passadosdef func_soma(*entrada): c = 0 for i in entrada: c = c + i return c total = func_soma(1,3) total = func_soma(2,3,4,5)
  37. 37. Funções  Caso 5 - Função com quantidade de parâmetrosvariáveis, mas nome de variáveis associadas:def func_trata(**entrada):# entrada é um dicionário {chave=valor} print entrada return Truetotal = func_trata(estado=”RJ”, cidade=”Vassouras”)   
  38. 38. FunçõesPodemos usar uma função como uma variável dentrode um dicionário. Desta forma podemos escolherentre várias opções de maneira muito simples : def func_um(): print “um” def func_dois(): print “dois” lista_funcoes = {“um”: func_um, “dois”: func_dois} lista_funcoes[“um”]()
  39. 39. Documentando     def fun_um(): “”” Descrição da função fun_um() “”” return No modo interativo : help(fun_um) Com um browser : Pydoc -p 123
  40. 40. MódulosPara permitir a chamada de outras funções,classes temos os seguintes comandos : import nome_módulo from nome_módulo import * from nome_módulo import nome_func from nome_módulo import nome_func as alias
  41. 41. MódulosPara permitir que um módulo importado não executeas rotinas que estejam fora de uma funçãoutilizamos o seguinte recursos : if __name__ == __main__: print “oi”Para definir um diretório como um conjunto dearquivos que serão importados basta colocar umarquivo (vazio) com este nome : __init__.py
  42. 42. IntrospecçãoDefinição : Capacidade da linguagem de identificarsuas próprias estruturas internas, tais como tipos,escopo das variáveis, métodos e atributos.• dir( obj ) - apresenta os métodos associados aoobjeto passado• type( obj ) - apresenta o tipo de um objeto.• help(obj ) - apresenta um resumo sobre o objetodocumentado.
  43. 43. __builtins__O módulo __builtins__ contém as funções disponíveis porpadrão quando se inicia o uso do Python. Temos : help, dir, type tuple, int, list, dict, float, long chr, ord len, sum, min, max, pow xrange open Códigos de Erro reduce, map, filter raw_input ... [ use o dir(__builtins__) para pesquisar mais.]
  44. 44. Tratamento de Errostry: <comandos>except expressão ,variável: <comandos se houve exceções>else: <comandos se não houve exceções>
  45. 45. Buscando os errosDebug :Usando o pdb para inserir um “breakpoint” no seu código: import pdb; pdb.set_trace()Uma vez no modo interativo você pode verificar todas asvariáveis, e usar os seguintes comandos : n – next, vai para a próxima linha s - step into, entra em uma sub-função ( se existir) b xx – define um novo breakpoint na linha xx c – continue l - list h – chama o help
  46. 46. Orientação a ObjetosSintaxe básica :class segunda(primeira): def __init__(self, p1, p2): self.nome = p1 Self.ano = p2 def hello(self): print “Hello, %s” % self.nomemeu_obj = segunda(“Luiz”, 40)meu_obj.hello()
  47. 47. Baterias IncluidasVários módulos estão disponíveis, entre elestemos : SO: os, sys, shutils Dados: csv, pickle, shelve, zipfile Rede: email, ftplib, urllib2, urlparse,SimpleHttpServer Ferramentas Gerais : datetime, numeric,time, re,md5
  48. 48. Adicionando mais baterias Bancos de Dados : ODBC, MySQL, Postgres, Oracle, SQLServer, sqlite, gadfly, ZODB/Durus Rede : Twisted, asyncore, htmllib, SimpleHTTPServer, urllib, ftplib, poplib, smtplib, telnetlibGUI : Tkinter, wxPython, PyGTk, PyQt, PyKDE, Pythonwin Ciência : NumPY, SciPy, BioPython, MatPlotLIbProcessamento. de Imagens : PIL, PythonMagick, Gimp-pythonXML : PyXML, 4Suite, ElementTree, RDFLib, CwmWeb : ZOPE, CherryPy, Webware, Quixote, PSP, mod_python,Nevow, Django, TurboGears, Pylons
  49. 49. Será que existem livros de Python?
  50. 50. Dicas Inportantes How to think like aa Python Cookbook Python Cookbook How to think like Alex Martelli, computer scientist computer scientist Alex Martelli, Allen Downey, Anna Ravenscroft ee Anna Ravenscroft Allen Downey, David Ascher Jeff Elkner Jeff Elkner David Ascher Dive into Python Dive into Python and Chris Meyers and Chris Meyers Aprendendo Python Aprendendo Python Mark Pilgrim Mark Pilgrim Livre pra download Livre pra download David Ascher ee David AscherLivre pra download Livre pra download Mark Lutz Mark Lutz
  51. 51. Referências Livres Python para desenvolvedores Luiz Eduardo Borges Livre para Download Livre para Download Licença Creative Commons Licença Creative Commons http://ark4n.wordpress.com/ http://ark4n.wordpress.com/
  52. 52. Referências a mais Computação Científica com Python Flávio Coelho http://www.lulu.com/content/616789 http://www.lulu.com/content/616789
  53. 53. www.python.org
  54. 54. www.python.org.br Documentação Documentação Howtos Howtos CookBook CookBook Muitos links Muitos links Notícias Notícias
  55. 55. LinksPython - python.orgPythonBrasil - www.python.org.brPythonRio - www.pythonrio.orgAPyB - associacao.pythonbrasil.org/Lista PythonRio - br.groups.yahoo.com/group/pythonrio/Lista PythonBrasil - br.groups.yahoo.com/group/python-brasil/PyconBrasil 2009 - http://www.pythonbrasil.org.br/ 55
  56. 56. Alguma pergunta ?
  57. 57. Luiz Guilherme F. AldabaldeE-mail ; lg.aldabalde@gmail.com luiz.aldabalde@serpro.gov.brTwitter : @aldabalde Dedicado a Dorneles Tremea Venha fazer parte desta comunidade

×