SlideShare uma empresa Scribd logo
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

PDF
Python - Introdução Básica
PPTX
Trabalho de Paradigmas Da Linguagem De Programação - Python
PDF
Introdução à linguagem Python
PDF
Trabalho sobre a linguagem Python
PPT
Apresentando a Linguagem de Programação Python
PDF
Introdução à Programação em Python
PDF
Comsolid2011 Introdução Python
PDF
Python - Introdução
Python - Introdução Básica
Trabalho de Paradigmas Da Linguagem De Programação - Python
Introdução à linguagem Python
Trabalho sobre a linguagem Python
Apresentando a Linguagem de Programação Python
Introdução à Programação em Python
Comsolid2011 Introdução Python
Python - Introdução

Mais procurados (20)

PPTX
2016/01/27 - Aprendendo a programar com Python
PDF
Python - Programação funcional
PDF
Python como primeira linguagem de programação
PDF
TWP38 Revisão Geral 2
PDF
Curso de Python (Básico) - Português
PDF
Python for zombies (very basic level)
PDF
TWP40 Revisão Geral 3
PPT
Paradigmas de Linguagens de programacao - Aula #2
PPTX
Linguagem em c
PDF
AulaPython.pdf
PDF
Programando com Python
PDF
Introdução à linguagem de programação Python
PDF
Curso básico de Algoritmos com Python
PDF
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
PDF
Apresentação python fábio jr alves
PPT
E:\Plp 2009 2\Plp Aula11
PDF
M2ti - Python Brasil
PDF
Introdução a Linguagem de Programação Python
PDF
Introdução a estruturas de dados em python
PDF
Python - Guia de bolso
2016/01/27 - Aprendendo a programar com Python
Python - Programação funcional
Python como primeira linguagem de programação
TWP38 Revisão Geral 2
Curso de Python (Básico) - Português
Python for zombies (very basic level)
TWP40 Revisão Geral 3
Paradigmas de Linguagens de programacao - Aula #2
Linguagem em c
AulaPython.pdf
Programando com Python
Introdução à linguagem de programação Python
Curso básico de Algoritmos com Python
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
Apresentação python fábio jr alves
E:\Plp 2009 2\Plp Aula11
M2ti - Python Brasil
Introdução a Linguagem de Programação Python
Introdução a estruturas de dados em python
Python - Guia de bolso
Anúncio

Semelhante a Minicurso Python (20)

PDF
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
PDF
Cherrypy - um framework para desenvolvimento rápido de aplicações web
PDF
Minicurso Python
PDF
Linguagem de Programação Python
PDF
Programando para web com python - Introdução a Python
PDF
Introdução à Linguagem de Programação C
PPT
PDF
Introdução a linguagem Python
PDF
Python Training #1, ed. 6
PDF
Linguagem c wellington telles - aula 02
PPT
Linguagem C clecioamerico
PDF
Python Training #1 ed.6
ODP
Python Emsl2009
ODP
Python para desenvolvedores - material apoio (parte I)
PDF
Introducao Google GO
PDF
Aula09 traducaosin110
PDF
Python e django na prática
PDF
Shell script
PDF
Linguagem c parte 2
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Minicurso Python
Linguagem de Programação Python
Programando para web com python - Introdução a Python
Introdução à Linguagem de Programação C
Introdução a linguagem Python
Python Training #1, ed. 6
Linguagem c wellington telles - aula 02
Linguagem C clecioamerico
Python Training #1 ed.6
Python Emsl2009
Python para desenvolvedores - material apoio (parte I)
Introducao Google GO
Aula09 traducaosin110
Python e django na prática
Shell script
Linguagem c parte 2
Anúncio

Último (19)

PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Aula 18 - Manipulacao De Arquivos python
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Processos na gestão de transportes, TM100 Col18
Aula04-Academia Heri- Tecnologia Geral 2025
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
COBITxITIL-Entenda as diferença em uso governança TI
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Apple Pippin Uma breve introdução. - David Glotz
Custos e liquidação no SAP Transportation Management, TM130 Col18
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Aula 18 - Manipulacao De Arquivos python

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!