• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Porque Python? Semana Acadêmica UTFPR 2011
 

Porque Python? Semana Acadêmica UTFPR 2011

on

  • 531 views

 

Statistics

Views

Total Views
531
Views on SlideShare
531
Embed Views
0

Actions

Likes
0
Downloads
6
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Porque Python? Semana Acadêmica UTFPR 2011 Porque Python? Semana Acadêmica UTFPR 2011 Presentation Transcript

    • Por que Python? 10 raz˜es para aprender Python o Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e 23 de agosto de 2011Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
    • Python Brasil[7]Encontro brasileiro da comunidade Python Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
    • Uma breve introdu¸˜o cadesse que vos fala 1 Mestre em Ciˆncia da Computa¸˜o pela UFSC e ca 2 Professor desde 1995 1 Usu´rio Unix desde 1992 e Linux desde 1999 a 2 Entusiasta de software de c´digo aberto o 1 Membro da comunidade Python desde 2004 2 Membro-fundador da Associa¸˜o Python Brasil (APyB) ca 3 Membro da diretoria da APyB Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
    • Uma breve introdu¸˜o caSobre a linguagem 1 Criada por Guido van Rossum em 1991 2 Origem do nome: grupo de humoristas Monty Python 3 Linguagem de alt´ ıssimo n´ (VHLL) ıvel 4 Sintaxe simples e f´cil de ser assimilada a 5 Orientada ` objetos, estruturada e funcional a 6 Tipagem forte e dinˆmica a 7 Multiplataforma 8 Interpretada 9 Ambiente interativo10 Licen¸a compat´ com a GPL c ıvel Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
    • 1 - Python ´ legal e 1 Simplesarquivo = open ( " emails . txt " )dominios = {} 2 Leg´ ıvelfor contato in arquivo : resto , dominio = contato . split ( " @ " ) 3 Clara dominio = dominio . replace ( " r n " , " " ) 4 Simplificada if dominio in dominios : dominios [ dominio ] += 1 5 Sofisticada else : dominios [ dominio ] = 1 6 Poderosaarquivo . close ()arquivo = open ( " dominios . txt " , " w " )for dominio in dominios . keys (): registro = " % s ;% s n " %( dominio , dominios [ dominio ]) arquivo . write ( registro )arquivo . close () Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
    • 2 - Python j´ vem com os acess´rios a o Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
    • 3 - Python ´ utilizado l´ fora e a Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
    • 3 - Python ´ utilizado l´ fora e a Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
    • 3 - Python ´ utilizado l´ fora e a Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
    • 4 - Python ´ utilizado aqui dentro e LZT: AutoSystem Instituto Nokia de Tecnologia InVesalius Async: Stoq Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
    • 5 - Python ´ utilizado na web ao redor do mundo e Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
    • 5 - Python ´ utilizado na web ao redor do mundo e Diversos frameworks Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
    • 6 - Python ´ utilizado na web aqui no Brasil e globo.com vericia.com uiner.com brasil.gov.br Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
    • 6 - Python ´ utilizado na web aqui no Brasil e ucs.br certsign.com.br serpro.gov.br atepassar.com.br Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
    • 7 - Tem emprego para programadores Python python.org/community/jobs empregos.trovitbrasil.com.br/python twitter.com/python_jobs google.com.br/intl/en/jobs/ Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
    • 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 ){ P y _ S e tPr ogra mNa me ( argv [0]); Py_Initialize (); initspam (); return 1; } Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
    • 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 . s how Mes sage Dia log ( None , " Soma : % d " % soma ) Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
    • 8 - Python conversa com as outras linguagensimport clrclr . 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 O n M s g B uttonClick ( self , * args ): MessageBox . Show ( self . txtMessage . Text , " Message " )Application . Run ( FormV3 ()) Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
    • 8 - Python conversa com as outras linguagens Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
    • 9 - Python ´ multiplataforma e At´ aqui, nada de surpreendente, certo? e Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
    • 9 - Python ´ multiplataforma e XO/OLPC Grande parte do projeto ´ desenvolvida em Python, incluindo: e 1 A interface gr´fica Sugar a 2 V´rias aplica¸˜es e jogos a co 3 O sistema de arquivos Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
    • 9 - Python ´ multiplataforma e Dispositivos m´veis o Maemo Iphone Android Symbian Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
    • 10 - Python ´ multiparadigma e Programa¸˜o Estruturada ca 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 Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
    • 10 - Python ´ multiparadigma e Programa¸˜o Orientada a Objetos caclass Fracao ( object ): python -i poo - fracoes . py def __mdc ( self , m , n ): >>> a = Fracao (5 ,7) if m % n == 0: >>> b = Fracao (3 ,4) return n >> r1 = a * b else : >>> print r1 return self . __mdc (n , m % n ) 15/28 >>> c = Fracao (3 ,5) def __init__ ( self , numerador , denominador =1): >> r2 = a * c g = self . __mdc ( numerador , denominador ) >>> print r2 self . numerador = numerador / g 3/7 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__ Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
    • 10 - Python ´ multiparadigma e Programa¸˜o Funcional ca # 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))) # F i b o n a c c i : 10 p r i m e i r o s numeros print map ( lambda x , f = lambda x , f :( x <=1) or ( f (x -1 , f )+ f (x -2 , f )): f (x , f ) , range (10)) # C o n j u n t o de M a n d e l b r o t print ( lambda Ru , Ro , Iu , Io , IM , Sx , Sy : reduce ( lambda x , y : x +y , map ( lambda y , Iu = Iu , Io = Io , Ru = Ru , Ro = Ro , Sy = Sy , L = lambda yc , Iu = Iu , Io = Io , Ru = Ru , Ro = Ro , i = IM , Sx = Sx , Sy = Sy : reduce ( lambda x , y : x +y , map ( lambda x , xc = Ru , yc = yc , Ru = Ru , Ro = Ro , i =i , Sx = Sx , F = lambda xc , yc ,x ,y ,k , f = lambda xc , yc ,x ,y ,k , f :( k <=0) or ( x * x + y * y >=4.0) or 1+ f ( xc , yc , x *x - y * y + xc ,2.0* x * y + yc ,k -1 , f ): f ( xc , yc ,x ,y ,k , f ): chr ( 64+ F ( Ru + x *( Ro - Ru )/ Sx , yc ,0 ,0 , i )) , range ( Sx ))): L ( Iu + y *( Io - Iu )/ Sy ) , range ( Sy ))))( -2.1 , 0.7 , -1.2 , 1.2 , 30 , 80 , 24) Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
    • Bˆnus 1: 11 - Python ´ boa como primeira linguagem o eaprenda a programar com Python 1 Experiˆncia de ensino desde 2004 e 2 V´rios iniciativas no Brasil e no mundo a 3 MIT copiou nossa id´ia :) e 4 Faz bem ` auto-estima do iniciante a 5 Uso pode ser extrapolado para outras mat´rias e Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
    • Bˆnus 2: 12 - Existe uma comunidade forte ovocˆ tem com quem contar e 1 Lista python-brasil: +3650 membros, 500 mensagens/mˆs. e 2 Associa¸˜o Python Brasil: amadurecimento da comunidade ca 3 PythonBrasil[7]: S˜o Paulo a 4 FISL, Latinoware: trilhas de Python 5 Grupos de Usu´rios, PythOn Campus, #horaextra a Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
    • Dorneles Trem´a: 1979 - 2011 eMarco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
    • 1 Estes slides: slideshare.com/marrcandre 2 google*: marcoandre@gmail.com 3 twitter: @marrcandre 4 blog: marrcandre.blogspot.com random.choice([’pergunta’, ’d´vida’, ’discuss˜o’]) u aMarco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?