SlideShare uma empresa Scribd logo
1 de 47
Baixar para ler offline
é uma linguagem
                         interpretada, interativa,
                         funcional, orientada a objetos,
                         dinamicamente tipada e com
                         gerenciamento automático de
                         memória
                         Similar em certos aspectos a
                         Perl, Ruby, Scheme, Smalltalk
                         e Tcl

Prof. Fabio Alexandre Spanhol, M.Sc.
                                                      2
Prof. Fabio Alexandre Spanhol, M.Sc.
                                       3
Guido van Rossum é referido
                                  pela comunidade python,
                                  desde 1995, como Benevolent
                                  Dictator For Life (BDFL)
                                  ◦ Desde dezembro de 2005 Guido
                                    trabalha na Google, dedicando
                                    50% do seu tempo com a
                                    linguagem
                                  ◦ www.python.org/~guido
                                  ◦ neopythonic.blogspot.com/




Prof. Fabio Alexandre Spanhol, M.Sc.
                                                                    4
Não veio da cobra!
                                       ◦ "Over six years ago, in December 1989,
                                        I was looking for a "hobby"
                                        programming project that would keep
                                        me occupied during the week around
                                        Christmas. My office ... would be
                                        closed, but I had a home computer,
                                        and not much else on my hands. I
                                        decided to write an interpreter for the
                                        new scripting language I had been
                                        thinking about lately: a descendant of
                                        ABC that would appeal to Unix/C
                                        hackers. I chose Python as a working
                                        title for the project, being in a slightly
                                        irreverent mood (and a big fan of
                                        Monty Python´s Flying Circus)”.

Prof. Fabio Alexandre Spanhol, M.Sc.
                                                                                 5
Prof. Fabio Alexandre Spanhol, M.Sc.
                                       6
NADA!
Python foi desenvolvido como um projeto
open source, sem fins lucrativos e
gerenciado pela PSF (Python Software
Foundation)




Prof. Fabio Alexandre Spanhol, M.Sc.
                                          7
Para obter o interpretador Python
acessar
http://www.python.org/download/
Versões
◦ Python 2.7.1 foi liberada em 27 de
  novembro de 2010
◦ Python 3.2* foi liberada em 20 de fevereiro
  de 2011




Prof. Fabio Alexandre Spanhol, M.Sc.
                                                8
http://www.python.org/about/success/
◦ Google
◦ NASA
◦ Yahoo
◦ InfoSeek
◦ MCI Worldcom
◦ IBM
◦ Higway
◦ Industrial Light and Magic
◦ AstraZeneca
◦ Honeywell
◦ ...

 Prof. Fabio Alexandre Spanhol, M.Sc.
                                        9
Governo Federal
Petrobras
Serpro
Embratel
Globo.com
StarOne
Conectiva
CPqD
Async
Haxent
UTFPR
...

Prof. Fabio Alexandre Spanhol, M.Sc.
                                       10
Vários projetos da comunidade Software Livre
◦ Blender
◦ OpenOffice
◦ Zope/Plone
◦ MoinMoin
◦ Mailman
◦ BitTorrent
◦ Chandler
◦ Gimp
◦ Plone
◦ Django
◦ OpenERP
◦ inVesalius
Prof. Fabio Alexandre Spanhol, M.Sc.
                                               11
Web e Internet
Database
GUIs
Científico e processamento numérico
Educação
Programação de rede
Construção e teste de software
Desenvolvimento de jogos e
renderização 3D
Onde mais sua imaginação mandar!

Prof. Fabio Alexandre Spanhol, M.Sc.
                                       12
Prof. Fabio Alexandre Spanhol, M.Sc.
                                       13
Unix: HP-UX, Solaris ...
Linux (freqüentemente pré-instalada)
Mac OSX (sempre pré-instalada)
Windows: 9x, ME, 2K, XP, Vista, Seven
(ctypes, win32all)
Nokia Série 60 e Maemo
PalmOS (PipPy)




Prof. Fabio Alexandre Spanhol, M.Sc.
                                        14
Compilação Híbrida
como     Java,    programas     Python    são
compilados, porém para uma linguagem
intermediária, destinada a um interpretador
◦ Tal como Java, isso isola Python de muitas das
  excentricidades das máquinas reais na qual ele
  roda, provendo um nível de portabilidade
  equivalente a Java




Prof. Fabio Alexandre Spanhol, M.Sc.
                                                   15
De altíssimo nível e
                                       poderosa
                                       Elegante, com sintaxe
                                       simples e concisa
                                       Fácil de aprender, “cabe”
                                       no seu cérebro !
                                       Multiparadigma:
                                       Funcional, Procedural e
                                       Orientado a Objetos
                                       Possui suporte nativo a
                                       estruturas de dados
                                       complexas                   16
Prof. Fabio Alexandre Spanhol, M.Sc.
Prof. Fabio Alexandre Spanhol, M.Sc.
                                       17
Prof. Fabio Alexandre Spanhol, M.Sc.
                                       18
Prof. Fabio Alexandre Spanhol, M.Sc.
                                       19
Prof. Fabio Alexandre Spanhol, M.Sc.
                                       20
Extensa biblioteca
                                       padrão
                                       Um módulo para o que
                                       você precisar
                                       sys, random, re,
                                       datetime, calendar, csv,
                                       os, webbrowser, string,
                                       urlib, Tkinter, codecs,
                                       pickle, types, array,
                                       mutex, queue, zlib, gzip,
                                       md5, thread, socket,
                                       email, xml.dom, locale,
                                                                   21
Prof. Fabio Alexandre Spanhol, M.Sc.
                                       etc.
Prof. Fabio Alexandre Spanhol, M.Sc.
                                       22
29 palavras reservadas
◦ (Java tem 52 e C# 77)
and                   exec      not
assert                finally   or
break                 for       pass
class                 from      print
Continue              global    raise
def                   if        return
del                   import    try
elif                  in        while
else                  is        yeld
except Spanhol,lambda
Prof. Fabio Alexandre M.Sc.
                                         23
IDLE
interpretador




Prof. Fabio Alexandre Spanhol, M.Sc.
                                       24
Cython
◦ onde existir um compilador C ISO/IEC 9899:1990
Jython
◦ máquina virtual Java
PyPy
◦ Python implementado em Python
Python for .NET
◦ [Brian Lloyd], IronPython (da M$)
Python for Delphi
LunaticPython
◦ interoperando com Lua
Ruby/Python
◦ em Ruby importar módulos Python)

Prof. Fabio Alexandre Spanhol, M.Sc.
                                                   25
Python é case-sensitive
Cada linha é delimitada por enter
Tipagem forte e dinâmica
◦ Não há declaração de variáveis
Comentários iniciam por #
Comentários em várias linhas delimitados
por aspas triplas “””
Alguns operadores
◦    Atribuição: =
◦    Aritméticos: +, -, *, /, **,//,%
◦    Relacionais: <,>,>=,<=, ==,!=,<>,is, in
◦    Lógicos: and,or,not
◦    Bitwise: |,^,&,>>,<<,~


    Prof. Fabio Alexandre Spanhol, M.Sc.
                                               26
A estrutura dos blocos é definida pela
indentação
◦ Não misturar tabulações com espaços


    for i in range(25):
       if i%3 == 0:
          print i
          if i%5 == 0:
             print "Bingo!"
       print “-”*5




Prof. Fabio Alexandre Spanhol, M.Sc.
                                         27
Inteiros
◦ x = 10
◦ y = 56859898958711346465165798798715654000000000000**2
◦ z = y + x
   3233048109594863662031421586618163610229539807267781773950479
    944647716000000000000000000000010L
Ponto flutuante
◦ f = 85.99984
Booleanos
◦ True e False
Strings
◦    Delimitadas por aspas ou apóstrofo
◦    s = “python”
◦    s2 = ‘language’
◦    s3 = “%s %s” % (s,s2)



    Prof. Fabio Alexandre Spanhol, M.Sc.
                                                               28
Usando type
>>> x = 2
>>> print type(x)
<type 'int'>
>>> x = "dois"
>>> print type(x)
<type 'string'>
>>> x = 10.2
>>> print type(x)
<type 'float'>
>>> x=round
>>> print x
<built-in function round>



 Prof. Fabio Alexandre Spanhol, M.Sc.
                                        29
Tuplas
◦ Imutáveis
◦ (‘Fabio’,32, False, 92.5,186)
Listas
◦ mutáveis
◦ [‘Fabio’,32, False, 92.5,186]
Dicionários
◦ Chaves com valores associados
◦ refeicoes = {"café" : “cereal com leite e mel", "almoço" :
  "macarrão carbonara“,"jantar" : "sopa de champignon"}
◦ print refeicoes["almoço"]
Conjuntos
◦ Não permite elementos duplicados
◦ set([1,2,3,4,5,6,8,9,8,1,2,7,1,2,5])
◦ Retorna
  set([1, 2, 3, 4, 5, 6, 7, 8, 9])


Prof. Fabio Alexandre Spanhol, M.Sc.
                                                               30
Entrada com raw_input
◦ nome=raw_input("Qual o seu nome?")
◦ idade=int(raw_input(“Qual a sua idade?”)


Saída com print
◦ print nome
◦ print "Ola %s, sua nota:%10.2f" % (nome,nota)




Prof. Fabio Alexandre Spanhol, M.Sc.
                                                  31
if
if (expressao):
   bloco
[elif (expressao):
   bloco]
[else:
   bloco]




  Prof. Fabio Alexandre Spanhol, M.Sc.
                                         32
exemplo
s = raw_input(“número entre 0 e 100? ")
n = int(s)
if not 0 < n < 100:
   print "Número inválido."
if n % 2 == 0:
   print "Número Par"
else:
   print "Número Ímpar"




  Prof. Fabio Alexandre Spanhol, M.Sc.
                                          33
for
for variavel in sequencia:
   bloco
[else:
   bloco]
 while
while (expressao):
   bloco
[else:
   bloco]


 Prof. Fabio Alexandre Spanhol, M.Sc.
                                        34
Exemplo
#encoding: utf-8
cores=[‘verde',‘amarelo',‘azul',‘branco']
for cor in cores:
 print cor ' é minha cor favorita!'




  Prof. Fabio Alexandre Spanhol, M.Sc.
                                            35
Modularizam o código
#encoding: utf-8

#função que escreve n termos da série de fibonacci
def fibo(n):
    a,b,t=0,1,1
    while t <= n:
        print b
        a, b = b, a + b
        t+=1
x=int(raw_input("Quantos termos?"))
fibo(x)




  Prof. Fabio Alexandre Spanhol, M.Sc.
                                                     36
Prof. Fabio Alexandre Spanhol, M.Sc.
                                       37
Não vamos complicar!




Prof. Fabio Alexandre Spanhol, M.Sc.
                                       38
Prof. Fabio Alexandre Spanhol, M.Sc.
                                       39
Prof. Fabio Alexandre Spanhol, M.Sc.
                                       40
Prof. Fabio Alexandre Spanhol, M.Sc.
                                       41
Inverter a ordem das cartas
◦ baralho.reverse()
Tirar a carta do topo
◦ baralho.pop()
Adicionar 4 coringas
◦ baralho.extend([‘Coringa’]*4)
Colocar em ordem
◦ baralho.sort()
  Pelo número de letras:
   baralho.sort(key=len)




 Prof. Fabio Alexandre Spanhol, M.Sc.
                                        42
Prof. Fabio Alexandre Spanhol, M.Sc.
                                       43
Também tem!
                  Você pode fazer programação
                  Funcional sem Lost in Stupid
                  Parenthesis (LISP) 




Prof. Fabio Alexandre Spanhol, M.Sc.
                                                 44
Prof. Fabio Alexandre Spanhol, M.Sc.
                                       45
Prof. Fabio Alexandre Spanhol, M.Sc.
                                       46
faspanhol@gmail.com

                                         @_photon_


                www.slideshare.net/_photon_

Prof. Fabio Alexandre Spanhol, M.Sc.
                                                        47

Mais conteúdo relacionado

Semelhante a Python em

Paradigmas de Linguagens de Programação
Paradigmas de Linguagens de ProgramaçãoParadigmas de Linguagens de Programação
Paradigmas de Linguagens de ProgramaçãoFabio Spanhol
 
Python Training #1 - ed4
Python Training #1 - ed4Python Training #1 - ed4
Python Training #1 - ed4Fabio Spanhol
 
Automação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com PythonAutomação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com PythonFabio Spanhol
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO ILIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO IOs Fantasmas !
 
Python Training #0.5 ed. 7
Python Training #0.5 ed. 7Python Training #0.5 ed. 7
Python Training #0.5 ed. 7Fabio Spanhol
 
Palestra 01
Palestra 01Palestra 01
Palestra 01mbcleao
 
O modelo htm e sua aplicação no processamento de linguagem natural
O modelo htm e sua aplicação no processamento de linguagem naturalO modelo htm e sua aplicação no processamento de linguagem natural
O modelo htm e sua aplicação no processamento de linguagem naturalFelipe Rayel
 
Processamento Automático da Língua Portuguesa - Campus Party Br 6
Processamento Automático da Língua Portuguesa - Campus Party Br 6Processamento Automático da Língua Portuguesa - Campus Party Br 6
Processamento Automático da Língua Portuguesa - Campus Party Br 6William Colen
 
Apresentação lazarus flisol
Apresentação lazarus flisolApresentação lazarus flisol
Apresentação lazarus flisolCícero Rocha
 
Linguagensdeprogramao 100611235520-phpapp01
Linguagensdeprogramao 100611235520-phpapp01Linguagensdeprogramao 100611235520-phpapp01
Linguagensdeprogramao 100611235520-phpapp01Romário santos
 
Aula 01 python
Aula 01 pythonAula 01 python
Aula 01 pythonTiago
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programaçãoessa
 
The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010Luiz Aldabalde
 
Python: A Arma Secreta do Cientista de Dados
Python: A Arma Secreta do Cientista de DadosPython: A Arma Secreta do Cientista de Dados
Python: A Arma Secreta do Cientista de DadosRodrigo Senra
 
Aula 08LingProgrMauricio.pdf
Aula 08LingProgrMauricio.pdfAula 08LingProgrMauricio.pdf
Aula 08LingProgrMauricio.pdfJadna Almeida
 

Semelhante a Python em (20)

Paradigmas de Linguagens de Programação
Paradigmas de Linguagens de ProgramaçãoParadigmas de Linguagens de Programação
Paradigmas de Linguagens de Programação
 
Python brasil[6]
Python brasil[6]Python brasil[6]
Python brasil[6]
 
Python Training #1 - ed4
Python Training #1 - ed4Python Training #1 - ed4
Python Training #1 - ed4
 
Automação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com PythonAutomação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com Python
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO ILIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
 
Python Training #0.5 ed. 7
Python Training #0.5 ed. 7Python Training #0.5 ed. 7
Python Training #0.5 ed. 7
 
Palestra 01
Palestra 01Palestra 01
Palestra 01
 
O modelo htm e sua aplicação no processamento de linguagem natural
O modelo htm e sua aplicação no processamento de linguagem naturalO modelo htm e sua aplicação no processamento de linguagem natural
O modelo htm e sua aplicação no processamento de linguagem natural
 
Processamento Automático da Língua Portuguesa - Campus Party Br 6
Processamento Automático da Língua Portuguesa - Campus Party Br 6Processamento Automático da Língua Portuguesa - Campus Party Br 6
Processamento Automático da Língua Portuguesa - Campus Party Br 6
 
Apresentação lazarus flisol
Apresentação lazarus flisolApresentação lazarus flisol
Apresentação lazarus flisol
 
Linguagensdeprogramao 100611235520-phpapp01
Linguagensdeprogramao 100611235520-phpapp01Linguagensdeprogramao 100611235520-phpapp01
Linguagensdeprogramao 100611235520-phpapp01
 
Linguagem Python
Linguagem PythonLinguagem Python
Linguagem Python
 
Aula 01 python
Aula 01 pythonAula 01 python
Aula 01 python
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 
Phyton
PhytonPhyton
Phyton
 
The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010
 
Isc aula 7
Isc   aula 7Isc   aula 7
Isc aula 7
 
Python: A Arma Secreta do Cientista de Dados
Python: A Arma Secreta do Cientista de DadosPython: A Arma Secreta do Cientista de Dados
Python: A Arma Secreta do Cientista de Dados
 
Setecseminario gravata
Setecseminario gravataSetecseminario gravata
Setecseminario gravata
 
Aula 08LingProgrMauricio.pdf
Aula 08LingProgrMauricio.pdfAula 08LingProgrMauricio.pdf
Aula 08LingProgrMauricio.pdf
 

Mais de Fabio Spanhol

Classificação Automatizada de Câncer de Mama - Imagens Histopatológicas
Classificação Automatizada de Câncer de Mama - Imagens HistopatológicasClassificação Automatizada de Câncer de Mama - Imagens Histopatológicas
Classificação Automatizada de Câncer de Mama - Imagens HistopatológicasFabio Spanhol
 
Quem Tem Medo do Terminal?
Quem Tem Medo do Terminal?Quem Tem Medo do Terminal?
Quem Tem Medo do Terminal?Fabio Spanhol
 
Aprendizado Profundo & CNNs
Aprendizado Profundo & CNNsAprendizado Profundo & CNNs
Aprendizado Profundo & CNNsFabio Spanhol
 
Python Training #1, ed. 6
Python Training #1, ed. 6Python Training #1, ed. 6
Python Training #1, ed. 6Fabio Spanhol
 
Python Training #1 - ed5
Python Training #1 - ed5Python Training #1 - ed5
Python Training #1 - ed5Fabio Spanhol
 
Linguagem C 01 - Tópicos Introdutórios
Linguagem C 01 - Tópicos IntrodutóriosLinguagem C 01 - Tópicos Introdutórios
Linguagem C 01 - Tópicos IntrodutóriosFabio Spanhol
 
ENEM - Exame Nacional do Ensino Médio
ENEM - Exame Nacional do Ensino MédioENEM - Exame Nacional do Ensino Médio
ENEM - Exame Nacional do Ensino MédioFabio Spanhol
 
Elaboração e Gerenciamento de Projetos
Elaboração e Gerenciamento de Projetos Elaboração e Gerenciamento de Projetos
Elaboração e Gerenciamento de Projetos Fabio Spanhol
 
XML-RPC: Tópicos Introdutórios
XML-RPC: Tópicos IntrodutóriosXML-RPC: Tópicos Introdutórios
XML-RPC: Tópicos IntrodutóriosFabio Spanhol
 
Gestão de Projetos com MS-Project 2010
Gestão de Projetos com MS-Project 2010Gestão de Projetos com MS-Project 2010
Gestão de Projetos com MS-Project 2010Fabio Spanhol
 
Computação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo TutorialComputação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo TutorialFabio Spanhol
 
E essa tal Virtualização?
E essa tal Virtualização?E essa tal Virtualização?
E essa tal Virtualização?Fabio Spanhol
 

Mais de Fabio Spanhol (12)

Classificação Automatizada de Câncer de Mama - Imagens Histopatológicas
Classificação Automatizada de Câncer de Mama - Imagens HistopatológicasClassificação Automatizada de Câncer de Mama - Imagens Histopatológicas
Classificação Automatizada de Câncer de Mama - Imagens Histopatológicas
 
Quem Tem Medo do Terminal?
Quem Tem Medo do Terminal?Quem Tem Medo do Terminal?
Quem Tem Medo do Terminal?
 
Aprendizado Profundo & CNNs
Aprendizado Profundo & CNNsAprendizado Profundo & CNNs
Aprendizado Profundo & CNNs
 
Python Training #1, ed. 6
Python Training #1, ed. 6Python Training #1, ed. 6
Python Training #1, ed. 6
 
Python Training #1 - ed5
Python Training #1 - ed5Python Training #1 - ed5
Python Training #1 - ed5
 
Linguagem C 01 - Tópicos Introdutórios
Linguagem C 01 - Tópicos IntrodutóriosLinguagem C 01 - Tópicos Introdutórios
Linguagem C 01 - Tópicos Introdutórios
 
ENEM - Exame Nacional do Ensino Médio
ENEM - Exame Nacional do Ensino MédioENEM - Exame Nacional do Ensino Médio
ENEM - Exame Nacional do Ensino Médio
 
Elaboração e Gerenciamento de Projetos
Elaboração e Gerenciamento de Projetos Elaboração e Gerenciamento de Projetos
Elaboração e Gerenciamento de Projetos
 
XML-RPC: Tópicos Introdutórios
XML-RPC: Tópicos IntrodutóriosXML-RPC: Tópicos Introdutórios
XML-RPC: Tópicos Introdutórios
 
Gestão de Projetos com MS-Project 2010
Gestão de Projetos com MS-Project 2010Gestão de Projetos com MS-Project 2010
Gestão de Projetos com MS-Project 2010
 
Computação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo TutorialComputação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo Tutorial
 
E essa tal Virtualização?
E essa tal Virtualização?E essa tal Virtualização?
E essa tal Virtualização?
 

Python em

  • 1.
  • 2. é uma linguagem interpretada, interativa, funcional, orientada a objetos, dinamicamente tipada e com gerenciamento automático de memória Similar em certos aspectos a Perl, Ruby, Scheme, Smalltalk e Tcl Prof. Fabio Alexandre Spanhol, M.Sc. 2
  • 3. Prof. Fabio Alexandre Spanhol, M.Sc. 3
  • 4. Guido van Rossum é referido pela comunidade python, desde 1995, como Benevolent Dictator For Life (BDFL) ◦ Desde dezembro de 2005 Guido trabalha na Google, dedicando 50% do seu tempo com a linguagem ◦ www.python.org/~guido ◦ neopythonic.blogspot.com/ Prof. Fabio Alexandre Spanhol, M.Sc. 4
  • 5. Não veio da cobra! ◦ "Over six years ago, in December 1989, I was looking for a "hobby" programming project that would keep me occupied during the week around Christmas. My office ... would be closed, but I had a home computer, and not much else on my hands. I decided to write an interpreter for the new scripting language I had been thinking about lately: a descendant of ABC that would appeal to Unix/C hackers. I chose Python as a working title for the project, being in a slightly irreverent mood (and a big fan of Monty Python´s Flying Circus)”. Prof. Fabio Alexandre Spanhol, M.Sc. 5
  • 6. Prof. Fabio Alexandre Spanhol, M.Sc. 6
  • 7. NADA! Python foi desenvolvido como um projeto open source, sem fins lucrativos e gerenciado pela PSF (Python Software Foundation) Prof. Fabio Alexandre Spanhol, M.Sc. 7
  • 8. Para obter o interpretador Python acessar http://www.python.org/download/ Versões ◦ Python 2.7.1 foi liberada em 27 de novembro de 2010 ◦ Python 3.2* foi liberada em 20 de fevereiro de 2011 Prof. Fabio Alexandre Spanhol, M.Sc. 8
  • 9. http://www.python.org/about/success/ ◦ Google ◦ NASA ◦ Yahoo ◦ InfoSeek ◦ MCI Worldcom ◦ IBM ◦ Higway ◦ Industrial Light and Magic ◦ AstraZeneca ◦ Honeywell ◦ ... Prof. Fabio Alexandre Spanhol, M.Sc. 9
  • 11. Vários projetos da comunidade Software Livre ◦ Blender ◦ OpenOffice ◦ Zope/Plone ◦ MoinMoin ◦ Mailman ◦ BitTorrent ◦ Chandler ◦ Gimp ◦ Plone ◦ Django ◦ OpenERP ◦ inVesalius Prof. Fabio Alexandre Spanhol, M.Sc. 11
  • 12. Web e Internet Database GUIs Científico e processamento numérico Educação Programação de rede Construção e teste de software Desenvolvimento de jogos e renderização 3D Onde mais sua imaginação mandar! Prof. Fabio Alexandre Spanhol, M.Sc. 12
  • 13. Prof. Fabio Alexandre Spanhol, M.Sc. 13
  • 14. Unix: HP-UX, Solaris ... Linux (freqüentemente pré-instalada) Mac OSX (sempre pré-instalada) Windows: 9x, ME, 2K, XP, Vista, Seven (ctypes, win32all) Nokia Série 60 e Maemo PalmOS (PipPy) Prof. Fabio Alexandre Spanhol, M.Sc. 14
  • 15. Compilação Híbrida como Java, programas Python são compilados, porém para uma linguagem intermediária, destinada a um interpretador ◦ Tal como Java, isso isola Python de muitas das excentricidades das máquinas reais na qual ele roda, provendo um nível de portabilidade equivalente a Java Prof. Fabio Alexandre Spanhol, M.Sc. 15
  • 16. De altíssimo nível e poderosa Elegante, com sintaxe simples e concisa Fácil de aprender, “cabe” no seu cérebro ! Multiparadigma: Funcional, Procedural e Orientado a Objetos Possui suporte nativo a estruturas de dados complexas 16 Prof. Fabio Alexandre Spanhol, M.Sc.
  • 17. Prof. Fabio Alexandre Spanhol, M.Sc. 17
  • 18. Prof. Fabio Alexandre Spanhol, M.Sc. 18
  • 19. Prof. Fabio Alexandre Spanhol, M.Sc. 19
  • 20. Prof. Fabio Alexandre Spanhol, M.Sc. 20
  • 21. Extensa biblioteca padrão Um módulo para o que você precisar sys, random, re, datetime, calendar, csv, os, webbrowser, string, urlib, Tkinter, codecs, pickle, types, array, mutex, queue, zlib, gzip, md5, thread, socket, email, xml.dom, locale, 21 Prof. Fabio Alexandre Spanhol, M.Sc. etc.
  • 22. Prof. Fabio Alexandre Spanhol, M.Sc. 22
  • 23. 29 palavras reservadas ◦ (Java tem 52 e C# 77) and exec not assert finally or break for pass class from print Continue global raise def if return del import try elif in while else is yeld except Spanhol,lambda Prof. Fabio Alexandre M.Sc. 23
  • 25. Cython ◦ onde existir um compilador C ISO/IEC 9899:1990 Jython ◦ máquina virtual Java PyPy ◦ Python implementado em Python Python for .NET ◦ [Brian Lloyd], IronPython (da M$) Python for Delphi LunaticPython ◦ interoperando com Lua Ruby/Python ◦ em Ruby importar módulos Python) Prof. Fabio Alexandre Spanhol, M.Sc. 25
  • 26. Python é case-sensitive Cada linha é delimitada por enter Tipagem forte e dinâmica ◦ Não há declaração de variáveis Comentários iniciam por # Comentários em várias linhas delimitados por aspas triplas “”” Alguns operadores ◦ Atribuição: = ◦ Aritméticos: +, -, *, /, **,//,% ◦ Relacionais: <,>,>=,<=, ==,!=,<>,is, in ◦ Lógicos: and,or,not ◦ Bitwise: |,^,&,>>,<<,~ Prof. Fabio Alexandre Spanhol, M.Sc. 26
  • 27. A estrutura dos blocos é definida pela indentação ◦ Não misturar tabulações com espaços for i in range(25): if i%3 == 0: print i if i%5 == 0: print "Bingo!" print “-”*5 Prof. Fabio Alexandre Spanhol, M.Sc. 27
  • 28. Inteiros ◦ x = 10 ◦ y = 56859898958711346465165798798715654000000000000**2 ◦ z = y + x  3233048109594863662031421586618163610229539807267781773950479 944647716000000000000000000000010L Ponto flutuante ◦ f = 85.99984 Booleanos ◦ True e False Strings ◦ Delimitadas por aspas ou apóstrofo ◦ s = “python” ◦ s2 = ‘language’ ◦ s3 = “%s %s” % (s,s2) Prof. Fabio Alexandre Spanhol, M.Sc. 28
  • 29. Usando type >>> x = 2 >>> print type(x) <type 'int'> >>> x = "dois" >>> print type(x) <type 'string'> >>> x = 10.2 >>> print type(x) <type 'float'> >>> x=round >>> print x <built-in function round> Prof. Fabio Alexandre Spanhol, M.Sc. 29
  • 30. Tuplas ◦ Imutáveis ◦ (‘Fabio’,32, False, 92.5,186) Listas ◦ mutáveis ◦ [‘Fabio’,32, False, 92.5,186] Dicionários ◦ Chaves com valores associados ◦ refeicoes = {"café" : “cereal com leite e mel", "almoço" : "macarrão carbonara“,"jantar" : "sopa de champignon"} ◦ print refeicoes["almoço"] Conjuntos ◦ Não permite elementos duplicados ◦ set([1,2,3,4,5,6,8,9,8,1,2,7,1,2,5]) ◦ Retorna  set([1, 2, 3, 4, 5, 6, 7, 8, 9]) Prof. Fabio Alexandre Spanhol, M.Sc. 30
  • 31. Entrada com raw_input ◦ nome=raw_input("Qual o seu nome?") ◦ idade=int(raw_input(“Qual a sua idade?”) Saída com print ◦ print nome ◦ print "Ola %s, sua nota:%10.2f" % (nome,nota) Prof. Fabio Alexandre Spanhol, M.Sc. 31
  • 32. if if (expressao): bloco [elif (expressao): bloco] [else: bloco] Prof. Fabio Alexandre Spanhol, M.Sc. 32
  • 33. exemplo s = raw_input(“número entre 0 e 100? ") n = int(s) if not 0 < n < 100: print "Número inválido." if n % 2 == 0: print "Número Par" else: print "Número Ímpar" Prof. Fabio Alexandre Spanhol, M.Sc. 33
  • 34. for for variavel in sequencia: bloco [else: bloco] while while (expressao): bloco [else: bloco] Prof. Fabio Alexandre Spanhol, M.Sc. 34
  • 35. Exemplo #encoding: utf-8 cores=[‘verde',‘amarelo',‘azul',‘branco'] for cor in cores: print cor ' é minha cor favorita!' Prof. Fabio Alexandre Spanhol, M.Sc. 35
  • 36. Modularizam o código #encoding: utf-8 #função que escreve n termos da série de fibonacci def fibo(n): a,b,t=0,1,1 while t <= n: print b a, b = b, a + b t+=1 x=int(raw_input("Quantos termos?")) fibo(x) Prof. Fabio Alexandre Spanhol, M.Sc. 36
  • 37. Prof. Fabio Alexandre Spanhol, M.Sc. 37
  • 38. Não vamos complicar! Prof. Fabio Alexandre Spanhol, M.Sc. 38
  • 39. Prof. Fabio Alexandre Spanhol, M.Sc. 39
  • 40. Prof. Fabio Alexandre Spanhol, M.Sc. 40
  • 41. Prof. Fabio Alexandre Spanhol, M.Sc. 41
  • 42. Inverter a ordem das cartas ◦ baralho.reverse() Tirar a carta do topo ◦ baralho.pop() Adicionar 4 coringas ◦ baralho.extend([‘Coringa’]*4) Colocar em ordem ◦ baralho.sort()  Pelo número de letras: baralho.sort(key=len) Prof. Fabio Alexandre Spanhol, M.Sc. 42
  • 43. Prof. Fabio Alexandre Spanhol, M.Sc. 43
  • 44. Também tem! Você pode fazer programação Funcional sem Lost in Stupid Parenthesis (LISP)  Prof. Fabio Alexandre Spanhol, M.Sc. 44
  • 45. Prof. Fabio Alexandre Spanhol, M.Sc. 45
  • 46. Prof. Fabio Alexandre Spanhol, M.Sc. 46
  • 47. faspanhol@gmail.com @_photon_ www.slideshare.net/_photon_ Prof. Fabio Alexandre Spanhol, M.Sc. 47