Вы находитесь на странице: 1из 47

uma linguagem interpretada, interativa, funcional, orientada a objetos, dinamicamente tipada e com gerenciamento automtico de memria Similar em certos

aspectos a Perl, Ruby, Scheme, Smalltalk e Tcl


Prof. Fabio Alexandre Spanhol, M.Sc.

Prof. Fabio Alexandre Spanhol, M.Sc.

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.

No 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 Pythons Flying Circus).

Prof. Fabio Alexandre Spanhol, M.Sc.

Prof. Fabio Alexandre Spanhol, M.Sc.

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.

Para obter o interpretador Python acessar http://www.python.org/download/ Verses

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.

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.

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

10

Vrios 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 Cientfico e processamento numrico Educao Programao de rede Construo e teste de software Desenvolvimento de jogos e renderizao 3D Onde mais sua imaginao mandar!
Prof. Fabio Alexandre Spanhol, M.Sc.

12

Prof. Fabio Alexandre Spanhol, M.Sc.

13

Unix: HP-UX, Solaris ... Linux (freqentemente pr-instalada) Mac OSX (sempre pr-instalada) Windows: 9x, ME, 2K, XP, Vista, Seven (ctypes, win32all) Nokia Srie 60 e Maemo PalmOS (PipPy)

Prof. Fabio Alexandre Spanhol, M.Sc.

14

Compilao Hbrida como Java, programas Python so compilados, porm para uma linguagem intermediria, destinada a um interpretador
Tal como Java, isso isola Python de muitas das excentricidades das mquinas reais na qual ele roda, provendo um nvel de portabilidade equivalente a Java

Prof. Fabio Alexandre Spanhol, M.Sc.

15

Prof. Fabio Alexandre Spanhol, M.Sc.

De altssimo nvel e poderosa Elegante, com sintaxe simples e concisa Fcil de aprender, cabe no seu crebro ! 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.

18

Prof. Fabio Alexandre Spanhol, M.Sc.

19

Prof. Fabio Alexandre Spanhol, M.Sc.

20

Prof. Fabio Alexandre Spanhol, M.Sc.

Extensa biblioteca padro Um mdulo 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, etc.

21

Prof. Fabio Alexandre Spanhol, M.Sc.

22

29 palavras reservadas
(Java tem 52 e C# 77)

and exec assert finally break for class from Continue global def if del import elif in else is except lambda Prof. Fabio Alexandre Spanhol, M.Sc.

not or pass print raise return try while yeld


23

IDLE interpretador

Prof. Fabio Alexandre Spanhol, M.Sc.

24

Cython Jython PyPy

onde existir um compilador C ISO/IEC 9899:1990 mquina virtual Java Python implementado em Python [Brian Lloyd], IronPython (da M$)

Python for .NET

Python for Delphi LunaticPython Ruby/Python

interoperando com Lua em Ruby importar mdulos Python)


Prof. Fabio Alexandre Spanhol, M.Sc.

25

Python case-sensitive Cada linha delimitada por enter Tipagem forte e dinmica Comentrios iniciam por # Comentrios em vrias linhas delimitados por aspas triplas Alguns operadores
Atribuio: = Aritmticos: +, -, *, /, **,//,% Relacionais: <,>,>=,<=, ==,!=,<>,is, in Lgicos: and,or,not Bitwise: |,^,&,>>,<<,~ No h declarao de variveis

Prof. Fabio Alexandre Spanhol, M.Sc.

26

A estrutura dos blocos definida pela indentao


No misturar tabulaes com espaos

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 f = 85.99984

Ponto flutuante Booleanos Strings


True e False

Delimitadas por aspas ou apstrofo 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 Listas

Imutveis

(Fabio,32, False, 92.5,186) mutveis [Fabio,32, False, 92.5,186]

Dicionrios

Chaves com valores associados refeicoes = {"caf" : cereal com leite e mel", "almoo" : "macarro carbonara,"jantar" : "sopa de champignon"} print refeicoes["almoo"] No 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])

Conjuntos

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?)

Sada 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(nmero entre 0 e 100? ") n = int(s) if not 0 < n < 100: print "Nmero invlido." if n % 2 == 0: print "Nmero Par" else: print "Nmero mpar"

Prof. Fabio Alexandre Spanhol, M.Sc.

33

for

for variavel in sequencia: bloco [else: bloco]


while

while (expressao): bloco [else: bloco]


34

Prof. Fabio Alexandre Spanhol, M.Sc.

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 cdigo
#encoding: utf-8 #funo que escreve n termos da srie 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

No 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() baralho.pop()

Tirar a carta do topo Adicionar 4 coringas Colocar em ordem


baralho.sort()
Pelo nmero de letras: baralho.sort(key=len)

baralho.extend([Coringa]*4)

Prof. Fabio Alexandre Spanhol, M.Sc.

42

Prof. Fabio Alexandre Spanhol, M.Sc.

43

Tambm tem! Voc pode fazer programao 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

Вам также может понравиться