é uma linguagem
                                   interpretada, interativa,
                                   funcional,...
3
Prof. Fabio Alexandre Spanhol, M.Sc.
Guido van Rossum é
                                       referido pela comunidade
                                       ...
Não veio da cobra!
                                       ◦ "Over six years ago, in December 1989,
                       ...
NADA!
Python foi desenvolvido como um
projeto open source, sem fins
lucrativos e gerenciado pela PSF
(Python Software Foun...
http://www.python.org/about/success/
◦ Google
◦ NASA
◦ Yahoo
◦ InfoSeek
◦ MCI Worldcom
◦ IBM
◦ Higway
◦ Industrial Light a...
Governo Federal
Petrobras
Serpro
Embratel
Globo.com
StarOne
Conectiva
CPqD
Async
Haxent
UTFPR


                          ...
Vários projetos da comunidade Software
Livre
◦ Blender
◦ OpenOffice
◦ Zope/Plone
◦ MoinMoin
◦ Mailman
◦ BitTorrent
◦ Chand...
Web e Internet
Database
GUIs
Científico e processamento numérico
Educação
Programação de rede
Construção e teste de softwa...
11
Prof. Fabio Alexandre Spanhol, M.Sc.
Unix: HP-UX, Solaris ...
Linux (freqüentemente pré-instalada)
Mac OSX (sempre pré-instalada)
Windows: 9x, ME, 2K, XP, Vist...
Compilação Híbrida
como     Java,    programas     Python    são
compilados, porém para uma linguagem
intermediária, desti...
De altíssimo nível e
                                       poderosa
                                       Elegante, com ...
15
Prof. Fabio Alexandre Spanhol, M.Sc.
16
Prof. Fabio Alexandre Spanhol, M.Sc.
17
Prof. Fabio Alexandre Spanhol, M.Sc.
18
Prof. Fabio Alexandre Spanhol, M.Sc.
Extensa biblioteca
                                       padrão
                                       Um módulo para o q...
20
Prof. Fabio Alexandre Spanhol, M.Sc.
29 palavras reservadas
◦ (Java tem 52 e C# 77)
and                                    exec      not
assert                ...
IDLE
interpretador




                                       22
Prof. Fabio Alexandre Spanhol, M.Sc.
Cython (onde existir um compilador C
ISO/IEC 9899:1990)
Jython (máquina virtual Java)
PyPy (Python implementado em Python)...
Python é case-sensitive
Cada linha é delimitada por enter
Tipagem forte e dinâmica
◦ Não há declaração de variáveis
Coment...
A estrutura dos blocos é definida pela
indentação
◦ Não misturar tabulações com espaços


      for i in range(25):
      ...
Inteiros
◦ x = 10
◦ y = 56859898958711346465165798798715654000000000000**2
◦ z = y + x
   3233048109594863662031421586618...
Usando type
>>> x = 2
>>> print type(x)
<type 'int'>
>>> x = "dois"
>>> print type(x)
<type 'string'>
>>> x = 10.2
>>> pri...
Tuplas
◦ Imutáveis
◦ (‘Fabio’,32, False, 88.5,186)
Listas
◦ mutáveis
◦ [‘Fabio’,32, False, 88.5,186]
Dicionários
◦ Chaves ...
Entrada com raw_input
◦ nome=raw_input("Qual o seu nome?")
◦ idade=int(raw_input(“Qual a sua idade?”)
Saída com print
◦ pr...
if
if (expressao):
   bloco
[elif (expressao):
   bloco]
[else:
   bloco]




                                         30
...
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:
...
for
for variavel in sequencia:
   bloco
[else:
   bloco]
 while
while (expressao):
   bloco
[else:
   bloco]


           ...
Exemplo
#encoding: utf-8
cores=[‘verde',‘amarelo',‘azul',‘branco']
for cor in cores:
 print cor ' é minha cor favorita!'

...
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
   ...
35
Prof. Fabio Alexandre Spanhol, M.Sc.
36
Prof. Fabio Alexandre Spanhol, M.Sc.
37
Prof. Fabio Alexandre Spanhol, M.Sc.
38
Prof. Fabio Alexandre Spanhol, M.Sc.
39
Prof. Fabio Alexandre Spanhol, M.Sc.
Inverter a ordem das cartas
◦ baralho.reverse()
Tirar a carta do topo
◦ baralho.pop()
Adicionar 4 coringas
◦ baralho.exten...
41
Prof. Fabio Alexandre Spanhol, M.Sc.
Também tem!
                         Você pode fazer programação
                         Funcional sem Lost in Stupid
   ...
43
Prof. Fabio Alexandre Spanhol, M.Sc.
44
Prof. Fabio Alexandre Spanhol, M.Sc.
45
Prof. Fabio Alexandre Spanhol, M.Sc.
"Mostrando a Cobra" - ou Breve Introdução a Linguagem Python. ed2
Próximos SlideShares
Carregando em…5
×

"Mostrando a Cobra" - ou Breve Introdução a Linguagem Python. ed2

1.184 visualizações

Publicada em

0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.184
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

"Mostrando a Cobra" - ou Breve Introdução a Linguagem Python. ed2

  1. 1. é 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 2 Prof. Fabio Alexandre Spanhol, M.Sc.
  2. 2. 3 Prof. Fabio Alexandre Spanhol, M.Sc.
  3. 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 ◦ http://www.python.org/~guido 4 Prof. Fabio Alexandre Spanhol, M.Sc.
  4. 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)”. 5 Prof. Fabio Alexandre Spanhol, M.Sc.
  5. 5. NADA! Python foi desenvolvido como um projeto open source, sem fins lucrativos e gerenciado pela PSF (Python Software Foundation) ◦ A versão Python 2.7 foi liberada em 3 de julho de 2010 ◦ A versão Python 3.1.2* foi liberada em 21 de março de 2010 Para obter o interpretador Python acessar http://www.python.org/download/ 6 Prof. Fabio Alexandre Spanhol, M.Sc.
  6. 6. http://www.python.org/about/success/ ◦ Google ◦ NASA ◦ Yahoo ◦ InfoSeek ◦ MCI Worldcom ◦ IBM ◦ Higway ◦ Industrial Light and Magic ◦ AstraZeneca ◦ Honeywell 7 Prof. Fabio Alexandre Spanhol, M.Sc.
  7. 7. Governo Federal Petrobras Serpro Embratel Globo.com StarOne Conectiva CPqD Async Haxent UTFPR 8 Prof. Fabio Alexandre Spanhol, M.Sc.
  8. 8. Vários projetos da comunidade Software Livre ◦ Blender ◦ OpenOffice ◦ Zope/Plone ◦ MoinMoin ◦ Mailman ◦ BitTorrent ◦ Chandler ◦ Gimp ◦ Plone ◦ Django ◦ OpenERP ◦ inVesalius 9 Prof. Fabio Alexandre Spanhol, M.Sc.
  9. 9. 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! 10 Prof. Fabio Alexandre Spanhol, M.Sc.
  10. 10. 11 Prof. Fabio Alexandre Spanhol, M.Sc.
  11. 11. 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) 12 Prof. Fabio Alexandre Spanhol, M.Sc.
  12. 12. 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 13 Prof. Fabio Alexandre Spanhol, M.Sc.
  13. 13. 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 14 Prof. Fabio Alexandre Spanhol, M.Sc.
  14. 14. 15 Prof. Fabio Alexandre Spanhol, M.Sc.
  15. 15. 16 Prof. Fabio Alexandre Spanhol, M.Sc.
  16. 16. 17 Prof. Fabio Alexandre Spanhol, M.Sc.
  17. 17. 18 Prof. Fabio Alexandre Spanhol, M.Sc.
  18. 18. 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, 19 Prof. Fabio Alexandre Spanhol, M.Sc.
  19. 19. 20 Prof. Fabio Alexandre Spanhol, M.Sc.
  20. 20. 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 lambda 21 Prof. Fabio Alexandre Spanhol, M.Sc.
  21. 21. IDLE interpretador 22 Prof. Fabio Alexandre Spanhol, M.Sc.
  22. 22. 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 (em desenvolvimento na M$) Python for Delphi LunaticPython (interoperando com Lua) Ruby/Python (em Ruby importar módulos Python) 23 Prof. Fabio Alexandre Spanhol, M.Sc.
  23. 23. 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: |,^,&,>>,<<,~ 24 Prof. Fabio Alexandre Spanhol, M.Sc.
  24. 24. 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 25 Prof. Fabio Alexandre Spanhol, M.Sc.
  25. 25. 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) 26 Prof. Fabio Alexandre Spanhol, M.Sc.
  26. 26. 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> 27 Prof. Fabio Alexandre Spanhol, M.Sc.
  27. 27. Tuplas ◦ Imutáveis ◦ (‘Fabio’,32, False, 88.5,186) Listas ◦ mutáveis ◦ [‘Fabio’,32, False, 88.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]) 28 Prof. Fabio Alexandre Spanhol, M.Sc.
  28. 28. 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) 29 Prof. Fabio Alexandre Spanhol, M.Sc.
  29. 29. if if (expressao): bloco [elif (expressao): bloco] [else: bloco] 30 Prof. Fabio Alexandre Spanhol, M.Sc.
  30. 30. 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" 31 Prof. Fabio Alexandre Spanhol, M.Sc.
  31. 31. for for variavel in sequencia: bloco [else: bloco] while while (expressao): bloco [else: bloco] 32 Prof. Fabio Alexandre Spanhol, M.Sc.
  32. 32. Exemplo #encoding: utf-8 cores=[‘verde',‘amarelo',‘azul',‘branco'] for cor in cores: print cor ' é minha cor favorita!' 33 Prof. Fabio Alexandre Spanhol, M.Sc.
  33. 33. 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) 34 Prof. Fabio Alexandre Spanhol, M.Sc.
  34. 34. 35 Prof. Fabio Alexandre Spanhol, M.Sc.
  35. 35. 36 Prof. Fabio Alexandre Spanhol, M.Sc.
  36. 36. 37 Prof. Fabio Alexandre Spanhol, M.Sc.
  37. 37. 38 Prof. Fabio Alexandre Spanhol, M.Sc.
  38. 38. 39 Prof. Fabio Alexandre Spanhol, M.Sc.
  39. 39. 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) 40 Prof. Fabio Alexandre Spanhol, M.Sc.
  40. 40. 41 Prof. Fabio Alexandre Spanhol, M.Sc.
  41. 41. Também tem! Você pode fazer programação Funcional sem Lost in Stupid Parenthesis (LISP)  42 Prof. Fabio Alexandre Spanhol, M.Sc.
  42. 42. 43 Prof. Fabio Alexandre Spanhol, M.Sc.
  43. 43. 44 Prof. Fabio Alexandre Spanhol, M.Sc.
  44. 44. 45 Prof. Fabio Alexandre Spanhol, M.Sc.

×