porque python - pythonbrasil[6]

of 26 /26
Por que Python? 10 raz˜ oes para aprender Python Marco Andr´ e Lopes Mendes <[email protected]> 21 de outubro de 2010 Marco Andr´ e Lopes Mendes <[email protected]> Por que Python?

Author: marco-mendes

Post on 11-Jun-2015

618 views

Category:

Technology


2 download

Embed Size (px)

TRANSCRIPT

  • 1. Por que Python? 10 razoes para aprender Python Marco Andre Lopes Mendes 21 de outubro de 2010 Marco Andre Lopes Mendes Por que Python?

2. Uma breve introducao desse que vos fala 1 Mestre em Ciencia da Computacao pela UFSC 2 Professor desde 1995 1 Usuario Unix desde 1992 e Linux desde 1999 2 Entusiasta de software de codigo aberto 1 Membro da comunidade Python desde 2004 2 Membro-fundador da Associacao Python Brasil (APyB) 3 Membro da diretoria da APyB Marco Andre Lopes Mendes Por que Python? 3. Uma breve introducao Sobre a linguagem 1 Criada por Guido van Rossum em 1991 2 Origem do nome: grupo de humoristas Monty Python 3 Linguagem de altssimo nvel (VHLL) 4 Sintaxe simples e facil de ser assimilada 5 Orientada `a objetos, estruturada e funcional 6 Tipagem forte e dinamica 7 Multiplataforma 8 Interpretada 9 Ambiente interativo 10 Licenca compatvel com a GPL Marco Andre Lopes Mendes Por que Python? 4. 1 - Python e legal arquivo = open("emails.txt") dominios = {} for contato in arquivo: resto , dominio = contato.split("@") dominio = dominio.replace("rn", "") if dominio in dominios: dominios[dominio] += 1 else: dominios[dominio] = 1 arquivo.close () arquivo = open("dominios.txt", "w") for dominio in dominios.keys (): registro = "%s;%sn" %( dominio , dominios[dominio ]) arquivo.write(registro) arquivo.close () 1 Simples 2 Legvel 3 Clara 4 Simplicada 5 Sosticada 6 Poderosa Marco Andre Lopes Mendes Por que Python? 5. 2 - Python ja vem com os acessorios Marco Andre Lopes Mendes Por que Python? 6. 3 - Python e utilizado la fora Marco Andre Lopes Mendes Por que Python? 7. 3 - Python e utilizado la fora Marco Andre Lopes Mendes Por que Python? 8. 4 - Python e utilizado aqui dentro LZT: AutoSystem Async: Stoq Instituto Nokia de Tecnologia InVesalius Marco Andre Lopes Mendes Por que Python? 9. 5 - Python e utilizado na web ao redor do mundo Marco Andre Lopes Mendes Por que Python? 10. 5 - Python e utilizado na web ao redor do mundo Diversos frameworks Marco Andre Lopes Mendes Por que Python? 11. 6 - Python e utilizado na web aqui no Brasil globo.com uiner.com vericia.com brasil.gov.br Marco Andre Lopes Mendes Por que Python? 12. 6 - Python e utilizado na web aqui no Brasil ucs.br serpro.gov.br certsign.com.br atepassar.com.br Marco Andre Lopes Mendes Por que Python? 13. 7 - Tem emprego para programadores Python python.org/community/jobs twitter.com/python_jobs empregos.trovitbrasil.com.br/python google.com.br/intl/en/jobs/ Marco Andre Lopes Mendes Por que Python? 14. 8 - Python conversa com as outras linguagens C e C++ void initspam(void ); static PyObject * spam_system (PyObject *self , PyObject *args ); static PyObject * spam_system (self , args) PyObject *self; PyObject *args; { char *orden; int sts; if (! PyArg_ParseTuple (args , "s", &orden )) return NULL; sts = system(orden ); return Py_BuildValue ("i", sts ); } static PyMethodDef SpamMethods [] = { {"system", spam_system , METH_VARARGS }, {NULL , NULL} }; void initspam (){( void) Py_InitModule ("spam", SpamMethods );} int main(int argc , char ** argv ){ Py_SetProgramName (argv [0]); Py_Initialize (); initspam (); return 1; } Marco Andre Lopes Mendes Por que Python? 15. 8 - Python conversa com as outras linguagens import javax.swing as libswing pnumero = libswing.JOptionPane. showInputDialog ("Digite um Numero Inteiro: ") snumero = libswing.JOptionPane. showInputDialog ("Digite um Numero Inteiro: ") soma = int(pnumero) + int(snumero) libswing. JOptionPane . showMessageDialog (None , "Soma: %d " % soma) Marco Andre Lopes Mendes Por que Python? 16. 8 - Python conversa com as outras linguagens import clr clr. AddReference ("System.Windows.Forms") from System.Windows.Forms import * class FormV3(Form ): def __init__(self ): self.Text = Hello World self.Controls.Add(Label(Text=Enter Message:)) self.txtMessage = TextBox(Left =100) self.Controls.Add(self.txtMessage) msgButton = Button(Text=Message , Left =20, Top =25) msgButton.Click += self. OnMsgButtonClick self.Controls.Add(msgButton) def OnMsgButtonClick (self , *args ): MessageBox.Show(self.txtMessage.Text ,"Message") Application.Run(FormV3 ()) Marco Andre Lopes Mendes Por que Python? 17. 8 - Python conversa com as outras linguagens Marco Andre Lopes Mendes Por que Python? 18. 9 - Python e multiplataforma Ate aqui, nada de surpreendente, certo? Marco Andre Lopes Mendes Por que Python? 19. 9 - Python e multiplataforma XO/OLPC Grande parte do projeto e desenvolvida em Python, incluindo: 1 A interface graca Sugar 2 Varias aplicacoes e jogos 3 O sistema de arquivos Marco Andre Lopes Mendes Por que Python? 20. 9 - Python e multiplataforma Dispositivos moveis Maemo Android Iphone Symbian Marco Andre Lopes Mendes Por que Python? 21. 10 - Python e multiparadigma Programacao Estruturada import random def jogaDados (): dado1 = random.randrange (1 ,7) dado2 = random.randrange (1 ,7) somaTemp = dado1 + dado2 print "Jogador tirou %d + %d = %d" %(dado1 ,dado2 ,somaTemp) return somaTemp soma = jogaDados () if soma == 7 or soma == 11: situacaoJogo = "GANHOU" elif soma == 2 or soma == 3 or soma == 12: situacaoJogo = "PERDEU" else: situacaoJogo = "CONTINUA" meuPonto = soma print "Ponto: ", meuPonto while situacaoJogo == "CONTINUA": soma = jogaDados () if soma == meuPonto: situacaoJogo = "GANHOU" elif soma == 7: situacaoJogo = "PERDEU" if situacaoJogo == "GANHOU": print "Jogador ganha" else: print "Jogador perde" Marco Andre Lopes Mendes Por que Python? 22. 10 - Python e multiparadigma Programacao Orientada a Objetos class Fracao(object ): def __mdc(self , m, n): if m % n == 0: return n else: return self.__mdc(n, m%n) def __init__(self , numerador , denominador =1): g = self.__mdc(numerador , denominador ) self.numerador = numerador / g self.denominador = denominador / g def __repr__(self ): return "%d/%d" %( self.numerador , self.denominador) def __mul__(self ,outro ): if isinstance(outro , int ): outro = Fracao(outro) return Fracao(self.numerador * outro.numerador , self.denominador * outro.denominador) __rmul__ = __mul__ python -i poo -fracoes.py >>> a = Fracao (5 ,7) >>> b = Fracao (3 ,4) >> r1 = a * b >>> print r1 15/28 >>> c = Fracao (3 ,5) >> r2 = a * c >>> print r2 3/7 Marco Andre Lopes Mendes Por que Python? 23. 10 - Python e multiparadigma Programacao Funcional # Primos menores que 1000 print filter(None ,map(lambda y:y*reduce(lambda x,y:x*y!=0, map(lambda x,y=y:y%x,range (2,int(pow(y ,0.5)+1))) ,1) , range (2 ,1000))) # Fibonacci : 10 primeiros numeros print map(lambda x,f=lambda x,f:(x