é uma linguageminterpretada, interativa,funcional, orientada a objetos,dinamicamente tipada e comgerenciamento automático ...
Entre todas aslinguagens queaprendi, Python é aque      menosinterfere entre mim eo problema. É a maisefetiva para traduzi...
Life is BetterWithout Braces.  Bruce Eckel
Python has been animportant part of Googlesince the beginning, andremains so as the systemgrows and evolves. Todaydozens o...
Guido van Rossum éreferido pela comunidadepython, desde 1995, comoBenevolent Dictator For Life(BDFL)  Desde dezembro de 20...
Não veio da cobra! "Over six years ago, in December1989, I was looking for a "hobby"programming project that would keepme ...
NADA!  Python foi desenvolvido como umprojeto open source, sem finslucrativos e gerenciado pela PSF(Python Software Founda...
Para obter o interpretador Pythonacessarhttp://www.python.org/download/ Versões  Python 2.7.2 foi liberada em 11 de junho ...
http://www.python.org/about/success/  Google  NASA  Yahoo  InfoSeek  MCI Worldcom  IBM  Higway  Industrial Light and Magic...
Governo FederalPetrobrasSerproEmbratelGlobo.comStarOneConectivaCPqDAsyncHaxentUTFPR...
Vários projetos da comunidade SoftwareLivre   Blender   LibreOffice   Zope/Plone   MoinMoin   Mailman   BitTorrent   Chand...
Web e Internet Database GUIs Científico e processamentonumérico Educação Programação de rede Construção e teste de softwar...
Unix: HP-UX, Solaris ... Linux (freqüentemente pré-instalada) Mac OSX (sempre pré-instalada) Windows: 9x, ME, 2K, XP, Vist...
Compilação Híbrida  como    Java,   programas     Python    sãocompilados, porém para uma linguagemintermediária, destinad...
Cython onde existir um compilador C ISO/IEC 9899:1990Jython máquina virtual JavaPyPy Python implementado em PythonPython f...
De altíssimo nível epoderosa Elegante, com sintaxesimples e concisa Fácil de aprender, “cabe”no seu cérebro ! Multiparadig...
Extensa biblioteca padrão Um módulo para o que vocêprecisar sys, random, re, datetime,  calendar, csv, os, webbrowser,  s...
Código é muito mais lido que escrito! Readability importa! (muito) Python te ajuda a escrever   código maislegível
Python é case sensitive Linhas são delimitadas por enterTipagem é forte e dinâmica  Não há declaração de variáveis como em...
Em Python, variáveis são referências a objetos   não guardam os objetos em si   não têm tipo, mas os objetos aos quais ela...
Variáveis não são “caixas” com valores Variáveis são “rótulos” colados em objetosSão criadas pela atribuição Operador =
Atribuição não gera uma cópia do objeto Uma referência (variável) pode ser liberada Usando del Não existindo mais referên...
Normalmente para programas maiores vocêirá codificar arquivos (scripts) em um IDE  extensão py  O script pode ser executad...
Módulos são arquivos que contêm qualquerestrutura python (classes, funções, variáveis,etc.) e podem ser importados nos pro...
Funções importantes são disponibilizadas emmódulos da biblioteca padrão  Ex.: módulo math tem funções como sin, cos, exp e...
Para usar os elementos de um módulo,comando import  import modulo  from modulo import nome1,...,nomen  from modulo import ...
Exemplos
Se um programa pode ser executado isoladoou importado dentro de outro, como distinguiras duas situações?  O módulo princip...
Python Enhancement Proposal São documentos padronizados da comunidadePython Uma PEP propõe um padrão, melhoria,  funciona...
A estrutura dos blocos é definida pelaindentação  Não misturar tabulações com espaços
Quando o caractere # aparece, o interpretadorignora o restante do código até o final da linha  Isso não vale dentro de str...
Tipos básicos  int = normalmente 32 bits  long = limitado ao tamanho da memória Há promoção automática de int para long ...
Tipos básicos float = ponto flutuante de 32 bits complex= para números complexos
Construtores ou funções de conversão int (n) float (n) complex (n) abs (n)
Básicos +, -, *, /, **Inteiros %, //Bit a Bit &, |, ^, ~, >>, <<
Módulo math e outros
Representa o valor nulo Equivalente a False em operações booleanasAplicações típicas  Valor default em parâmetros de funçõ...
Constantes True e False Ocorre conversão automática entre tipos Conversão explícita pode ser feita com bool(x)
Relacionais >, <, >=, <=, ==, !=, is, is not Sempre retornam um boolLógicos and, or, not
str – Sequência de bytes, com aacentuação dependente do encoding  Delimitadas por aspas, apóstrofo ou três aspas ou três a...
Codificações iso-8859-1: padrão ISO Latin-1 iso-8859-15: idem, com símbolo € (Euro) cp1252: MS-Windows codepage 1252 ISO ...
Constantes str ou unicode são interpretadassegundo a codificação declarada numcomentário especial no início do arquivo .py...
Use caracteres de formatação, como na printfde C  %s, %d, %f são os mais comuns
Usando type
Usando type
Tuplas são sequências imutáveis  não é possível modificar as referências contidas natupla  Tuplas constantes são represent...
Listas são coleções de itens heterogêneos quepodem ser acessados sequencialmente ouindexados  São mutáveis  Constantes do ...
Facilmente você pode criar uma lista numéricacom  range([inicio,] fim[, passo])   Retorna uma sequência numérica conforme ...
Os tipos string, lista, tupla, buffer sãosequências  Coleção ordenada e iterável de itens Operações  s[i] = acessa um item...
Operações de slicing s[a:b] cópia de a (inclusive) até b (exclusive) s[a:] cópia a partir de a (inclusive) s[:b] cópia até...
Dicionários são estruturas de dados queimplementam mapeamentos  coleções de pares chave:valor que podem ser recuperados pe...
“List comprehensions” Produz uma lista a partir de qualquer objeto iterável Sintaxe inspirada em Haskell
Inverter a ordem das cartas baralho.reverse()Tirar a carta do topo baralho.pop()Adicionar 4 coringas baralho.extend([‘Cori...
Entrada com inputSaída com print
ifif (expressao):   bloco[elif (expressao):   bloco][else:   bloco]
exemplo
forfor variavel in sequencia:   bloco[else:   bloco] whilewhile (expressao):   bloco[else:   bloco]
Exemplo
Modularizam o código  Comando def inicia a definição de uma função  Comando return marca o fim da execução dafunção e defi...
Exemplo
Ei, não vamos complicar!
Estourar a pilha de execução é “fácil”E aí, tentou fat(1000)?
Mudando o tamanho da pilha de ativação
Classe file representam arquivos Use a função open (ou construtor file(), sãosinônimos)abrir arquivo binário para leitura ...
Ex.: Lendo um CSV
Operações de E/S são realizadas pelo SO O módulo os possui diversas variáveis efunções que ajudam um programa Pythonadequa...
Baterias: urllib e re
Tutorial Python - 1
Tutorial Python - 1
Tutorial Python - 1
Tutorial Python - 1
Tutorial Python - 1
Tutorial Python - 1
Tutorial Python - 1
Tutorial Python - 1
Tutorial Python - 1
Tutorial Python - 1
Tutorial Python - 1
Próximos SlideShares
Carregando em…5
×

Tutorial Python - 1

1.667 visualizações

Publicada em

Tutorial apresentado em 11/10/2011 na SEICOM (Semana Acadêmica Integrada de Computação), Foz de Iguaçu, PR.

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.667
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
67
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Tutorial Python - 1

  1. 1. é uma linguageminterpretada, interativa,funcional, orientada a objetos,dinamicamente tipada e comgerenciamento automático dememória Similar, em certos aspectos, a Perl, Ruby, Scheme, Smalltalk e Tcl
  2. 2. Entre todas aslinguagens queaprendi, Python é aque menosinterfere entre mim eo problema. É a maisefetiva para traduzirpensamentos emações. Eric Raymond
  3. 3. Life is BetterWithout Braces. Bruce Eckel
  4. 4. Python has been animportant part of Googlesince the beginning, andremains so as the systemgrows and evolves. Todaydozens of Google engineersuse Python, and werelooking for more peoplewith skills in thislanguage. Peter Norvik
  5. 5. Guido van Rossum éreferido pela comunidadepython, desde 1995, comoBenevolent 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/
  6. 6. Não veio da cobra! "Over six years ago, in December1989, I was looking for a "hobby"programming project that would keepme occupied during the week aroundChristmas. My office ... would beclosed, but I had a home computer,and not much else on my hands. Idecided to write an interpreter for thenew scripting language I had beenthinking about lately: a descendant ofABC that would appeal to Unix/Chackers. I chose Python as a workingtitle for the project, being in a slightlyirreverent mood (and a big fan ofMonty Python´s Flying Circus)”.
  7. 7. NADA! Python foi desenvolvido como umprojeto open source, sem finslucrativos e gerenciado pela PSF(Python Software Foundation)
  8. 8. Para obter o interpretador Pythonacessarhttp://www.python.org/download/ Versões Python 2.7.2 foi liberada em 11 de junho de 2011 Python 3.2.2* foi liberada em 04 de setembro de 2011
  9. 9. http://www.python.org/about/success/ Google NASA Yahoo InfoSeek MCI Worldcom IBM Higway Industrial Light and Magic AstraZeneca Honeywell ...
  10. 10. Governo FederalPetrobrasSerproEmbratelGlobo.comStarOneConectivaCPqDAsyncHaxentUTFPR...
  11. 11. Vários projetos da comunidade SoftwareLivre Blender LibreOffice Zope/Plone MoinMoin Mailman BitTorrent Chandler Gimp Plone Django OpenERP inVesalius
  12. 12. Web e Internet Database GUIs Científico e processamentonumérico Educação Programação de rede Construção e teste de software Desenvolvimento de jogos erenderização 3D Onde mais sua imaginação mandar!
  13. 13. Unix: HP-UX, Solaris ... Linux (freqüentemente pré-instalada) Mac OSX (sempre pré-instalada) Windows: 9x, ME, 2K, XP, Vista, Seven(ctypes, win32all) Apple iPhone Google Android
  14. 14. Compilação Híbrida como Java, programas Python sãocompilados, porém para uma linguagemintermediária, destinada a um interpretador Isola Python de muitas das excentricidades das máquinas reais na qual ele roda provê um nível de portabilidade
  15. 15. Cython onde existir um compilador C ISO/IEC 9899:1990Jython máquina virtual JavaPyPy Python implementado em PythonPython for .NET [Brian Lloyd], IronPython (da M$)Python for DelphiLunaticPython interoperando com LuaRuby/Python em Ruby importar módulos Python)
  16. 16. De altíssimo nível epoderosa Elegante, com sintaxesimples e concisa Fácil de aprender, “cabe”no seu cérebro ! Multiparadigma:Funcional, Procedural eOrientado a Objetos Possui suporte nativo aestruturas de dadoscomplexas
  17. 17. Extensa biblioteca padrão Um módulo 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.
  18. 18. Código é muito mais lido que escrito! Readability importa! (muito) Python te ajuda a escrever código maislegível
  19. 19. Python é case sensitive Linhas são delimitadas por enterTipagem é forte e dinâmica Não há declaração de variáveis como em C, Java, Pascal, etc. Você pode utilizar o interpretador em modointerativo ou seu IDE/editor favoritos
  20. 20. Em Python, variáveis são referências a objetos não guardam os objetos em si não têm tipo, mas os objetos aos quais elas se referem têm tipo São criadas dinamicamente Uma variável não pode ser utilizada em umaexpressão sem ter sido inicializada não existe “criação automática” de variáveis
  21. 21. Variáveis não são “caixas” com valores Variáveis são “rótulos” colados em objetosSão criadas pela atribuição Operador =
  22. 22. Atribuição não gera uma cópia do objeto Uma referência (variável) pode ser liberada Usando del Não existindo mais referências a um objeto, ele é removido da memória (garbage collector)
  23. 23. Normalmente para programas maiores vocêirá codificar arquivos (scripts) em um IDE extensão py O script pode ser executado diretamente dalinha de comando python oi.py Ou carregado para o interpretador interativo >>> import oi.py
  24. 24. Módulos são arquivos que contêm qualquerestrutura python (classes, funções, variáveis,etc.) e podem ser importados nos programas Quando importado pela primeira vez o módulo é compilado e um arquivo .pyc ou .pyo é gerado Um módulo é um objeto singleton Apenas uma instância é carregada em memória torna-se disponível globalmente para o programa que fez a importação
  25. 25. Funções importantes são disponibilizadas emmódulos da biblioteca padrão Ex.: módulo math tem funções como sin, cos, exp e outras Um módulo pode conter não só funções, mastambém variáveis ou classes Ex.: math define a constante pi Os módulos são localizados pelo interpretadorpela lista de diretórios em PYTHONPATH(sys.path), que inclui o diretório atual
  26. 26. Para usar os elementos de um módulo,comando import import modulo from modulo import nome1,...,nomen from modulo import * A importação ocorre apenas uma vez! Para carregar um módulo novamente (que tenha sido alterado) pode-se usar a função reload
  27. 27. Exemplos
  28. 28. Se um programa pode ser executado isoladoou importado dentro de outro, como distinguiras duas situações? O módulo principal de um programa tem a variável __name__ contendo “__main__” Para executar um código apenas se o módulo for o principal e não quando ele for importado
  29. 29. Python Enhancement Proposal São documentos padronizados da comunidadePython Uma PEP propõe um padrão, melhoria, funcionalidade, estrutura, explicações sobre funcionalidades, etc.Veja a PEP #0 http://www.python.org/dev/peps/pep-0000/
  30. 30. A estrutura dos blocos é definida pelaindentação Não misturar tabulações com espaços
  31. 31. Quando o caractere # aparece, o interpretadorignora o restante do código até o final da linha Isso não vale dentro de strings Para várias linhas use asplas triplas (docstring) Será útil para documentar funções, classes, módulos, etc.
  32. 32. Tipos básicos int = normalmente 32 bits long = limitado ao tamanho da memória Há promoção automática de int para long Divisão de inteiros em python < 3 resulta sempre int
  33. 33. Tipos básicos float = ponto flutuante de 32 bits complex= para números complexos
  34. 34. Construtores ou funções de conversão int (n) float (n) complex (n) abs (n)
  35. 35. Básicos +, -, *, /, **Inteiros %, //Bit a Bit &, |, ^, ~, >>, <<
  36. 36. Módulo math e outros
  37. 37. Representa o valor nulo Equivalente a False em operações booleanasAplicações típicas Valor default em parâmetros de funções Valor de retorno de funções que será descartado Como void de C/C++
  38. 38. Constantes True e False Ocorre conversão automática entre tipos Conversão explícita pode ser feita com bool(x)
  39. 39. Relacionais >, <, >=, <=, ==, !=, is, is not Sempre retornam um boolLógicos and, or, not
  40. 40. str – Sequência de bytes, com aacentuação dependente do encoding Delimitadas por aspas, apóstrofo ou três aspas ou três apóstrofos
  41. 41. Codificações iso-8859-1: padrão ISO Latin-1 iso-8859-15: idem, com símbolo € (Euro) cp1252: MS-Windows codepage 1252 ISO Latin-1 aumentado com caracteres usados em editoração eletrônica (‘’ “” •) utf-8: Unicode codificado em 8 bits compatível comASCII até o código 127 utiliza 2 bytes para caracteres não-ASCII padrão recomendado pelo W3C e está sendo adotado pela maioria dos sistemas
  42. 42. Constantes str ou unicode são interpretadassegundo a codificação declarada numcomentário especial no início do arquivo .py Nós (brasileiros) frequentemente lidamos comtextos não ASCII
  43. 43. Use caracteres de formatação, como na printfde C %s, %d, %f são os mais comuns
  44. 44. Usando type
  45. 45. Usando type
  46. 46. Tuplas são sequências imutáveis não é possível modificar as referências contidas natupla Tuplas constantes são representadas comosequências de itens entre parênteses CUIDADO: em certos contextos os parênteses emredor das tuplas podem ser omitidos
  47. 47. Listas são coleções de itens heterogêneos quepodem ser acessados sequencialmente ouindexados São mutáveis Constantes do tipo lista são delimitadas por colchetes []
  48. 48. Facilmente você pode criar uma lista numéricacom range([inicio,] fim[, passo]) Retorna uma sequência numérica conforme os argumentos dados Normalmente usada em laços for
  49. 49. Os tipos string, lista, tupla, buffer sãosequências Coleção ordenada e iterável de itens Operações s[i] = acessa um item s[-i] = acessa um item pelo final s+z = concatena s*n = produz n cópias de s concatenadas e in s = elemento e está em s? e not in s = elemento e não está em s?
  50. 50. Operações de slicing s[a:b] cópia de a (inclusive) até b (exclusive) s[a:] cópia a partir de a (inclusive) s[:b] cópia até b (exclusive) s[:] cópia total de s s[a:b:n] cópia de n em n itensAtribuição s[2:5] = [6,3,2,0] Aplicável somente em sequências mutáveis
  51. 51. Dicionários são estruturas de dados queimplementam mapeamentos coleções de pares chave:valor que podem ser recuperados pela chave A chave pode ser qualquer imutável
  52. 52. “List comprehensions” Produz uma lista a partir de qualquer objeto iterável Sintaxe inspirada em Haskell
  53. 53. 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)
  54. 54. Entrada com inputSaída com print
  55. 55. ifif (expressao): bloco[elif (expressao): bloco][else: bloco]
  56. 56. exemplo
  57. 57. forfor variavel in sequencia: bloco[else: bloco] whilewhile (expressao): bloco[else: bloco]
  58. 58. Exemplo
  59. 59. Modularizam o código Comando def inicia a definição de uma função Comando return marca o fim da execução dafunção e define o resultado a ser devolvido Pode ser None
  60. 60. Exemplo
  61. 61. Ei, não vamos complicar!
  62. 62. Estourar a pilha de execução é “fácil”E aí, tentou fat(1000)?
  63. 63. Mudando o tamanho da pilha de ativação
  64. 64. Classe file representam arquivos Use a função open (ou construtor file(), sãosinônimos)abrir arquivo binário para leitura arq = file(‘imagem.png,rb)abrir arquivo texto para escrita arq = open(‘log.txt,w)abrir arquivo para acrescentar (append) arq = file(‘imagem.png,a)
  65. 65. Ex.: Lendo um CSV
  66. 66. Operações de E/S são realizadas pelo SO O módulo os possui diversas variáveis efunções que ajudam um programa Pythonadequar-se ao SO os.getcwd() o diretório atual os.chdir(dir) diretório atual para dir os.sep caractere que separa componentes de um caminho (/ para Unix, para Windows) os.path.exists(path) diz se path se refere ao nome de um arquivo existente
  67. 67. Baterias: urllib e re

×