Your SlideShare is downloading. ×
Python para desenvolvedores - material apoio (parte I)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Python para desenvolvedores - material apoio (parte I)

3,948
views

Published on

Eu investi algum tempo fazendo um material de apoio para o livro Python para Desenvolvedores</a>, do Luis Eduardo Borges. É um conjunto de slides para o capitulo I.

Eu investi algum tempo fazendo um material de apoio para o livro Python para Desenvolvedores</a>, do Luis Eduardo Borges. É um conjunto de slides para o capitulo I.

Published in: Technology

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,948
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
96
Comments
0
Likes
2
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. Python para desenvolvedores Material de apoio Marcelo Barros de Almeida [email_address]
  • 2. Licença http://creativecommons.org/licenses/by-nc-sa/2.5/br/
    • Você tem a liberdade de:
      • Compartilhar — copiar, distribuir e transmitir a obra.
      • 3. Remixar — criar obras derivadas
    • Sob as seguintes condições:
      • Atribuição — Você deve creditar a obra da forma especificada pelo autor ou licenciante (mas não de maneira que sugira que estes concedem qualquer aval a você ou ao seu uso da obra).
      • 4. Uso não-comercial — Você não pode usar esta obra para fins comerciais.
      • 5. Compartilhamento pela mesma licença — Se você alterar, transformar ou criar em cima desta obra, você poderá distribuir a obra resultante apenas sob a mesma licença, ou sob uma licença similar à presente.
  • 6. Sumário
    • Parte I
      • Características do Python
      • 7. Blocos de código, controle de fluxo e laços
      • 8. Tipos e operadores
      • 9. Listas, tuplas e dicionários
      • 10. Funções
  • 11. Parte I Conceitos básicos sobre a linguagem de programação Python, incluindo sintaxe, tipos, estruturas de controle, funções e documentação.
  • 12. O que é Python ? Python é uma linguagem de altíssimo nível (em inglês, Very High Level Language) orientada a objeto, de tipagem dinâmica e forte, interpretada e interativa.
  • 13. Características do Python
    • Sintaxe clara e concisa (legibilidade)
    • 14. Suporte a estruturas de alto nível
    • 15. Grande número de módulos
    • 16. Multiparadigma: procedural, funcional e orientação a objetos
    • 17. Moderna (geradores, introspecção, metaclasses, persistência, unidades de teste, etc)
    • 18. É uma linguagem interpretada
    • 19. Código aberto
    • 20. Fácil integração com C/C++
  • 21. Histórico do Python
    • Criada em 1990, por Guido van Rossum (Holanda)
    • 22. Baseada na linguagem ABC
    • 23. Foco inicial em físicos e engenheiros
    • 24. Bastante aceita atualmente:
  • 29. Versões
    • Python é escrito originalmente em C (Cpython)
    • 30. Existem versões para .NET (IronPython), JVM (Jython) e até mesmo em Python (PyPy)
    • 31. Versões:
      • 2.6.4: maior compatibilidade com a base atual
      • 32. 3.1.1: versão com as mudanças mais recentes do Python
      • 33. Download:
        • http://www.python.org/download
        • 34. Suporte a OS X, Linux, Unix, Windows
  • 35. Executando um programa
    • Arquivos com extensão ”.py”. No Windows existe também ”.pyw”, que não abre um console
    • 36. Execução geralmente pela linha de comando:
      • python progama.py
  • 37. Tipagem dinâmica (e forte)
    • Não se faz declaração de variáveis. A variável é inferida pelo interpretador em tempo de execução ( duck typing )
    • 38. Python é fortemente tipada, isto é, os tipos são checados no momento da operação e conversões precisam ser explícitas
  • 39. Compilação e interpretação
    • O código fonte é traduzido em bytecodes e armazenado em disco para reuso posterior
    • 40. Bytecode é um formato binário multiplataforma
      • .pyc: byte code normal
      • 41. .pyo: byte code otimizado
    • O bytecode pode ser empacotado com o interpretador para distribuição de um executável único
  • 42. Compilação e interpretação Código fonte (.py) Símbolos Árvore sintática Bytecode (.pyc / .pyo) Binários Instaladores Interpretador
  • 43. Modo interativo
    • O interpretador Python pode ser usado de forma interativa, na qual as linhas de código são digitadas em uma linha de comando), bastando executar o interpretador (python)
    • 44. O modo interativo é muito prático para testes e modificações
  • 45. Ferramentas
    • IDEs:
      • PyScripter
      • 46. Stani's Python Editor (SPE)
      • 47. Eric
      • 48. PyDev (plugin para o Eclipse)
    • Editores de texto:
  • 51. Ferramentas
    • Shell:
      • PyCrust (gráfico)
      • 52. Ipython (texto)
    • Empacotadores (criação de executáveis):
      • Py2exe (apenas para Windows)
      • 53. cx_Freeze (portável)
  • 54. Ferramentas
    • Frameworks:
      • Web: Django, TurboGears, Zope e web2py
      • 55. Interface gráfica: wxPython, PyGTK e PyQt
      • 56. Processamento cientifico: NumPy e SciPy
      • 57. Processamento de imagens: PIL
      • 58. 2D: Matplotlib e SVGFig
      • 59. 3D: Visual Python, PyOpenGL e Python Ogre
      • 60. Mapeamento objeto-relacional: SQLAlchemy e SQLObject
  • 61. Cultura, jargão e curiosidades
    • Nome proveniente de um programa da TV britânica chamado Monty Python Flying Circus
    • 62. Pythonic : usado para indicar que algo é compatível com as premissas de projeto
    • 63. Ideais da linguagem, por Tim Peters:
      • import this
    • Benevolent Dictator for Life (BDFL) é como Guido é conhecido na comunidade Python
    • 64. Propostas para melhoria da linguagem são chamadas de PEPs ( Python Enhancement Proposals )
  • 65. Sintaxe
    • Comentários começam com ”#” e vão até o fim da linha
    • 66. Existem também comentários funcionais para:
      • Indicação do interpretador
      • 67. Indicação da codificação do arquivo
    • Programa constituído de linhas. Múltiplas linhas devem usar o ”” ao final da linha
  • 68. Blocos de código
    • Os blocos são delimitados pela endentação, que deve ser constante no bloco
    • 69. PEP-0008: usar quatro espaços para endentação
    • 70. A linha anterior ao bloco termina com ”:”, geralmente uma estrutura de controle ou declaração de uma nova estrutura
    • 71. Não misture espaços e tabulação !
  • 72. Blocos de código Programa Instruções Enquanto condição: Dois pontos obrigatórios Se condição: Instruções Senão: Instruções Instruções Inicio de um bloco Fim dos dois blocos Outro bloco Fim do programa Instruções Inicio do programa
  • 73. Blocos de código
    • Exemplo:
    • Saída:
    • O operador ”%” calcula o módulo da divisão
  • 74. Objetos
    • Python é orientado a objetos. Até mesmo os tipos básicos são objetos
    • 75. O acesso a atributos e métodos é feito via o operador ponto (”.”)
  • 76. Controle de fluxo (if-else)
    • <condição>: sentença que possa ser avaliada como verdadeira ou falsa
    • 77. <bloco de código>: sequência de linhas de comando
    • 78. As clausulas elif e else são opcionais e podem existir vários elifs para o mesmo if, porém apenas um else ao final
    • 79. Parênteses só são necessários para evitar ambiguidades
  • 80. Controle de fluxo (if-else)
    • Exemplo:
  • 81. Laços (for)
    • Permite iterar sobre sequências estáticas ou iteradores
    • 82. Aceita instruções break e continue , além de else
    • 83. range(m,n,p) ou xrange(m,n,p) são úteis
  • 84. Laços (for)
    • O for itera sobre objetos e não indexes !
    Lista x aponta para 1. 1 2 3 4 5 6 ... x Primeira iteração A referência foi atualizada. Lista 1 2 3 4 5 6 ... x Segunda iteração x é apenas uma referência. x aponta para 2.
  • 85. Laços (while)
    • Aceita instruções break e continue , além de else
    • 86. Lembre de usar True e False no teste
  • 87. Tipos
    • Tipos simples:
      • Números (inteiro, real, complexo) e strings
    • Tipos complexos:
      • Listas, tuplas e dicionários
    • Os tipos podem ser:
      • Mutáveis: permite alteração no conteúdo
      • 88. Imutáveis: não permitem alteração no conteúdo (uma cópia é sempre feita em caso de alteração)
    • Python usa referências
    • 89. Python usa coletor de lixo por contagem de referência
  • 90. Tipos nuḿericos
    • Os tipos inteiros tem dimensão arbitrária e são imutáveis
    • 91. Notação científica: 1.2e22
    • 92. Funções builtin de conversão:
      • int(), float(), abs(), oct(), hex(), pow(), round()
    • Suporta vários tipos de operações:
      • Aritméticas: +, -, *, **, /, //, %
      • 93. Lógicas: <. >, <=. >=, ==, !=
      • 94. Bit-a-bit: <<, >>, &, |, ^, ~
  • 95. Tipos numéricos
  • 96. Tipos string
    • Os tipos string são imutáveis e podem ser inicializadas com:
      • Aspas simples ou duplas
      • 97. Em várias linhas com três aspas simples ou duplas
      • 98. Sem expansão de caracteres especiais se começar com ”r”
      • 99. Unicode, se comelar com ”u”
    • Funções builtin de conversão:
      • str(), unicode(), len()
    • O módulo UserString suporta strings mutáveis
  • 100. Operadores booleanos
    • Com operadores lógicos é possível construir condições mais complexas para controlar desvios condicionais e laços.
    • 101. Os operadores booleanos: and , or , not , is e in :
      • is: retorna verdadeiro se receber duas referências ao mesmo objeto e falso em caso contrário
      • 102. in: retorna verdadeiro se receber um item e uma lista e o item ocorrer uma ou mais vezes na lista e falso em caso contrário.
      • 103. and, or e not são os equivalentes a &&, || e ! do C
  • 104. Tipos string
  • 105. Interpolação de strings
    • Feita através do operador ”%”, similar ao printf da linguagem C
    • 106. Símbolos usados na interpolação:
  • 113. Interpolação de strings
  • 114. ”Fatiando” strings (slices)
    • O uso de conchetes e indexes permite o fatiamento das strings de forma bem flexível
    • 115. Os índices no Python:
      • Começam em zero
      • 116. Contam a partir do fim se forem negativos
      • 117. Podem ser definidos como trechos, na forma [inicio:fim+1:intervalo]
        • Inicio: default é 0, fim: default é len(str) e intervalo: default é 1
        • 118. Invertendo uma string: [::-1]
    • Existem várias funções úteis no módulo string
  • 119. ”Fatiando” strings (slices) Fatiando strings String s P y t h o n 0 1 2 3 4 5 s[0] Caracteres Posições s[:2] s[2:] s[-1] P Py thon n Expressões Fatias
  • 120. Listas
    • Coleções heterogêneas de objetos, que podem ser de qualquer tipo, inclusive outras listas
    • 121. São mutáveis e aceitam operações de slices
    • 122. Criando uma lista:
    • A função enumerate () é bastante útil para iterar sobre uma lista, retornando o index e o item
  • 125. Listas
  • 126. Listas
  • 127. Tuplas
    • Semelhantes as listas, porém são imutáveis: não se pode acrescentar, apagar ou fazer atribuições aos itens. São mais eficientes que as listas.
    • 128. Criando uma tupla:
  • 133. Dicionários
    • Um dicionário é uma lista de associações compostas por uma chave única e estruturas correspondentes.
    • 134. São mutáveis mas a chave precisa ser de um tipo imutável, geralmente são usadas strings, números ou tuplas.
    • 135. Criando um dicionários:
      • x = {}
      • 136. x = {”chave1”:100, ”chave2”: [1,2,3]}
      • 137. x = dict()
  • 138. Dicionários Chaves Fractal { 'Fractal' : 'IFS' , 'Palheta' : 'Verde' , 'Limites' : ( 640 , 480 ), ( 0 , 0 ): ( 42 , 35 )} Valores IFS Palheta Verde Limites (640, 480) (0, 0) (42, 35) Elementos imutáveis Objetos quaisquer
  • 139. Dicionários
  • 140. Tipos booleanos
    • True e False são usados em Python para indicar verdadeiro ou falso
    • 141. Os seguintes valores são considerados falsos:
      • False (falso)
      • 142. None (nulo)
      • 143. 0 (zero)
      • 144. ”” (string vazia), [] (lista vazia), () (tupla vazia), {} (dicionário vazio)
      • 145. Outras estruturas com o tamanho igual a zero
    • Todo o resto é considerado verdadeiro
  • 146. Funções
    • Funções são blocos de código identificados por um nome, que podem receber parâmetros pré-determinados.
    • 147. No Python, as funções:
      • Podem retornar ou não objetos
      • 148. Aceitam Doc Strings
      • 149. Aceitam parâmetros opcionais (com defaults)
      • 150. Aceitam que os parâmetros sejam passados com nome. Neste caso, a ordem em que os parâmetros foram passados não importa
      • 151. Tem namespace próprio (escopo local), e por isso podem ofuscar definições de escopo global
  • 152. Funções
    • Bloco de função e exemplo com fatorial
  • 153. Funções
    • Exemplo com fatorial (recursivo)
  • 154. Funções
    • Conversões de RGB
  • 155. Funções
    • Outras comodidades:
      • Número de parâmetros variáveis mas não nomeados
      • 156. Número de parâmetros variáveis e nomeados
  • 157. Exercícios
    • Implementar duas funções:
      • Uma que converta temperatura em graus Celsius para Fahrenheit
      • 158. Outra que converta temperatura em graus Fahrenheit para Celsius.
      • 159. Lembrando que: F = (9/5)*C+32
    • Implementar uma função que retorne verdadeiro se o número for primo (falso caso contrário). Testar de 1 a 100.
    • 160. Implementar uma função que receba uma lista de listas de comprimentos quaisquer e retorne uma lista de uma dimensão.
  • 161. Exercícios
    • Implementar uma função que receba um dicionário e retorne a soma, a média e a variância dos valores.
    • 162. Escreva uma função que receba uma frase como parâmetro e retorne uma nova frase com cada palavra com as letras invertidas.
    • 163. Crie uma função que receba uma lista de tuplas (dados), um inteiro (chave, zero por padrão igual) e um booleano (reverso, falso por padrão) e retorne dados ordenados pelo item indicado pela chave e em ordem decrescente se reverso for verdadeiro.