SlideShare uma empresa Scribd logo
1 de 52
Baixar para ler offline
Iniciando em




Rober Zanotto Guerra
O que é Python???
Python é Legal!
Linguagem de Programação
Altíssimo nível
Sintaxe limpa
Orientada a Objetos, procedural e funcional
Tipagem forte e dinâmica
Interpretada
Modular
Multiplataforma
Fácil aprendizado
História
Criador Guido Van Rossum -> Criatura Python
Meados de 1989
C, Haskell, Pearl,
SmallTalk, Modulla 3
Arquitetura em C


Monty Python
Onde utilizar?



Desktop - GUI
Desenvolvimento web
Computação Científica
Computação em Nuvem
Programação distribuída, para redes,
Gráficos, jogos, edições de imagens e videos
Scripts, plugins, complementos...
Onde Roda?
Linux – Windows – Mac – Unix – Android – iOS -
Symbiam
Versões
                http://www.python.org/download/releases/
Python 2.7.2 (11 junho, 2011)
Python 2.6.7 (3 junho, 2011)
Python 2.5.6 (26 maio, 2011)
Python 2.4.6 (19 dezembro, 2008)
Python 2.3.7 (11 março, 2008)
Python 2.2.3 (30 maio, 2003)
Python 2.1.3 (8 abril, 2002)
Python 2.0.1 (junho 2001)
Python 1.6.1 (setembro 2000)
                                               Python 3* (???)
Python 1.5.2 (abril 1999)              Python 3.2.2 (September 4, 2011)
                                         Python 3.1.4 (June 11, 2011)
                                       Python 3.0.1 (February 13, 2009)
Quem usa?
http://wiki.python.org/moin/OrganizationsUsingPython
12




10




8



                                             Coluna 1
                                             Coluna 2
6
                                             Coluna 3




4




2




0
     Linha 1   Linha 2   Linha 3   Linha 4
Frameworks e GUIs
Usuários
Como usamos Python
Onde Programar?
IDEs
  Komodo
  NetBeans
  PyCharm
  PyDev
  Wingide
  Pyshield
  Spyder
  PythonToolkit (PTK)
  PyStudio
IDES GUIs
  MonkeyStudio             XCode
  BoaConstructor        VisualPython
Licença
Licença própria (compatível com a GPL);
Permitida a distribuição, comercial ou não, tanto da
linguagem quanto de aplicações desenvolvidas
nela, em formato binário ou código
Copyright da PSF (Python Software Foundation)


  http://www.python.org/download/releases/2.7.2/license/
Como Instalar?
http://www.python.org/download/
# yum install python
# apt-get install python
2 cliques no Windows, next...next...finish!
Implementações
+ Características
Case sensitive
Interpretador dinâmico, MUITO DINÂMICO!
Tipos Primitivos
                   O que faremos hoje Cérebro?
                                                 Hoje vamos dominar o
Tudo é Objeto,                                          Python!

TUDO MESMO!


Python fits
your mind!
Interpretador Interativo
Ainda não!
O Zen do Python, por Tim Peters
Bonito é melhor que feio.
Explícito é melhor que implícito.
Simples é melhor que complexo.
Complexo é melhor que complicado.
Linear é melhor do que aninhado.
Esparso é melhor que denso.
Legibilidade conta.
Casos especiais não são especiais o bastante para quebrar as regras.
Ainda que praticidade vença a pureza.
Erros nunca devem passar silenciosamente.
A menos que sejam explicitamente silenciados.
Diante da ambigüidade, recuse a tentação de adivinhar.
Deveria haver um — e preferencialmente só um — modo óbvio para fazer algo.
Embora esse modo possa não ser óbvio a princípio a menos que você seja
holandês.
Agora é melhor que nunca.
Embora nunca frequentemente seja melhor que *já*.
Se a implementação é difícil de explicar, é uma má ideia.
Se a implementação é fácil de explicar, pode ser uma boa ideia.
Namespaces são uma boa ideia — vamos fazer mais dessas!
Operadores Aritméticos
                         >>> #5 / 2 = 2 0_o
                              >>> 5 / 2
>>> valor = 10                     2
>>> 1 + 1                  >>> #aaahm...
                             >>> 5 / 2.0
2                                 2.5
>>> 5 - 1             >>> #exponenciação nativa
                                  *-*
4                             >>> 4 ** 2
>>> 2 * 3                         16
6
Operadores Lógicos
                      >>> #Muito interessante:
>>> 1 > 2                    >>> x = 5
                           >>> 1 < x < 10
False                          True
>>> 2 < 5
True
>>> 5 == 5               >>> a,b = 5, 2
True                   >>> a > b or b > a
                             True
>>> 5 <> 2            >>> a == b and a > b
                             False
True
                           >>> not a
>>> 1 != 0                   False
True
Identação !?
Operadores de Strings
>>> string = "Ola Python"
>>> len(string)
                             >>> #acho que isso lembra C... ¬¬
10                          >>> "%d - %.2f - %s" % (1, 2.5, string)
>>> string + '!'                   '1 - 2.50 - Ola Python'

'Ola Python!'
>>> string[:-1]
'Ola Pytho'
>>> string[0:3]
'Ola'
>>>
>>> 'A' * 10 #Ta de palhaçada néh!?
'AAAAAAAAAA'
Desafio - 1
Troca de variáveis em 1 linha,
    sem variável auxiliar,
  com apenas 1 comando!
!D-U-V-I-D-O!
YEEEAH!
A , B = B, A
Tipos Primitivos?

ISTO NON EXZISTE!
TUDO É OBJETO!
Simples assim...
Conversões de Tipos
>>>x,y = 5, ‘5’
>>>int(y)         >>> tuple(x)
5                 >>> list(x)
>>> float(x)      >>> dict(x)
5.0
>>> str(x)
‘5’
Tipos Booleanos
Condicionais
Loops...
Mas Tchê! Cade o Swith?
dir(op1)   help(dic)
Manipulando Listas
Parâmetros flexíveis
>>>def soma(valor_1 = 10, valor_2 = 5):
>>>   return int(valor_1) + int(valor_2)
>>> soma(1,1)
2
>>> soma(‘10’, 1)
11
>>> soma(valor_2=10, valor_1=20)
30
>>> Soma()
15
_Namespaces_
locals()
  >>> def verLocais():
  >>>    string = ‘texto’
  >>>    lista = [1,2,3]
  >>>    valor = 100
  >>>    print locals()
  {‘string’: ‘texto’, ‘lista’: [1,2,3], ‘valor’: 100


globals()
Classes
Para quem sabe Java
 Python não tem interfaces
 Mas tem herança múltipla de classes
 Python não tem sobrecarga de métodos
 mas tem passagem de argumentos flexível
Classes
Desafio - 2
Somar 5 + 2 e resultar em 3
Sobrescrita de Métodos




>>> a = soma(5)
5
>>> b = soma(2)
2
>>> a + b
Funciona!!!

 5+2=3
Debug
ipdb
 # easy_install ipython ipdb
 Linnha anterior ao erro: import ipdb; ipdb.set_trace()
 >> next
 >> exit
POR QUE PYTHON???
Por que é...
...Simplesmente elegante
...Legivel
...Fácil aprendizado
...Resolve todo tipo de Problema
...Procedural, OO, Multi paradigma


             ...é tudo o que você desejar...
Algo mais avançado...
#THREAD SIMPLES -------------------
>>> class MyThread(t.Thread):
>>>    def run(self, texto=’’):
>>>      pint self.getName() +’ ‘+ texto


>>> thread_1 = MyThread(‘Primeira Thread’)
>>> thread_2 = MyThread(‘Segunda Thread’)
>>> thread_1.start()
>>> thread_2.start()
>>> print 'fim'
Especialistas sobre Python:
Por Marinho Brandão -
Na minha opinião, a informática é uma ciência que oferece
ferramentas para facilitar o dia-a-dia. E ferramentas são assim:
uma hora você precisa do martelo, outra hora do porrete, o
martelo sozinho não resolve as coisas, ele precisa de um prego,
uma tábua e do principal: o carpiteiro. Um carpinteiro qualificado
saberia fazer com o martelo o mesmo que se faria com o porrete,
e vice-versa, porque ele está preparado pra fazer aquilo. Outra
metáfora que pode ilustrar aqui é o de comparar um sedã, uma
scania e um trator. Digamos que o Python seja o sedã, o Java
seja a scânia e o C seja o trator: cada um tem sua aplicabilidade.
Estudos
Duvidas?




roberzguerra@gmail.com

Mais conteúdo relacionado

Mais procurados

Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Leinylson Fontinele
 
Aps lista de exercícios
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercíciosGuilherme
 
Lista de exercícios tipos de arquitetura infraestrutura de software
Lista de exercícios tipos de arquitetura   infraestrutura de softwareLista de exercícios tipos de arquitetura   infraestrutura de software
Lista de exercícios tipos de arquitetura infraestrutura de softwareIsabel Araujo
 
Listas em Prolog
Listas em PrologListas em Prolog
Listas em PrologNatã Melo
 
A Importância da Disciplina de Pesquisa Operacional .pdf
A Importância da Disciplina de Pesquisa Operacional .pdfA Importância da Disciplina de Pesquisa Operacional .pdf
A Importância da Disciplina de Pesquisa Operacional .pdfboinadalvi
 
DER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e RelacionamentosDER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e RelacionamentosCláudio Amaral
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)Janynne Gomes
 
Exercício resolvido normalização
Exercício resolvido normalizaçãoExercício resolvido normalização
Exercício resolvido normalizaçãoTicianne Darin
 
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)Leinylson Fontinele
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoRademaker Siena
 
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)Leinylson Fontinele
 
Estrutura de Dados - Aula 06 - Pilhas Estáticas
Estrutura de Dados - Aula 06 - Pilhas EstáticasEstrutura de Dados - Aula 06 - Pilhas Estáticas
Estrutura de Dados - Aula 06 - Pilhas EstáticasLeinylson Fontinele
 
Pesquisa e Ordenação Aula 01 - Apresentação
Pesquisa e Ordenação Aula 01 - ApresentaçãoPesquisa e Ordenação Aula 01 - Apresentação
Pesquisa e Ordenação Aula 01 - ApresentaçãoLeinylson Fontinele
 
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Gustavo Zimmermann
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPDaniel Brandão
 

Mais procurados (20)

Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
 
Aps lista de exercícios
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercícios
 
Lista de exercícios tipos de arquitetura infraestrutura de software
Lista de exercícios tipos de arquitetura   infraestrutura de softwareLista de exercícios tipos de arquitetura   infraestrutura de software
Lista de exercícios tipos de arquitetura infraestrutura de software
 
Listas em Prolog
Listas em PrologListas em Prolog
Listas em Prolog
 
A Importância da Disciplina de Pesquisa Operacional .pdf
A Importância da Disciplina de Pesquisa Operacional .pdfA Importância da Disciplina de Pesquisa Operacional .pdf
A Importância da Disciplina de Pesquisa Operacional .pdf
 
DER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e RelacionamentosDER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e Relacionamentos
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
 
SCRUM.pptx
SCRUM.pptxSCRUM.pptx
SCRUM.pptx
 
Aula 7 banco de dados
Aula 7   banco de dadosAula 7   banco de dados
Aula 7 banco de dados
 
Exercício resolvido normalização
Exercício resolvido normalizaçãoExercício resolvido normalização
Exercício resolvido normalização
 
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade Relacionamento
 
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)
 
Estrutura de Dados - Aula 06 - Pilhas Estáticas
Estrutura de Dados - Aula 06 - Pilhas EstáticasEstrutura de Dados - Aula 06 - Pilhas Estáticas
Estrutura de Dados - Aula 06 - Pilhas Estáticas
 
Pesquisa e Ordenação Aula 01 - Apresentação
Pesquisa e Ordenação Aula 01 - ApresentaçãoPesquisa e Ordenação Aula 01 - Apresentação
Pesquisa e Ordenação Aula 01 - Apresentação
 
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
 
Capítulo 2 - Python
Capítulo 2 - PythonCapítulo 2 - Python
Capítulo 2 - Python
 
Html Básico
Html BásicoHtml Básico
Html Básico
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 

Destaque

Palestra sobre tkinter
Palestra sobre tkinterPalestra sobre tkinter
Palestra sobre tkinterMarcos Castro
 
Construção de interfaces gráficas com Tkinter
Construção de interfaces gráficas com TkinterConstrução de interfaces gráficas com Tkinter
Construção de interfaces gráficas com TkinterMarcos Castro
 
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
 
Programando em python interfaces graficas com tk
Programando em python   interfaces graficas com tkProgramando em python   interfaces graficas com tk
Programando em python interfaces graficas com tksamuelthiago
 

Destaque (6)

Python 01
Python 01Python 01
Python 01
 
Palestra sobre tkinter
Palestra sobre tkinterPalestra sobre tkinter
Palestra sobre tkinter
 
Construção de interfaces gráficas com Tkinter
Construção de interfaces gráficas com TkinterConstrução de interfaces gráficas com Tkinter
Construção de interfaces gráficas com Tkinter
 
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
 
Python Interface Gráfica Tkinter
Python Interface Gráfica TkinterPython Interface Gráfica Tkinter
Python Interface Gráfica Tkinter
 
Programando em python interfaces graficas com tk
Programando em python   interfaces graficas com tkProgramando em python   interfaces graficas com tk
Programando em python interfaces graficas com tk
 

Semelhante a Iniciando em Python

Introdução ao Python
Introdução ao PythonIntrodução ao Python
Introdução ao PythonMarcio Palheta
 
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
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem PythonLuciano Ramalho
 
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
 
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
 
Py sintaxe
Py sintaxePy sintaxe
Py sintaxeFlapenta
 
Por que Python? Vamos Conhecer? Vamos Aprender?
Por que Python? Vamos Conhecer? Vamos Aprender?Por que Python? Vamos Conhecer? Vamos Aprender?
Por que Python? Vamos Conhecer? Vamos Aprender?Juliano Atanazio
 
Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Cristiano Rafael Steffens
 
Introdução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaIntrodução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaÁlvaro Justen
 
Porque Python - PythonBrasil[6]
Porque Python - PythonBrasil[6]Porque Python - PythonBrasil[6]
Porque Python - PythonBrasil[6]Marco Mendes
 
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
 
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
 

Semelhante a Iniciando em Python (20)

Introdução ao Python
Introdução ao PythonIntrodução ao Python
Introdução ao Python
 
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
 
Curso de Python e Django
Curso de Python e DjangoCurso de Python e Django
Curso de Python e Django
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Python
 
Python
PythonPython
Python
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação Python
 
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 Emsl2009
Python Emsl2009Python Emsl2009
Python Emsl2009
 
Py sintaxe
Py sintaxePy sintaxe
Py sintaxe
 
Por que Python? Vamos Conhecer? Vamos Aprender?
Por que Python? Vamos Conhecer? Vamos Aprender?Por que Python? Vamos Conhecer? Vamos Aprender?
Por que Python? Vamos Conhecer? Vamos Aprender?
 
Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)
 
Ecossistema Python
Ecossistema PythonEcossistema Python
Ecossistema Python
 
Introdução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaIntrodução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtiva
 
Porque Python - PythonBrasil[6]
Porque Python - PythonBrasil[6]Porque Python - PythonBrasil[6]
Porque Python - PythonBrasil[6]
 
Introdução ao Python
Introdução ao PythonIntrodução ao Python
Introdução ao Python
 
Mini Curso Python
Mini Curso PythonMini Curso Python
Mini Curso Python
 
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
 
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
 

Iniciando em Python

  • 2. O que é Python??? Python é Legal! Linguagem de Programação Altíssimo nível Sintaxe limpa Orientada a Objetos, procedural e funcional Tipagem forte e dinâmica Interpretada Modular Multiplataforma Fácil aprendizado
  • 3. História Criador Guido Van Rossum -> Criatura Python Meados de 1989 C, Haskell, Pearl, SmallTalk, Modulla 3 Arquitetura em C Monty Python
  • 4. Onde utilizar? Desktop - GUI Desenvolvimento web Computação Científica Computação em Nuvem Programação distribuída, para redes, Gráficos, jogos, edições de imagens e videos Scripts, plugins, complementos...
  • 5. Onde Roda? Linux – Windows – Mac – Unix – Android – iOS - Symbiam
  • 6. Versões http://www.python.org/download/releases/ Python 2.7.2 (11 junho, 2011) Python 2.6.7 (3 junho, 2011) Python 2.5.6 (26 maio, 2011) Python 2.4.6 (19 dezembro, 2008) Python 2.3.7 (11 março, 2008) Python 2.2.3 (30 maio, 2003) Python 2.1.3 (8 abril, 2002) Python 2.0.1 (junho 2001) Python 1.6.1 (setembro 2000) Python 3* (???) Python 1.5.2 (abril 1999) Python 3.2.2 (September 4, 2011) Python 3.1.4 (June 11, 2011) Python 3.0.1 (February 13, 2009)
  • 8. 12 10 8 Coluna 1 Coluna 2 6 Coluna 3 4 2 0 Linha 1 Linha 2 Linha 3 Linha 4
  • 11.
  • 13.
  • 14. Onde Programar? IDEs Komodo NetBeans PyCharm PyDev Wingide Pyshield Spyder PythonToolkit (PTK) PyStudio IDES GUIs MonkeyStudio XCode BoaConstructor VisualPython
  • 15. Licença Licença própria (compatível com a GPL); Permitida a distribuição, comercial ou não, tanto da linguagem quanto de aplicações desenvolvidas nela, em formato binário ou código Copyright da PSF (Python Software Foundation) http://www.python.org/download/releases/2.7.2/license/
  • 16. Como Instalar? http://www.python.org/download/ # yum install python # apt-get install python 2 cliques no Windows, next...next...finish!
  • 18. + Características Case sensitive Interpretador dinâmico, MUITO DINÂMICO! Tipos Primitivos O que faremos hoje Cérebro? Hoje vamos dominar o Tudo é Objeto, Python! TUDO MESMO! Python fits your mind!
  • 20.
  • 21. Ainda não! O Zen do Python, por Tim Peters Bonito é melhor que feio. Explícito é melhor que implícito. Simples é melhor que complexo. Complexo é melhor que complicado. Linear é melhor do que aninhado. Esparso é melhor que denso. Legibilidade conta. Casos especiais não são especiais o bastante para quebrar as regras. Ainda que praticidade vença a pureza. Erros nunca devem passar silenciosamente. A menos que sejam explicitamente silenciados. Diante da ambigüidade, recuse a tentação de adivinhar. Deveria haver um — e preferencialmente só um — modo óbvio para fazer algo. Embora esse modo possa não ser óbvio a princípio a menos que você seja holandês. Agora é melhor que nunca. Embora nunca frequentemente seja melhor que *já*. Se a implementação é difícil de explicar, é uma má ideia. Se a implementação é fácil de explicar, pode ser uma boa ideia. Namespaces são uma boa ideia — vamos fazer mais dessas!
  • 22.
  • 23. Operadores Aritméticos >>> #5 / 2 = 2 0_o >>> 5 / 2 >>> valor = 10 2 >>> 1 + 1 >>> #aaahm... >>> 5 / 2.0 2 2.5 >>> 5 - 1 >>> #exponenciação nativa *-* 4 >>> 4 ** 2 >>> 2 * 3 16 6
  • 24. Operadores Lógicos >>> #Muito interessante: >>> 1 > 2 >>> x = 5 >>> 1 < x < 10 False True >>> 2 < 5 True >>> 5 == 5 >>> a,b = 5, 2 True >>> a > b or b > a True >>> 5 <> 2 >>> a == b and a > b False True >>> not a >>> 1 != 0 False True
  • 26. Operadores de Strings >>> string = "Ola Python" >>> len(string) >>> #acho que isso lembra C... ¬¬ 10 >>> "%d - %.2f - %s" % (1, 2.5, string) >>> string + '!' '1 - 2.50 - Ola Python' 'Ola Python!' >>> string[:-1] 'Ola Pytho' >>> string[0:3] 'Ola' >>> >>> 'A' * 10 #Ta de palhaçada néh!? 'AAAAAAAAAA'
  • 27. Desafio - 1 Troca de variáveis em 1 linha, sem variável auxiliar, com apenas 1 comando!
  • 29. YEEEAH! A , B = B, A
  • 32. Conversões de Tipos >>>x,y = 5, ‘5’ >>>int(y) >>> tuple(x) 5 >>> list(x) >>> float(x) >>> dict(x) 5.0 >>> str(x) ‘5’
  • 36. Mas Tchê! Cade o Swith?
  • 37. dir(op1) help(dic)
  • 39. Parâmetros flexíveis >>>def soma(valor_1 = 10, valor_2 = 5): >>> return int(valor_1) + int(valor_2) >>> soma(1,1) 2 >>> soma(‘10’, 1) 11 >>> soma(valor_2=10, valor_1=20) 30 >>> Soma() 15
  • 40. _Namespaces_ locals() >>> def verLocais(): >>> string = ‘texto’ >>> lista = [1,2,3] >>> valor = 100 >>> print locals() {‘string’: ‘texto’, ‘lista’: [1,2,3], ‘valor’: 100 globals()
  • 41. Classes Para quem sabe Java Python não tem interfaces Mas tem herança múltipla de classes Python não tem sobrecarga de métodos mas tem passagem de argumentos flexível
  • 43. Desafio - 2 Somar 5 + 2 e resultar em 3
  • 44. Sobrescrita de Métodos >>> a = soma(5) 5 >>> b = soma(2) 2 >>> a + b
  • 46. Debug ipdb # easy_install ipython ipdb Linnha anterior ao erro: import ipdb; ipdb.set_trace() >> next >> exit
  • 48. Por que é... ...Simplesmente elegante ...Legivel ...Fácil aprendizado ...Resolve todo tipo de Problema ...Procedural, OO, Multi paradigma ...é tudo o que você desejar...
  • 49. Algo mais avançado... #THREAD SIMPLES ------------------- >>> class MyThread(t.Thread): >>> def run(self, texto=’’): >>> pint self.getName() +’ ‘+ texto >>> thread_1 = MyThread(‘Primeira Thread’) >>> thread_2 = MyThread(‘Segunda Thread’) >>> thread_1.start() >>> thread_2.start() >>> print 'fim'
  • 50. Especialistas sobre Python: Por Marinho Brandão - Na minha opinião, a informática é uma ciência que oferece ferramentas para facilitar o dia-a-dia. E ferramentas são assim: uma hora você precisa do martelo, outra hora do porrete, o martelo sozinho não resolve as coisas, ele precisa de um prego, uma tábua e do principal: o carpiteiro. Um carpinteiro qualificado saberia fazer com o martelo o mesmo que se faria com o porrete, e vice-versa, porque ele está preparado pra fazer aquilo. Outra metáfora que pode ilustrar aqui é o de comparar um sedã, uma scania e um trator. Digamos que o Python seja o sedã, o Java seja a scânia e o C seja o trator: cada um tem sua aplicabilidade.