Your SlideShare is downloading. ×
  • Like
Olá Python!
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Olá Python!

  • 689 views
Published

 

Published in Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
689
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
38
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. OLÁ ! Henrique G. G. Pereira ikkibr@gmail.com
  • 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. O que é Python?  Altíssimo Nível  Interpretada  Multiplataforma ◦ Windows, Linux, Mac, BSD, Symbian  Multiparadigma ◦ OO, Procedural, Funcional
  • 4. Por que Python?  Simples ◦ Fácil de memorizar ◦ Fácil de aprender  Elegante ◦ Sintaxe descomplicada  Poderosa ◦ Biblioteca padrão gigantesca
  • 5. http://nerdson.com/blog/baterias-e-graos-incluidos/
  • 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. 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. Python 3000  3 de Dezembro de 2008: ◦ Python 3.0 final ◦ Quebra de compatibilidade ◦ Evolução ◦ Corrigir falhas
  • 9. Nada para se preocupar. Python 2.x vai continuar existindo. Por um bom tempo...
  • 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. Quem usa Python?  Google
  • 12. Quem usa Python?  Youtube
  • 13. Quem usa Python?  NASA  CERN  Nokia  DreamWorks  GIMP  Blender  OpenOffice
  • 14. Python é usado até na NASA?! E no Brasil?
  • 15. E no Brasil?  Brasil.gov.br
  • 16. E no Brasil?  Globo.com
  • 17. E no Brasil?  Stoq
  • 18. Onde posso encontrar mais?  Python Software Foundation ◦ http://www.python.org  PythonBrasil ◦ http://www.pythonbrasil.com.br
  • 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. Olá Python! x Olá {PHP,C,Java} print “Olá Python!”
  • 21. Adeus Lesão por Esforço Repetitivo!
  • 22. Integrated DeveLopment Environment  Ambiente de desenvolvimento Integrado ◦ Feito em Python ◦ Vem com o Python
  • 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. 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. 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. 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. Estrutura de Controle if condição: funcao1() funcao2() elif condição2: funcao3() else: funcao4()
  • 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. 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. Como é que é?
  • 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. 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. 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. 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. Python tem a força!
  • 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. 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. 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. 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. Já chega! Quero ir pra casa logo! E o tempo está acabando!
  • 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. Mais algumas considerações  Python é extensível ◦ C e C++ ◦ IronPython  .Net ◦ Jython  Java
  • 43. Até logo e obrigado pelos peixes! ikkibr@gmail.com Henr“Ikke” G. G. Pereira