SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
A linguagem Python
 Simplicidade multiparadigma
Quem sou eu?


   Ygor Mutti (aka Mamutti)
   Técnico em desenvolvimento de software
   Aluno de Ciências da Computação na UFBA
   Estudo tecnologias livres
   Blog
       http://icaju.com
   Contato:
       ygor@icaju.com
       @Mamutti
Introdução


   Guido Van Rossum, o BDFL
   Monty Python's Flying Circus
   import this
   Interpretada (bytecode)
       Modo interativo
   Tipagem dinâmica e forte
   Plataformas
       Web
       Desktop
       Mobile
Introdução


   Batteries included
   PYPI
   Tudo é objeto
   Multiparadigma
       Procedural
       Funcional
   Sintaxe clara e concisa
       Auto-documentada
       Intermezzo
Sintaxe


   Chaves? Pra quê?
       Mesma indentação = mesmo bloco
       Mantenha o padrão!
   Comentários
       Docstrings: ''' ''' ou ””” ”””
                   Pydoc
                   help()
       Linha: #
                   #!/usr/bin/python
                   # -*- coding: utf-8 -*-
   Case sensitive
Hello World! - Exercício


   Objetivos (K&R)
        Criar o código em algum lugar
        Executá-lo
        Ver para onde sua resposta foi
   Código:

    print 'Hello World!'
Controle de fluxo


   if
    if condicao:
        bloco_de_codigo
    elif condicao:
        bloco_de_codigo
    elif condicao:
        bloco_de_codigo
    else:
        bloco_de_codigo


    if condicao: comando


    variavel = valor1 if condicao else valor2
Controle de fluxo


   break
   continue
   while
    while condicao:
        bloco_de_codigo
        continue
        break
    else:
        bloco_de_codigo
Controle de fluxo


   for
    for referencia in sequencia:
        bloco_de_codigo
        continue
        break
    else:
        bloco_de_codigo

    # Para o for à moda antiga usamos range(), que gera uma
    # sequência

    for referencia in range(inicio, fim, passo)
        bloco_de_codigo
        continue
        break
    else:
        bloco_de_codigo
Operadores


   Atribuição: =
       a, b = b, a
   Lógicos (curto-circuito)
       and
       or
       not
   Identidade:
       (not) is
   Pertencimento
       (not) in
Operadores


   Igualdade
       ==
       != ou <>
   Comparação
       <
       >
       <=
       >=
       X<Y<Z
Operadores


   Genéricos
       +
       -
       *
       **
       /
       //
       %
       Suplementados
Operadores

   Slices
Fibonacci – Exercício


   Imprima os 10 primeiros termos da série
   Use conceitos novos vistos em Python
   Quanto mais simples, melhor
   Compare o tamanho e a legibilidade do código
    com outras linguagens
Resposta




      a, b = 0, 1
      for i in range(10):
          print b
          a, b = b, a + b
Primos – Exercício


   Imprima os números primos no intervalo
    fechado de 2 a 20
   Se o número não for primo, mostre quais
    números podem ser multiplicados para obtê-lo
   Dica: use o else e o break do laço for
Resposta




for n in range(2, 21):
    for div in range(2, n):
        if n % div == 0:
            print n, ' = ', n / div, ' * ', div
            break
    else:
        print n, 'é primo.'
Tipos embutidos


   Numéricos (int, long, float, complex)
   Strings (str, unicode)
   Coleções (list, tuple, dict, set, frozenset)
   Lógicos (bool, int, None, vazio, cheio)
   Nulo (NoneType)
   Arquivos (file)
   Observação
       Tipos mutáveis: passagem por referência
       Tipos imutáveis: passagem por valor
Funções


   def

# Declarando
def funcao():
    '''Aqui descrevemos o que a função faz.'''
    pass
    return valor # opcional

# Chamando
funcao()
Funções


   Parâmetros
       Não existe sobrecarga de assinaturas
       Tipos de parâmetros:
                    Simples (obrigatórios)
                    Com valor default (opcionais)
                    Lista de argumentos
                    Dicionario de argumentos
   Namespace próprio
       Ofusca variáveis globais
       Global
   Funções embutidas
Fatorial – Exercício


   Crie uma função fat recursiva que calcule o
    fatorial de um inteiro
   Documente-a usando uma docstring
   Execute help(fat) e observe o resultado
Resposta




def fat(inteiro):
    '''Retorna o fatorial de um número inteiro.”
    if inteiro == 1:
        return 1
    else:
        return inteiro * fat(inteiro - 1)
Documentação


   Baseada nos docstrings
   help()
   PyDoc
       pydoc modulo.py
       pydoc -p 8000
       pydoc -g
   Manual de referência
Módulos


   import, from, as, *
# Usos mais comuns
import modulo_ou_pacote
import pacote.modulo

# Importando um módulo específico dentro de um
pacote
from pacote import modulo

# Importando tudo (__all__) do pacote para o
namespace atual
from pacote import *

# Alias de importações
import modulo_ou_pacote as alias
from pacote import modulo as alias
Pacotes


   Pastas com módulos
   Facilitam a organização
   __init__.py
       Pode ser um arquivo vazio
       Pode conter código de inicialização
       Define quais módulos são importados com *
Biblioteca padrão


   Mais tipos (decimal, csv, datetime)
   Extensão dos tipos embutidos (string)
   Funções do interpretador (sys)
   Acesso ao sistema operacional (os)
   Expressões regulares (re)
   Persistência (anydbm, pickle, sqlite3, API)
   GUI (TkInter)
   Threads (thread, threading, etc)
   E muito mais!

Mais conteúdo relacionado

Mais procurados

2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com PythonJardel Weyrich
 
Python - Programação funcional
Python - Programação funcionalPython - Programação funcional
Python - Programação funcionalfabiocerqueira
 
Python como primeira linguagem de programação
Python como primeira linguagem de programaçãoPython como primeira linguagem de programação
Python como primeira linguagem de programaçãoSimples Consultoria
 
Curso de Python (Básico) - Português
Curso de Python (Básico) - PortuguêsCurso de Python (Básico) - Português
Curso de Python (Básico) - PortuguêsHelio Colombe
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Ismar Silveira
 
Introdução à linguagem de programação Python
Introdução à linguagem de programação PythonIntrodução à linguagem de programação Python
Introdução à linguagem de programação PythonCarlos Schults
 
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonGiancarlo Silva
 
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostosParadigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostosAdriano Teixeira de Souza
 
Apresentação python fábio jr alves
Apresentação python   fábio jr alvesApresentação python   fábio jr alves
Apresentação python fábio jr alvesGrupython Ufla
 
E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11Ismar Silveira
 
Introdução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonIntrodução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonFlávio Ribeiro
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em pythonAlvaro Oliveira
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolsoJean Lopes
 

Mais procurados (20)

2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python
 
Python - Programação funcional
Python - Programação funcionalPython - Programação funcional
Python - Programação funcional
 
Python como primeira linguagem de programação
Python como primeira linguagem de programaçãoPython como primeira linguagem de programação
Python como primeira linguagem de programação
 
TWP38 Revisão Geral 2
TWP38 Revisão Geral 2TWP38 Revisão Geral 2
TWP38 Revisão Geral 2
 
Curso de Python (Básico) - Português
Curso de Python (Básico) - PortuguêsCurso de Python (Básico) - Português
Curso de Python (Básico) - Português
 
Python for zombies (very basic level)
Python for zombies (very basic level)Python for zombies (very basic level)
Python for zombies (very basic level)
 
TWP40 Revisão Geral 3
TWP40 Revisão Geral 3TWP40 Revisão Geral 3
TWP40 Revisão Geral 3
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2
 
Linguagem em c
Linguagem em cLinguagem em c
Linguagem em c
 
AulaPython.pdf
AulaPython.pdfAulaPython.pdf
AulaPython.pdf
 
Programando com Python
Programando com PythonProgramando com Python
Programando com Python
 
Introdução à linguagem de programação Python
Introdução à linguagem de programação PythonIntrodução à linguagem de programação Python
Introdução à linguagem de programação Python
 
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com Python
 
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostosParadigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
 
Apresentação python fábio jr alves
Apresentação python   fábio jr alvesApresentação python   fábio jr alves
Apresentação python fábio jr alves
 
E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11
 
M2ti - Python Brasil
M2ti - Python BrasilM2ti - Python Brasil
M2ti - Python Brasil
 
Introdução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonIntrodução a Linguagem de Programação Python
Introdução a Linguagem de Programação Python
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em python
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
 

Semelhante a Minicurso Python

Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Flávio Ribeiro
 
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webCherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webAlvaro Oliveira
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Pythonrodrigopex
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação PythonJunior Sobrenome
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonAlvaro Oliveira
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação CJose Augusto Cintra
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem PythonLuciano Ramalho
 
Python Training #1, ed. 6
Python Training #1, ed. 6Python Training #1, ed. 6
Python Training #1, ed. 6Fabio Spanhol
 
Linguagem c wellington telles - aula 02
Linguagem c   wellington telles - aula 02Linguagem c   wellington telles - aula 02
Linguagem c wellington telles - aula 02profwtelles
 
Python Training #1 ed.6
Python Training #1 ed.6 Python Training #1 ed.6
Python Training #1 ed.6 Fabio Spanhol
 
Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Marcelo Barros de Almeida
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na práticaRafael Cassau
 

Semelhante a Minicurso Python (20)

Aula python
Aula pythonAula python
Aula python
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
 
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webCherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações web
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Python
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação Python
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a Python
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
 
Ud2
Ud2Ud2
Ud2
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Python Training #1, ed. 6
Python Training #1, ed. 6Python Training #1, ed. 6
Python Training #1, ed. 6
 
Linguagem c wellington telles - aula 02
Linguagem c   wellington telles - aula 02Linguagem c   wellington telles - aula 02
Linguagem c wellington telles - aula 02
 
Linguagem C clecioamerico
Linguagem C clecioamericoLinguagem C clecioamerico
Linguagem C clecioamerico
 
Python Training #1 ed.6
Python Training #1 ed.6 Python Training #1 ed.6
Python Training #1 ed.6
 
Python Emsl2009
Python Emsl2009Python Emsl2009
Python Emsl2009
 
Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)
 
Introducao Google GO
Introducao Google GOIntroducao Google GO
Introducao Google GO
 
Aula09 traducaosin110
Aula09 traducaosin110Aula09 traducaosin110
Aula09 traducaosin110
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na prática
 
Shell script
Shell script Shell script
Shell script
 
Linguagem c parte 2
Linguagem c parte 2Linguagem c parte 2
Linguagem c parte 2
 

Minicurso Python

  • 1. A linguagem Python Simplicidade multiparadigma
  • 2. Quem sou eu?  Ygor Mutti (aka Mamutti)  Técnico em desenvolvimento de software  Aluno de Ciências da Computação na UFBA  Estudo tecnologias livres  Blog  http://icaju.com  Contato:  ygor@icaju.com  @Mamutti
  • 3. Introdução  Guido Van Rossum, o BDFL  Monty Python's Flying Circus  import this  Interpretada (bytecode)  Modo interativo  Tipagem dinâmica e forte  Plataformas  Web  Desktop  Mobile
  • 4. Introdução  Batteries included  PYPI  Tudo é objeto  Multiparadigma  Procedural  Funcional  Sintaxe clara e concisa  Auto-documentada  Intermezzo
  • 5. Sintaxe  Chaves? Pra quê?  Mesma indentação = mesmo bloco  Mantenha o padrão!  Comentários  Docstrings: ''' ''' ou ””” ”””  Pydoc  help()  Linha: #  #!/usr/bin/python  # -*- coding: utf-8 -*-  Case sensitive
  • 6. Hello World! - Exercício  Objetivos (K&R)  Criar o código em algum lugar  Executá-lo  Ver para onde sua resposta foi  Código: print 'Hello World!'
  • 7. Controle de fluxo  if if condicao: bloco_de_codigo elif condicao: bloco_de_codigo elif condicao: bloco_de_codigo else: bloco_de_codigo if condicao: comando variavel = valor1 if condicao else valor2
  • 8. Controle de fluxo  break  continue  while while condicao: bloco_de_codigo continue break else: bloco_de_codigo
  • 9. Controle de fluxo  for for referencia in sequencia: bloco_de_codigo continue break else: bloco_de_codigo # Para o for à moda antiga usamos range(), que gera uma # sequência for referencia in range(inicio, fim, passo) bloco_de_codigo continue break else: bloco_de_codigo
  • 10. Operadores  Atribuição: =  a, b = b, a  Lógicos (curto-circuito)  and  or  not  Identidade:  (not) is  Pertencimento  (not) in
  • 11. Operadores  Igualdade  ==  != ou <>  Comparação  <  >  <=  >=  X<Y<Z
  • 12. Operadores  Genéricos  +  -  *  **  /  //  %  Suplementados
  • 13. Operadores  Slices
  • 14. Fibonacci – Exercício  Imprima os 10 primeiros termos da série  Use conceitos novos vistos em Python  Quanto mais simples, melhor  Compare o tamanho e a legibilidade do código com outras linguagens
  • 15. Resposta a, b = 0, 1 for i in range(10): print b a, b = b, a + b
  • 16. Primos – Exercício  Imprima os números primos no intervalo fechado de 2 a 20  Se o número não for primo, mostre quais números podem ser multiplicados para obtê-lo  Dica: use o else e o break do laço for
  • 17. Resposta for n in range(2, 21): for div in range(2, n): if n % div == 0: print n, ' = ', n / div, ' * ', div break else: print n, 'é primo.'
  • 18. Tipos embutidos  Numéricos (int, long, float, complex)  Strings (str, unicode)  Coleções (list, tuple, dict, set, frozenset)  Lógicos (bool, int, None, vazio, cheio)  Nulo (NoneType)  Arquivos (file)  Observação  Tipos mutáveis: passagem por referência  Tipos imutáveis: passagem por valor
  • 19. Funções  def # Declarando def funcao(): '''Aqui descrevemos o que a função faz.''' pass return valor # opcional # Chamando funcao()
  • 20. Funções  Parâmetros  Não existe sobrecarga de assinaturas  Tipos de parâmetros:  Simples (obrigatórios)  Com valor default (opcionais)  Lista de argumentos  Dicionario de argumentos  Namespace próprio  Ofusca variáveis globais  Global  Funções embutidas
  • 21. Fatorial – Exercício  Crie uma função fat recursiva que calcule o fatorial de um inteiro  Documente-a usando uma docstring  Execute help(fat) e observe o resultado
  • 22. Resposta def fat(inteiro): '''Retorna o fatorial de um número inteiro.” if inteiro == 1: return 1 else: return inteiro * fat(inteiro - 1)
  • 23. Documentação  Baseada nos docstrings  help()  PyDoc  pydoc modulo.py  pydoc -p 8000  pydoc -g  Manual de referência
  • 24. Módulos  import, from, as, * # Usos mais comuns import modulo_ou_pacote import pacote.modulo # Importando um módulo específico dentro de um pacote from pacote import modulo # Importando tudo (__all__) do pacote para o namespace atual from pacote import * # Alias de importações import modulo_ou_pacote as alias from pacote import modulo as alias
  • 25. Pacotes  Pastas com módulos  Facilitam a organização  __init__.py  Pode ser um arquivo vazio  Pode conter código de inicialização  Define quais módulos são importados com *
  • 26. Biblioteca padrão  Mais tipos (decimal, csv, datetime)  Extensão dos tipos embutidos (string)  Funções do interpretador (sys)  Acesso ao sistema operacional (os)  Expressões regulares (re)  Persistência (anydbm, pickle, sqlite3, API)  GUI (TkInter)  Threads (thread, threading, etc)  E muito mais!