O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Próximos SlideShares
Python + algoritmo
Python + algoritmo
Carregando em…3
×

Confira estes a seguir

1 de 36 Anúncio
Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Semelhante a Aula python (20)

Anúncio

Mais recentes (20)

Aula python

  1. 1. Grupo – 1 Júlio César Eiras Melanda – 14267 Emmanuel Ferreira Borges - 13675 Wellington dos Santos Flauzino – 13739 Universidade Federal de Itajubá - 27/05/09
  2. 2. Conteúdo  Objetivos  O que é Python  Características Importantes − Paradigma − Compilação − Tipagem − Escopo de variáveis − Multiplataforma − Estruturas de dados nativas − Outras características
  3. 3. Conteúdo (cont.)  Programando − Começando... − Sintaxe básica − Fora do interpretador − Controle de fluxo – seleção − Controle de fluxo – laço − Controle de fluxo – laço − Subprogramas − Orientação a Objetos − Programação funcional
  4. 4. Conteúdo (cont.) ● Módulos ● Programas que usam Python ● Referências
  5. 5. Objetivos Apresentar para a turma a linguagem de programação Python em sua versão 2.x pois houve quebra de compatibilidade na versão 3.0 que ainda não é largamente usada.. Desta forma, serão abordados tópicos referentes ao projeto da linguagem, relacionando à matéria estudada, além de alguns exemplos de como funciona a programação nesta linguagem que está entre as que mais vem crescendo em importância nos últimos anos.
  6. 6. O que é Python Python é uma linguagem de programação poderosa e fácil de aprender que possui estruturas de alto nível, com uma abordagem simples e efetiva à programação orientada a objetos. [1] Foi criada no início da década de 90 por Guido van Rossum na Holanda no Stichting Mathematisch Centrum. Todos os releases, exceto 1.6, 1.6.1 e 2.0 são distribuídos sob a GPL-compatível. [2] O nome vem do show da BBC “Monty Python's Flying Circus”, e não das cobras de mesmo nome.[1] Python é muito versátil podendo ser usada em aplicativos Web do lado servidor, jogos, programas de controle e configuração de sistemas, scripts, editores de imagens, music players, Web browsers e muito mais.
  7. 7. Características Importantes
  8. 8. Características Importantes  Paradigmas − Multi-paradigma  Orientada a Objetos  Procedural  Funcional  Scripting  Compilação − Interpretada − Programação interativa − Bytecodes
  9. 9. Características Importantes  Tipagem − Dinâmica − Forte  Escopo de variáveis − Estático com vinculação dinâmica − Podem ser acessados diretamente:  Variáveis locais  Variáveis globais  Variáveis externas (nomes pré-definidos)
  10. 10. Características Importantes  Multiplataforma − Windows − GNU/Linux − MacOS − PalmOS − Symbian  Estruturas de dados nativas − Listas − Dicionários − Tuplas − Conjuntos
  11. 11. Características Importantes  Outras características − Tudo é objeto (inclusive tipos de dados) − Tipo nativo para números complexos − Extensa biblioteca padrão − Suporta coerção (dentro dos limites impostos pela tipagem forte)
  12. 12. Programando
  13. 13. Começando...  Na programação interativa, basta abrir o interpretador e digitar os comandos >>> print “Olha eu aqui!” #isto é um comentário Olha eu aqui! >>> x = '3' #Não precisa declarar x >>> x #Mostra o objeto vinculado ao nome x '3'
  14. 14. Sintaxe Básica  Blocos são definidos por identação >>> i = 0 #Sem ';' no final da instrução >>> while i < 2: #Sem begin ou { ... print i, #vírgula evita quebra de linha ... i += 1 #operador de atribuição composto ... #sem end ou } 0 1  O ':' indica que a próxima instrução faz parte de um bloco
  15. 15. Fora do interpretador  Código fonte em arquivo .py ou .pyw (no Windows)  Exemplo: #!/usr/bin/env python #-*- coding: utf8 -*- #mentira.py '''Mostra uma mentira na tela''' print “Não fui eu!!!”  Primeira linha para chamar o interpretador python (somente em Unix)  Segunda linha conta para o interpretador qual a codificação do arquivo. Sem ela, é levantada uma exceção se houver caracteres não ASCII.
  16. 16. Fora do interpretador (cont.)  A terceira linha é um comentário com o nome do arquivo python. É convenção colocar este comentário em todos os módulos (arquivos) criados.  A quarta linha é uma dosctrnig (texto de documentação). Todos objetos devem ter uma docstring antes de começar com as instruções propriamente (convenção).  Finalmente a instrução que será interpretada e executada
  17. 17. Controle de fluxo - seleção  Em python não existe switch if x < 0: pass #usado para não fazer nada else: pass if y == 1: #if e elif funcionam como cases pass #com a vantagem de aceitar elif y > 2: #expressões pass else: #Faz o papel do default pass
  18. 18. Controle de fluxo - seleção ● Fazer um switch usando dicionários: def case_1(): x = raw_input() print "um" try:  #pega excessão def case_2(): switch[x]() print "dois" except: def case_3(): print "default" print "tres" switch ={'1':case_1,    '2':case_2,    '3':case_3}
  19. 19. Controle de fluxo - laço  Temos duas instruções para laços – for e while (não tem do)  while executa um laço condicional pós-teste while x >= 0: y = x * x x -= 1  for executa iteração sobre uma lista for i in [1, 2 ,3 ,4]: print (' i vale %d') % i  Podemos gerar listas com a função range() >>> range(5) [0, 1, 2, 3, 4]
  20. 20. Controle de fluxo - laço  Para controle com instruções localizadas pelo usuário temos as instruções break e continue do mesmo modo que em C  Para os casos em que o laço terminar normalmente significa algo, usa-se a instrução else for i in range(2, 10): for n in range(2, i): if i % n == 0: print i, '=', n, '*', i/n break else: print i, 'é um número primo'
  21. 21. Subprogramas  Todos subprogramas são funções  Funções sem return, ou com return sem parâmetros retornam None def fib(n): ''' Calcula fibonacci até n ''' a, b = 0, 1 #Atribuições simultâneas while b < n: print b a, b = b, a + b #Avalia da esquerda #para a direita
  22. 22. Subprogramas (cont.) def continuar(opcao = true): ''' continua alguma coisa ''' if opcao: print “Continuando” else: print “Você decidiu parar” >>> continuar() #parâmetro é opcional Continuando >>> continuar(false) Você decidiu parar
  23. 23. Orientação a Objetos ● Tudo é objeto, da estrutura mais simples à mais complexa ● Classes class MinhaClasse(SuperClasse1): ''' Docstring qualquer ''' atributo1 = 'valor do atributo 1' _atributo2 = 9 def __init__(self, atributo1, atributoS): self.atributo1 = atributo1 SuperClasse1.__init__(atributoS) def metodo1(self, *params): pass
  24. 24. Orientação a objetos ● Python possui herança múltipla ● Todo método de classe recebe o parâmetro self ● Atributos não públicos : _atributo2 ● Método __init__ é o primeiro a ser executado ● __init__ não é um construtor
  25. 25. Orientação a objetos (cont.) x = classe()              #Instanciando... y = classe2(param) x.metodo1(param1, param2) #utilizando métodos z = y.troca1(a, b) var = x.atributo1 #utilizando atributo y.atributo2 = 'Arara' #'setando' atributos
  26. 26. Programação funcional ● filter(func, lista) retorna uma sequência com os itens da lista para os quais func é verdadeiro def f(x): return x % 2 != 0 and x % 3 != 0 >>> filter(f, range(2, 25)) [5, 7, 11, 13, 17, 19, 23] ● map(func, lista) aplica func(item) em cada item da lista retornando uma lista de valores retornados por func(item) def f(x): return x*x*x >>> map(f, range(1, 5)) [1, 8, 27, 64]  # códigos extraídos de [1]
  27. 27. Programação funcional (cont.) ● reduce(func, lista) aplica sucessivamente func aos elementos de lista dois a dois, retornando um único valor def add(x, y): return x + y >>> reduce(add, range(1, 11)) 55 ● Funções lambda: cria funções anônimas simples def incrementa(n) return lambda x: x + n #somente uma >>> f = incrementa(20)       #expressão >>> f(20) 40
  28. 28. Módulos ● Interfaces gráficas – wxPython – TkInter – PyQt – PyGTK ● Científico e numérico – numpy – scipy – ScientificPython – BioPython
  29. 29. Módulos (cont.) ● Jogos – Pygame ● Imagens – PyOpenGL – PyOgre – Soya 3D – Panda 3d ● Web – Django – TurboGears – Zope
  30. 30. Programas que usam Python ● YUM ● Wicd ● BitTorrent ● ForecastWatch ● Wing IDE ● Blender (renderização de imagens) ● OpenOffice ● Scribus ● Vim
  31. 31. Programas que usam Python (cont.) ● GIMP ● Inkscape ● Poser ● Jogos – Battlefield 2 (Windows) – Civilization IV (Windows) – Frequency (PS2) – Star Trek Bridge Commander (Windows) – Vegastrike (Multiplataforma) – Frets On Fire
  32. 32. Frets On Fire Civilization IV
  33. 33. Mount & Blade PySol
  34. 34. Inkscape Poser
  35. 35. Referências ● Rossum, Guido von, PythonTutorial– Release 2.4.2, 2005, Python Software Foundation ● Rossum, Guido von, Python Tutorial – Release 2.6.1, 2009, Python Software Foundation - [1] ● Rossum, Guido von, The Python Language Reference – Release 2.6.1, 2009, Python Software Foundation - [2] ● Pilgrim, Mark, Dive Into Python – versão 5.4, 2004, diveintopython.org
  36. 36. Obrigado!!!

×