Python é uma linguagem de programação interpretada, dinamicamente tipada e com gerenciamento automático de memória, similar a Perl, Ruby, Scheme, Smalltalk e Tcl. Ela suporta programação procedural, orientada a objetos e funcional.
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
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
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
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
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.
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
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
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