SlideShare uma empresa Scribd logo
1 de 22
Python 3.x - Parte 1
               E agora ?? O que eu faço ??

Marcel Caraciolo
Daker Fernandes
Thais Bione
Mito: Eu só sei Python 2.x !!!
FUUUUUUUUUUUUUU...
O foco desta apresentação não é ensinar
 Python e sim mostrar as diferenças do
  Python 2.x em relação ao Python 3.x
Python 3.x
A primeira versão 3.0 foi em 2008!
              De acordo com o Guido , o objetivo foi:


              Correção de vários problemas de design


   Facilitar ainda mais o aprendizado para os que estão iniciando



Atualmente na versão 3.2 - (23/03/2011)

                    http://python.org/download/
Python 3.x
Tipos básicos - Classes

   Python 2.x
             class C: #classic class
            class C(object): #new-style class

   Python 3.x
            class C(object): #new-style class
Python 3.x
Tipos básicos - cmp e __cmp__

  Python 2.x
   >>> def reverse_numeric(x, y):
           return y - x
   >>> sorted([5, 2, 4, 1, 3], cmp=reverse_numeric)
   [5, 4, 3, 2, 1]


  Python 3.x
    list.sort(key= cmp_to_key(reverse_numeric) )

Método cmp não existe mais! Usar __lt__ ,
        __eq__ with __hash__()
Python 3.x
Tipos básicos - Strings
                                     str(anything)
   Python 2.x                        unicode(anything)
        u”poço de açucar é essa menina!”

                                     str(anything)
   Python 3.x                        unicode(anything)
            “poço de açucar é essa menina!”


Todas as STRINGS são UNICODE por padrão!
Python 3.x
Tipos básicos - Inteiros e Longos
   Python 2.x
           x = 10000000000000000L
          long(x)

   Python 3.x
          x = 10000000000000000
         int(x)

 Não mais o tipo long! Todos são inteiros!
Python 3.x
 Tipos básicos - Octais
Python 2.x
             x = O755



Python 3.x
            x = 0o755


     Octais sintaxe diferente!
Python 3.x
 Tipos básicos - Divisão
Python 2.x
          x = 2/4   # Resp: 0



Python 3.x
        x = 2/4 # Resp: 0.5


Divisão por Inteiros retornam Float!
Python 3.x
Tipos básicos - Comparações

    Python 2.x

         if x <> y: #ou if x != y


    Python 3.x
        if x!=y


       Não há mais o operador <> !
Python 3.x
Tipos básicos - Dicionários

   Python 2.x
   a = {}
   a.has_key(‘casa’)

   Python 3.x
   ‘casa’ in a

 Não há mais o método has_key em Dicts!
Python 3.x
Tipos básicos - Dicionários

    Python 2.x
a = {‘nome’: ‘marcel’, ‘idade’: 26}
a.items() # [(‘nome’,‘marcel’),( ‘idade’, 26)]
a.keys() # [‘nome’, ‘idade’]
    Python 3.x
 a = {‘nome’: ‘marcel’, ‘idade’: 26}
list(a.items()) # [(‘nome’,‘marcel’),( ‘idade’, 26)]
list(a.keys()) # [‘nome’, ‘idade’]
 Não retornam como listas, não podem ser
               indexados!
Python 3.x
  Tipos básicos - next()

     Python 2.x
                  iterator.next()



     Python 3.x
                 next(iterator)
                 iterator.next()

Há uma função global next() para iteradores!
Python 3.x
  Tipos básicos - repr()

     Python 2.x
                  `x` ou repr(x)



     Python 3.x
                    repr(x)

`` para capturar representação não mais existe!
Python 3.x
  Try ... Except..

     Python 2.x
                     try:
                       import module
                     except ImportError, e:
                       pass
     Python 3.x
                     try:
                       import module
                  except ImportError as e:
                      pass
Captura de erros e objetos com a keyword ‘as’
Python 3.x
 raise
 Python 2.x

    raise MyException , ‘mensagem de erro’

 Python 3.x
   raise MyException ( ‘mensagem de erro’ )

Lançar mensagens com método apenas!
Python 3.x
  List Comprehensions
   Python 2.x

          [ i for i in 1,2] #Isso é TENSO

   Python 3.x
                 [i for i in (1,2)]

Iterar sobre tuplas apenas com parênteses!
Python 3.x
I/O library
Python 2.x
        a = open(‘arquivo.txt’,’w’)
        a.write(‘hello’)


Python 3.x
       with open(‘arquivo.txt’,’w) as f:
            f.write(‘hello’)
                     P
2to3 conversor
Já instalado com seu Python 3.x ou encontrado em ../Tools/scripts


          def greet(name):
              print "Hello, {0}!".format(name)
          print "What's your name?"
          name = raw_input()
          greet(name)




         $ 2to3 example.py
         def greet(name):
             print("Hello, {0}!".format(name))
         print("What's your name?")
         name = input()
         greet(name)



http://docs.python.org/library/2to3.html
Python 3.x
Referências

   http://www.slideshare.net/jza/python-3000

 http://diveintopython3.org/porting-code-to-python-3-
                     with-2to3.html

  http://docs.python.org/library/2to3.html
Python 3.x - Parte 1
               E agora ?? O que eu faço ??

Marcel Caraciolo
Daker Fernandes
Thais Bione

Mais conteúdo relacionado

Mais procurados

Estrutura de Dados - PILHAS
Estrutura de Dados - PILHASEstrutura de Dados - PILHAS
Estrutura de Dados - PILHASAparicio Junior
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Adriano Teixeira de Souza
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na práticaRafael Cassau
 
Classe integer-float-byte-short-long-double
Classe integer-float-byte-short-long-doubleClasse integer-float-byte-short-long-double
Classe integer-float-byte-short-long-doublePAULO Moreira
 
Python: Iteraveis, geradores etc
Python: Iteraveis, geradores etcPython: Iteraveis, geradores etc
Python: Iteraveis, geradores etcLuciano Ramalho
 
Android - Dicas de Performance
Android - Dicas de PerformanceAndroid - Dicas de Performance
Android - Dicas de PerformanceAmélia Pessoa
 
Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10Marco Mendes
 
Estrutura de dados - Implementação de filas com listas
Estrutura de dados - Implementação de filas com listasEstrutura de dados - Implementação de filas com listas
Estrutura de dados - Implementação de filas com listasAdriano Teixeira de Souza
 
Java recursos avançados - filters
Java   recursos avançados - filtersJava   recursos avançados - filters
Java recursos avançados - filtersArmando Daniel
 
Introducao ao python - Luciana Mota
Introducao ao python - Luciana MotaIntroducao ao python - Luciana Mota
Introducao ao python - Luciana Motalucianacmota
 
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...Tchelinux
 

Mais procurados (19)

Estrutura de Dados - PILHAS
Estrutura de Dados - PILHASEstrutura de Dados - PILHAS
Estrutura de Dados - PILHAS
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada
 
Pilha em C
Pilha em CPilha em C
Pilha em C
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na prática
 
Classe integer-float-byte-short-long-double
Classe integer-float-byte-short-long-doubleClasse integer-float-byte-short-long-double
Classe integer-float-byte-short-long-double
 
Python: Iteraveis, geradores etc
Python: Iteraveis, geradores etcPython: Iteraveis, geradores etc
Python: Iteraveis, geradores etc
 
Android - Dicas de Performance
Android - Dicas de PerformanceAndroid - Dicas de Performance
Android - Dicas de Performance
 
Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - FilasEstrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Pilha
PilhaPilha
Pilha
 
Estrutura de dados - Implementação de filas com listas
Estrutura de dados - Implementação de filas com listasEstrutura de dados - Implementação de filas com listas
Estrutura de dados - Implementação de filas com listas
 
Programando com Python
Programando com PythonProgramando com Python
Programando com Python
 
Java recursos avançados - filters
Java   recursos avançados - filtersJava   recursos avançados - filters
Java recursos avançados - filters
 
Introducao ao python - Luciana Mota
Introducao ao python - Luciana MotaIntroducao ao python - Luciana Mota
Introducao ao python - Luciana Mota
 
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...
 
Iteraveis e geradores
Iteraveis e geradoresIteraveis e geradores
Iteraveis e geradores
 
Introdução a linguagem Python 2.7
Introdução a linguagem Python 2.7Introdução a linguagem Python 2.7
Introdução a linguagem Python 2.7
 
Pilha e Fila Estática
Pilha e Fila EstáticaPilha e Fila Estática
Pilha e Fila Estática
 

Destaque

Crab - A Python Framework for Building Recommendation Systems
Crab - A Python Framework for Building Recommendation SystemsCrab - A Python Framework for Building Recommendation Systems
Crab - A Python Framework for Building Recommendation SystemsMarcel Caraciolo
 
PyFoursquare: Python Library for Foursquare
PyFoursquare: Python Library for FoursquarePyFoursquare: Python Library for Foursquare
PyFoursquare: Python Library for FoursquareMarcel Caraciolo
 
Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPE
Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPEMini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPE
Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPEMarcel Caraciolo
 
Computação Científica com Python, Numpy e Scipy
Computação Científica com Python, Numpy e ScipyComputação Científica com Python, Numpy e Scipy
Computação Científica com Python, Numpy e ScipyMarcel Caraciolo
 
Rain Toolbox - Previsão de Chuvas
Rain Toolbox -  Previsão de ChuvasRain Toolbox -  Previsão de Chuvas
Rain Toolbox - Previsão de Chuvaspugpe
 
Coding Dojo e Test Driven Development
Coding Dojo e Test Driven DevelopmentCoding Dojo e Test Driven Development
Coding Dojo e Test Driven Developmentpugpe
 
Python Debugger - PUG-PE
Python Debugger - PUG-PE Python Debugger - PUG-PE
Python Debugger - PUG-PE Arthur Alvim
 
Computação Científica com Python
Computação Científica com PythonComputação Científica com Python
Computação Científica com PythonHugo Serrano
 
Migrando do App Engine para o Heroku
Migrando do App Engine para o HerokuMigrando do App Engine para o Heroku
Migrando do App Engine para o HerokuFilipe Ximenes
 
Qml + Python
Qml + PythonQml + Python
Qml + Pythonpugpe
 
Palestra sobre Inteligência Coletiva
Palestra sobre Inteligência ColetivaPalestra sobre Inteligência Coletiva
Palestra sobre Inteligência Coletivapugpe
 
(entregando djangoapps)@tangerinalab - pugpe xv
(entregando djangoapps)@tangerinalab - pugpe xv(entregando djangoapps)@tangerinalab - pugpe xv
(entregando djangoapps)@tangerinalab - pugpe xvraonyaraujo
 
Python e Cadeias de Markov GHMM
Python e Cadeias de Markov GHMMPython e Cadeias de Markov GHMM
Python e Cadeias de Markov GHMMpugpe
 
Apresentando o I Toró de Palestras do PUG-PE
Apresentando o I Toró de Palestras do PUG-PEApresentando o I Toró de Palestras do PUG-PE
Apresentando o I Toró de Palestras do PUG-PEMarcel Caraciolo
 
NoSQL com Cassandra e Python
NoSQL com Cassandra e PythonNoSQL com Cassandra e Python
NoSQL com Cassandra e Pythonpugpe
 
Criando comunidades bem sucedidas
Criando comunidades bem sucedidasCriando comunidades bem sucedidas
Criando comunidades bem sucedidaspugpe
 
Peça seu código em casamento: Votos, Tópicos e TDD
Peça seu código em casamento: Votos, Tópicos e TDDPeça seu código em casamento: Votos, Tópicos e TDD
Peça seu código em casamento: Votos, Tópicos e TDDRafael Carício
 
Wikilytics
WikilyticsWikilytics
Wikilyticspugpe
 

Destaque (20)

Crab - A Python Framework for Building Recommendation Systems
Crab - A Python Framework for Building Recommendation SystemsCrab - A Python Framework for Building Recommendation Systems
Crab - A Python Framework for Building Recommendation Systems
 
PyFoursquare: Python Library for Foursquare
PyFoursquare: Python Library for FoursquarePyFoursquare: Python Library for Foursquare
PyFoursquare: Python Library for Foursquare
 
Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPE
Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPEMini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPE
Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPE
 
Computação Científica com Python, Numpy e Scipy
Computação Científica com Python, Numpy e ScipyComputação Científica com Python, Numpy e Scipy
Computação Científica com Python, Numpy e Scipy
 
Rain Toolbox - Previsão de Chuvas
Rain Toolbox -  Previsão de ChuvasRain Toolbox -  Previsão de Chuvas
Rain Toolbox - Previsão de Chuvas
 
Pep 8
Pep 8Pep 8
Pep 8
 
Coding Dojo e Test Driven Development
Coding Dojo e Test Driven DevelopmentCoding Dojo e Test Driven Development
Coding Dojo e Test Driven Development
 
Pug
PugPug
Pug
 
Python Debugger - PUG-PE
Python Debugger - PUG-PE Python Debugger - PUG-PE
Python Debugger - PUG-PE
 
Computação Científica com Python
Computação Científica com PythonComputação Científica com Python
Computação Científica com Python
 
Migrando do App Engine para o Heroku
Migrando do App Engine para o HerokuMigrando do App Engine para o Heroku
Migrando do App Engine para o Heroku
 
Qml + Python
Qml + PythonQml + Python
Qml + Python
 
Palestra sobre Inteligência Coletiva
Palestra sobre Inteligência ColetivaPalestra sobre Inteligência Coletiva
Palestra sobre Inteligência Coletiva
 
(entregando djangoapps)@tangerinalab - pugpe xv
(entregando djangoapps)@tangerinalab - pugpe xv(entregando djangoapps)@tangerinalab - pugpe xv
(entregando djangoapps)@tangerinalab - pugpe xv
 
Python e Cadeias de Markov GHMM
Python e Cadeias de Markov GHMMPython e Cadeias de Markov GHMM
Python e Cadeias de Markov GHMM
 
Apresentando o I Toró de Palestras do PUG-PE
Apresentando o I Toró de Palestras do PUG-PEApresentando o I Toró de Palestras do PUG-PE
Apresentando o I Toró de Palestras do PUG-PE
 
NoSQL com Cassandra e Python
NoSQL com Cassandra e PythonNoSQL com Cassandra e Python
NoSQL com Cassandra e Python
 
Criando comunidades bem sucedidas
Criando comunidades bem sucedidasCriando comunidades bem sucedidas
Criando comunidades bem sucedidas
 
Peça seu código em casamento: Votos, Tópicos e TDD
Peça seu código em casamento: Votos, Tópicos e TDDPeça seu código em casamento: Votos, Tópicos e TDD
Peça seu código em casamento: Votos, Tópicos e TDD
 
Wikilytics
WikilyticsWikilytics
Wikilytics
 

Semelhante a Python 3.x - Diferenças e Novidades

Aula3PythonBasico (1).ppt
Aula3PythonBasico (1).pptAula3PythonBasico (1).ppt
Aula3PythonBasico (1).pptMichaelArrais1
 
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
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Luciano Ramalho
 
Python e seus desafios
Python e seus desafiosPython e seus desafios
Python e seus desafiosJhonathan Davi
 
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonIEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonDiogo Gomes
 
aula5 - Manipulação de Strings.pdf
aula5 -  Manipulação de Strings.pdfaula5 -  Manipulação de Strings.pdf
aula5 - Manipulação de Strings.pdfDionatasSantos2
 
Python 3 e o futuro da linguagem
Python 3 e o futuro da linguagemPython 3 e o futuro da linguagem
Python 3 e o futuro da linguagemDanilo Martins
 
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
 
Iniciando em Python
Iniciando em PythonIniciando em Python
Iniciando em PythonRober Guerra
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Pythonrodrigopex
 
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
 

Semelhante a Python 3.x - Diferenças e Novidades (20)

apresentacao.pdf
apresentacao.pdfapresentacao.pdf
apresentacao.pdf
 
aula3_python.pptx
aula3_python.pptxaula3_python.pptx
aula3_python.pptx
 
Aula3PythonBasico (1).ppt
Aula3PythonBasico (1).pptAula3PythonBasico (1).ppt
Aula3PythonBasico (1).ppt
 
Aula3PythonBasico.ppt
Aula3PythonBasico.pptAula3PythonBasico.ppt
Aula3PythonBasico.ppt
 
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
 
Python
PythonPython
Python
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)
 
Python e seus desafios
Python e seus desafiosPython e seus desafios
Python e seus desafios
 
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonIEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
 
aula5 - Manipulação de Strings.pdf
aula5 -  Manipulação de Strings.pdfaula5 -  Manipulação de Strings.pdf
aula5 - Manipulação de Strings.pdf
 
Aula python
Aula pythonAula python
Aula python
 
Python 3 e o futuro da linguagem
Python 3 e o futuro da linguagemPython 3 e o futuro da linguagem
Python 3 e o futuro da linguagem
 
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
Iniciando em PythonIniciando em Python
Iniciando em Python
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Python
 
Curso de Python e Django
Curso de Python e DjangoCurso de Python e Django
Curso de Python e Django
 
Python3
Python3Python3
Python3
 
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
 

Mais de Marcel Caraciolo

Como interpretar seu próprio genoma com Python
Como interpretar seu próprio genoma com PythonComo interpretar seu próprio genoma com Python
Como interpretar seu próprio genoma com PythonMarcel Caraciolo
 
Joblib: Lightweight pipelining for parallel jobs (v2)
Joblib:  Lightweight pipelining for parallel jobs (v2)Joblib:  Lightweight pipelining for parallel jobs (v2)
Joblib: Lightweight pipelining for parallel jobs (v2)Marcel Caraciolo
 
Construindo softwares de bioinformática para análises clínicas : Desafios e...
Construindo softwares  de bioinformática  para análises clínicas : Desafios e...Construindo softwares  de bioinformática  para análises clínicas : Desafios e...
Construindo softwares de bioinformática para análises clínicas : Desafios e...Marcel Caraciolo
 
Como Python ajudou a automatizar o nosso laboratório v.2
Como Python ajudou a automatizar o nosso laboratório v.2Como Python ajudou a automatizar o nosso laboratório v.2
Como Python ajudou a automatizar o nosso laboratório v.2Marcel Caraciolo
 
Como Python pode ajudar na automação do seu laboratório
Como Python pode ajudar na automação do  seu laboratórioComo Python pode ajudar na automação do  seu laboratório
Como Python pode ajudar na automação do seu laboratórioMarcel Caraciolo
 
Python on Science ? Yes, We can.
Python on Science ?   Yes, We can.Python on Science ?   Yes, We can.
Python on Science ? Yes, We can.Marcel Caraciolo
 
Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3Marcel Caraciolo
 
Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)Marcel Caraciolo
 
Opensource - Como começar e dá dinheiro ?
Opensource - Como começar e dá dinheiro ?Opensource - Como começar e dá dinheiro ?
Opensource - Como começar e dá dinheiro ?Marcel Caraciolo
 
Benchy, python framework for performance benchmarking of Python Scripts
Benchy, python framework for performance benchmarking  of Python ScriptsBenchy, python framework for performance benchmarking  of Python Scripts
Benchy, python framework for performance benchmarking of Python ScriptsMarcel Caraciolo
 
Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?Marcel Caraciolo
 
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...Marcel Caraciolo
 
Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks Marcel Caraciolo
 
Construindo Sistemas de Recomendação com Python
Construindo Sistemas de Recomendação com PythonConstruindo Sistemas de Recomendação com Python
Construindo Sistemas de Recomendação com PythonMarcel Caraciolo
 
Python, A pílula Azul da programação
Python, A pílula Azul da programaçãoPython, A pílula Azul da programação
Python, A pílula Azul da programaçãoMarcel Caraciolo
 
Construindo Soluções Científicas com Big Data & MapReduce
Construindo Soluções Científicas com Big Data & MapReduceConstruindo Soluções Científicas com Big Data & MapReduce
Construindo Soluções Científicas com Big Data & MapReduceMarcel Caraciolo
 
Como Python está mudando a forma de aprendizagem à distância no Brasil
Como Python está mudando a forma de aprendizagem à distância no BrasilComo Python está mudando a forma de aprendizagem à distância no Brasil
Como Python está mudando a forma de aprendizagem à distância no BrasilMarcel Caraciolo
 
Novas Tendências para a Educação a Distância: Como reinventar a educação ?
Novas Tendências para a Educação a Distância: Como reinventar a educação ?Novas Tendências para a Educação a Distância: Como reinventar a educação ?
Novas Tendências para a Educação a Distância: Como reinventar a educação ?Marcel Caraciolo
 
Aula WebCrawlers com Regex - PyCursos
Aula WebCrawlers com Regex - PyCursosAula WebCrawlers com Regex - PyCursos
Aula WebCrawlers com Regex - PyCursosMarcel Caraciolo
 

Mais de Marcel Caraciolo (20)

Como interpretar seu próprio genoma com Python
Como interpretar seu próprio genoma com PythonComo interpretar seu próprio genoma com Python
Como interpretar seu próprio genoma com Python
 
Joblib: Lightweight pipelining for parallel jobs (v2)
Joblib:  Lightweight pipelining for parallel jobs (v2)Joblib:  Lightweight pipelining for parallel jobs (v2)
Joblib: Lightweight pipelining for parallel jobs (v2)
 
Construindo softwares de bioinformática para análises clínicas : Desafios e...
Construindo softwares  de bioinformática  para análises clínicas : Desafios e...Construindo softwares  de bioinformática  para análises clínicas : Desafios e...
Construindo softwares de bioinformática para análises clínicas : Desafios e...
 
Como Python ajudou a automatizar o nosso laboratório v.2
Como Python ajudou a automatizar o nosso laboratório v.2Como Python ajudou a automatizar o nosso laboratório v.2
Como Python ajudou a automatizar o nosso laboratório v.2
 
Como Python pode ajudar na automação do seu laboratório
Como Python pode ajudar na automação do  seu laboratórioComo Python pode ajudar na automação do  seu laboratório
Como Python pode ajudar na automação do seu laboratório
 
Python on Science ? Yes, We can.
Python on Science ?   Yes, We can.Python on Science ?   Yes, We can.
Python on Science ? Yes, We can.
 
Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3
 
Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)
 
Opensource - Como começar e dá dinheiro ?
Opensource - Como começar e dá dinheiro ?Opensource - Como começar e dá dinheiro ?
Opensource - Como começar e dá dinheiro ?
 
Big Data com Python
Big Data com PythonBig Data com Python
Big Data com Python
 
Benchy, python framework for performance benchmarking of Python Scripts
Benchy, python framework for performance benchmarking  of Python ScriptsBenchy, python framework for performance benchmarking  of Python Scripts
Benchy, python framework for performance benchmarking of Python Scripts
 
Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?
 
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
 
Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks
 
Construindo Sistemas de Recomendação com Python
Construindo Sistemas de Recomendação com PythonConstruindo Sistemas de Recomendação com Python
Construindo Sistemas de Recomendação com Python
 
Python, A pílula Azul da programação
Python, A pílula Azul da programaçãoPython, A pílula Azul da programação
Python, A pílula Azul da programação
 
Construindo Soluções Científicas com Big Data & MapReduce
Construindo Soluções Científicas com Big Data & MapReduceConstruindo Soluções Científicas com Big Data & MapReduce
Construindo Soluções Científicas com Big Data & MapReduce
 
Como Python está mudando a forma de aprendizagem à distância no Brasil
Como Python está mudando a forma de aprendizagem à distância no BrasilComo Python está mudando a forma de aprendizagem à distância no Brasil
Como Python está mudando a forma de aprendizagem à distância no Brasil
 
Novas Tendências para a Educação a Distância: Como reinventar a educação ?
Novas Tendências para a Educação a Distância: Como reinventar a educação ?Novas Tendências para a Educação a Distância: Como reinventar a educação ?
Novas Tendências para a Educação a Distância: Como reinventar a educação ?
 
Aula WebCrawlers com Regex - PyCursos
Aula WebCrawlers com Regex - PyCursosAula WebCrawlers com Regex - PyCursos
Aula WebCrawlers com Regex - PyCursos
 

Python 3.x - Diferenças e Novidades

  • 1. Python 3.x - Parte 1 E agora ?? O que eu faço ?? Marcel Caraciolo Daker Fernandes Thais Bione
  • 2. Mito: Eu só sei Python 2.x !!! FUUUUUUUUUUUUUU...
  • 3. O foco desta apresentação não é ensinar Python e sim mostrar as diferenças do Python 2.x em relação ao Python 3.x
  • 4. Python 3.x A primeira versão 3.0 foi em 2008! De acordo com o Guido , o objetivo foi: Correção de vários problemas de design Facilitar ainda mais o aprendizado para os que estão iniciando Atualmente na versão 3.2 - (23/03/2011) http://python.org/download/
  • 5. Python 3.x Tipos básicos - Classes Python 2.x class C: #classic class class C(object): #new-style class Python 3.x class C(object): #new-style class
  • 6. Python 3.x Tipos básicos - cmp e __cmp__ Python 2.x >>> def reverse_numeric(x, y): return y - x >>> sorted([5, 2, 4, 1, 3], cmp=reverse_numeric) [5, 4, 3, 2, 1] Python 3.x list.sort(key= cmp_to_key(reverse_numeric) ) Método cmp não existe mais! Usar __lt__ , __eq__ with __hash__()
  • 7. Python 3.x Tipos básicos - Strings str(anything) Python 2.x unicode(anything) u”poço de açucar é essa menina!” str(anything) Python 3.x unicode(anything) “poço de açucar é essa menina!” Todas as STRINGS são UNICODE por padrão!
  • 8. Python 3.x Tipos básicos - Inteiros e Longos Python 2.x x = 10000000000000000L long(x) Python 3.x x = 10000000000000000 int(x) Não mais o tipo long! Todos são inteiros!
  • 9. Python 3.x Tipos básicos - Octais Python 2.x x = O755 Python 3.x x = 0o755 Octais sintaxe diferente!
  • 10. Python 3.x Tipos básicos - Divisão Python 2.x x = 2/4 # Resp: 0 Python 3.x x = 2/4 # Resp: 0.5 Divisão por Inteiros retornam Float!
  • 11. Python 3.x Tipos básicos - Comparações Python 2.x if x <> y: #ou if x != y Python 3.x if x!=y Não há mais o operador <> !
  • 12. Python 3.x Tipos básicos - Dicionários Python 2.x a = {} a.has_key(‘casa’) Python 3.x ‘casa’ in a Não há mais o método has_key em Dicts!
  • 13. Python 3.x Tipos básicos - Dicionários Python 2.x a = {‘nome’: ‘marcel’, ‘idade’: 26} a.items() # [(‘nome’,‘marcel’),( ‘idade’, 26)] a.keys() # [‘nome’, ‘idade’] Python 3.x a = {‘nome’: ‘marcel’, ‘idade’: 26} list(a.items()) # [(‘nome’,‘marcel’),( ‘idade’, 26)] list(a.keys()) # [‘nome’, ‘idade’] Não retornam como listas, não podem ser indexados!
  • 14. Python 3.x Tipos básicos - next() Python 2.x iterator.next() Python 3.x next(iterator) iterator.next() Há uma função global next() para iteradores!
  • 15. Python 3.x Tipos básicos - repr() Python 2.x `x` ou repr(x) Python 3.x repr(x) `` para capturar representação não mais existe!
  • 16. Python 3.x Try ... Except.. Python 2.x try: import module except ImportError, e: pass Python 3.x try: import module except ImportError as e: pass Captura de erros e objetos com a keyword ‘as’
  • 17. Python 3.x raise Python 2.x raise MyException , ‘mensagem de erro’ Python 3.x raise MyException ( ‘mensagem de erro’ ) Lançar mensagens com método apenas!
  • 18. Python 3.x List Comprehensions Python 2.x [ i for i in 1,2] #Isso é TENSO Python 3.x [i for i in (1,2)] Iterar sobre tuplas apenas com parênteses!
  • 19. Python 3.x I/O library Python 2.x a = open(‘arquivo.txt’,’w’) a.write(‘hello’) Python 3.x with open(‘arquivo.txt’,’w) as f: f.write(‘hello’) P
  • 20. 2to3 conversor Já instalado com seu Python 3.x ou encontrado em ../Tools/scripts def greet(name): print "Hello, {0}!".format(name) print "What's your name?" name = raw_input() greet(name) $ 2to3 example.py def greet(name): print("Hello, {0}!".format(name)) print("What's your name?") name = input() greet(name) http://docs.python.org/library/2to3.html
  • 21. Python 3.x Referências http://www.slideshare.net/jza/python-3000 http://diveintopython3.org/porting-code-to-python-3- with-2to3.html http://docs.python.org/library/2to3.html
  • 22. Python 3.x - Parte 1 E agora ?? O que eu faço ?? Marcel Caraciolo Daker Fernandes Thais Bione

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n