Olá Python!

911 views
877 views

Published on

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
911
On SlideShare
0
From Embeds
0
Number of Embeds
21
Actions
Shares
0
Downloads
46
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Olá Python!

  1. 1. OLÁ ! Henrique G. G. Pereira ikkibr@gmail.com
  2. 2. Sobre a apresentação  Apresentação orientada a programadores ◦ Java, C, Pascal, C++, ...  Nenhum conhecimento prévio em Python é necessário ◦ Um pouco não vai machucar ninguém  Breve introdução ao Python ◦ Bem breve, mesmo.  Muita teoria/prática em um curto espaço de tempo
  3. 3. O que é Python?  Altíssimo Nível  Interpretada  Multiplataforma ◦ Windows, Linux, Mac, BSD, Symbian  Multiparadigma ◦ OO, Procedural, Funcional
  4. 4. Por que Python?  Simples ◦ Fácil de memorizar ◦ Fácil de aprender  Elegante ◦ Sintaxe descomplicada  Poderosa ◦ Biblioteca padrão gigantesca
  5. 5. http://nerdson.com/blog/baterias-e-graos-incluidos/
  6. 6. Como surgiu?  Guido van Rossum ◦ 1991 – Versão 0.9.0  Tipos básicos de dados (lista, tupla, dicionários) ◦ 1994 – Versão 1.0 ◦ 2001 – Versão 2.1  Python Software Foundation ◦ 2003 – Versão 2.3 ◦ 2006 – Versão 2.5
  7. 7. E agora?  Outubro de 2008 ◦ Lançamento do Python 2.6  Preparando a migração para a próxima versão  Avisos de incompatibilidade com o Python 3000  Funcionalidades adaptadas da versão 3000
  8. 8. Python 3000  3 de Dezembro de 2008: ◦ Python 3.0 final ◦ Quebra de compatibilidade ◦ Evolução ◦ Corrigir falhas
  9. 9. Nada para se preocupar. Python 2.x vai continuar existindo. Por um bom tempo...
  10. 10. O que pode ser feito?  Desenvolvimento Web ◦ Web.Py, CherryPy, Django, Zope, Plone, Pylons  Dispositivos Móveis ◦ PyS60, Python for Maemo, Python for PSP, PyMo  Multimídia e Entretenimento ◦ PyGame, PyMedia, PyOpenGL  Desenvolvimento Científico ◦ SciPy, BioPython, AstroPy, PIL
  11. 11. Quem usa Python?  Google
  12. 12. Quem usa Python?  Youtube
  13. 13. Quem usa Python?  NASA  CERN  Nokia  DreamWorks  GIMP  Blender  OpenOffice
  14. 14. Python é usado até na NASA?! E no Brasil?
  15. 15. E no Brasil?  Brasil.gov.br
  16. 16. E no Brasil?  Globo.com
  17. 17. E no Brasil?  Stoq
  18. 18. Onde posso encontrar mais?  Python Software Foundation ◦ http://www.python.org  PythonBrasil ◦ http://www.pythonbrasil.com.br
  19. 19. Características Gerais  Sintaxe Simples  Tipagem Forte e Dinâmica  Interpretada ◦ Compilação implicita  Licença de Código Aberto ◦ Compatível com a GPL
  20. 20. Olá Python! x Olá {PHP,C,Java} print “Olá Python!”
  21. 21. Adeus Lesão por Esforço Repetitivo!
  22. 22. Integrated DeveLopment Environment  Ambiente de desenvolvimento Integrado ◦ Feito em Python ◦ Vem com o Python
  23. 23. Tipos (Básicos) de Dados  Inteiros (e Longos) a=5 b = 6000000000000000000000000000000000000012345678910*1234567 c=b/a  / no Python 2 é divisão de inteiros!  from __future__ import division  Número de Ponto Flutuante d = 16.27  Strings  formatadas como em C e = „henrique‟ f = „gabriel‟ g = “%s %s” % (e,f)  Booleanos ◦ True e False
  24. 24. Estruturas (Básicas) de Dados  ( Tuplas ) ◦ Imutável ◦ Armazenar valores a = (5,6,‟eu‟,False)  [ Listas ] ◦ Mutável ◦ Trabalhar com valores ◦ Vetores <- b = [5,6,‟eu‟,False]  { Dicionários } ◦ chave->valor c = {„eu‟: False, 5:(6,7)} c[„eu‟] == False  Sets
  25. 25. Entendendo o Básico  Atribuição: =  Comparação: ==  Diferença: != <>  Operadores Matemáticos: * / - +  Operadores Lógicos: and, or, not  Entrada de dados: input(), raw_input()  Saída: print
  26. 26. Entendendo mais o Básico  Tudo são objetos (menos Nomes)  Objetos tem tipos. ◦ type(5)  <type 'int'> ◦ type(„eu‟)  <type 'str'> ◦ type([5,6,7])  <type 'list'>  Nomes não tem tipo ◦ Nomes apenas referenciam um objeto A= 5 B=A A= 6 B=?
  27. 27. Estrutura de Controle if condição: funcao1() funcao2() elif condição2: funcao3() else: funcao4()
  28. 28. Estruturas de Repetição Laço FOR Laço WHILE for variavel in lista: while condição: funcao1(variavel) funcao2() for variavel in range(10): while True: if variavel == 3: funcao3() break
  29. 29. Juntando tudo em um baralho! valores = ['As']+list(range(2,11))+ quot;Valete Dama Reiquot;.split() naipes = quot;Paus Ouros Copas Espadasquot;.split() baralho = [ quot;%s de %squot; % (v,n) for v in valores for n in naipes ] print baralho ['As de Paus', 'As de Ouros', 'As de Copas', 'As de Espadas', '2 de Paus', '2 de Ouros', '2 de Copas', '2 de Espadas', '3 de Paus', '3 de Ouros', '3 de Copas', '3 de Espadas', '4 de Paus', '4 de Ouros', '4 de Copas', '4 de Espadas', '5 de Paus', '5 de Ouros', '5 de Copas', '5 de Espadas', '6 de Paus', '6 de Ouros', '6 de Copas', '6 de Espadas', '7 de Paus', '7 de Ouros', '7 de Copas', '7 de Espadas', '8 de Paus', '8 de Ouros', '8 de Copas', '8 de Espadas', '9 de Paus', '9 de Ouros', '9 de Copas', '9 de Espadas', '10 de Paus', '10 de Ouros', '10 de Copas', '10 de Espadas', 'Valete de Paus', 'Valete de Ouros', 'Valete de Copas', 'Valete de Espadas', 'Dama de Paus', 'Dama de Ouros', 'Dama de Copas', 'Dama de Espadas', 'Rei de Paus', 'Rei de Ouros', 'Rei de Copas', 'Rei de Espadas']
  30. 30. Como é que é?
  31. 31. Entendendo o baralho!  Concatenação de Listas ◦ [5]+[„6‟]+“7,8”.split(“,”) == [5, „6‟, „7‟, „8‟]  String.split() ◦ “1,2,3,4”.split(“,”) == [„1‟, „2‟, „3‟, „4‟]  List Comprehension ◦ [x**x for x in [1,2,3,4] if x*2 >= 4]  [4, 27, 256]
  32. 32. Voltando ao baralho!  Slicing: ◦ baralho[0]  'As de Paus' ◦ baralho[0:4]  ['As de Paus', 'As de Ouros', 'As de Copas', 'As de Espadas'] ◦ baralho[0:15:2]  ['As de Paus', 'As de Copas', '2 de Paus', '2 de Copas', '3 de Paus', '3 de Copas', '4 de Paus', '4 de Copas'] ◦ baralho[-1]  'Rei de Espadas'
  33. 33. Embaralhando o baralho!  Módulo random ◦ Método shuffle  Embaralha.  shuffle(baralho)  ['As de Paus', '8 de Ouros', '2 de Espadas', '9 de Paus', '7 de Ouros', '2 de Paus', '4 de Ouros', 'As de Ouros', '4 de Espadas', 'As de Espadas', '5 de Ouros', 'Rei de Espadas', 'Valete de Paus', '9 de Espadas', '6 de Paus', 'Rei de Paus', 'As de Copas', '5 de Paus', '6 de Espadas', '8 de Espadas', '6 de Ouros', 'Dama de Espadas', 'Valete de Copas', '5 de Espadas', '3 de Espadas', '6 de Copas', '3 de Paus', '7 de Copas', '3 de Ouros', '8 de Copas', '2 de Copas', '7 de Espadas', '10 de Espadas', '10 de Paus', '10 de Ouros', '7 de Paus', 'Valete de Ouros', '9 de Copas', '2 de Ouros', '4 de Paus', 'Dama de Copas', 'Rei de Ouros', '9 de Ouros', '4 de Copas', 'Valete de Espadas', '5 de Copas', 'Dama de Ouros', '10 de Copas', '3 de Copas', 'Rei de Copas', 'Dama de Paus', '8 de Paus']
  34. 34. Brincando com o baralho!  Inverter a ordem das cartas ◦ baralho.reverse()  Tirar a carta do topo do baralho ◦ baralho.pop()  Adicionar 3 coringas ao baralho ◦ baralho.extend([„Coringa‟]*3)  Ordenar o baralho (léxicamente) ◦ baralho.sort()  Ordenar pelo número de letras? Baralho.sort(key=len)
  35. 35. Python tem a força!
  36. 36. O poder da ordenação!  valores = [(-x)**x for x in range(1,10)] ◦ [-1, 4, -27, 256, -3125, 46656, -823543, 16777216, -387420489] ◦ Não ordenado. ◦ Valores.sort() ou variavel = sorted(valores)  [-387420489, -823543, -3125, -27, -1, 4, 256, 46656, 16777216]  Ordenação ao contrário? reverse=True  [16777216, 46656, 256, 4, -1, -27, -3125, -823543, -387420489]
  37. 37. A força dos Conjuntos!  Coleção de valores únicos  Não ordenada ◦ set([5,7,5,6,7,28]) == set([28, 5, 6, 7])  list(set([28,5,6,7])) == [28, 5, 6, 7]
  38. 38. Operações com conjuntos a = set([1,2,3]) b = set([2,3,4])  Operações básicas ◦ a.intersection(b)  set([2, 3]) ◦ a.union(b)  set([1, 2, 3, 4]) ◦ a-b  set([1]) ◦ b-a  set([4])
  39. 39. Definindo funções def funcao(parametro, *parametros): print parametro for cada in parametros: print cada def fatorial(numero): if numero == 1: return 1 else: return numero*fatorial(numero-1) def fatorial2(numero): aux = 1 for x in range(1,numero+1): aux*=x return aux
  40. 40. Já chega! Quero ir pra casa logo! E o tempo está acabando!
  41. 41. Bibliotecas Úteis  sys  calendar  random  datetime  math  collections  urllib  decimal  re  csv  string  os  __future__  webbrowser http://docs.python.org/library/index.html
  42. 42. Mais algumas considerações  Python é extensível ◦ C e C++ ◦ IronPython  .Net ◦ Jython  Java
  43. 43. Até logo e obrigado pelos peixes! ikkibr@gmail.com Henr“Ikke” G. G. Pereira

×