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

PPTX
Introdução a python
PPTX
Estrutura de dados em Java - Pilhas
PDF
Estrutura de dados - Pilhas
PPTX
Fazendo Analise de dados SÓ com Python (Just Python)
PDF
Python para quem sabe Python (aula 2)
PDF
Estrutura de dados - Filas
PDF
Estrutura de Dados - Listas Encadeadas
PDF
Iteraveis e geradores em Python
Introdução a python
Estrutura de dados em Java - Pilhas
Estrutura de dados - Pilhas
Fazendo Analise de dados SÓ com Python (Just Python)
Python para quem sabe Python (aula 2)
Estrutura de dados - Filas
Estrutura de Dados - Listas Encadeadas
Iteraveis e geradores em Python

Mais procurados (19)

PDF
Estrutura de Dados - PILHAS
PPTX
Estrutura de dados em Java - Filas
PPTX
Estrutura de dados em Java - Filas com lista encadeada
PDF
PDF
Python e django na prática
PDF
Classe integer-float-byte-short-long-double
PDF
Python: Iteraveis, geradores etc
PDF
Android - Dicas de Performance
ODP
Pymordida0 Semana de computação da SOCIESC - 2008/10
PPTX
Estrutura de dados em Java - Filas
PDF
Estrutura de dados - Implementação de filas com listas
PDF
Programando com Python
PDF
Java recursos avançados - filters
PDF
Introducao ao python - Luciana Mota
PDF
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...
PDF
Iteraveis e geradores
PDF
Introdução a linguagem Python 2.7
PDF
Pilha e Fila Estática
Estrutura de Dados - PILHAS
Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas com lista encadeada
Python e django na prática
Classe integer-float-byte-short-long-double
Python: Iteraveis, geradores etc
Android - Dicas de Performance
Pymordida0 Semana de computação da SOCIESC - 2008/10
Estrutura de dados em Java - Filas
Estrutura de dados - Implementação de filas com listas
Programando com Python
Java recursos avançados - filters
Introducao ao python - Luciana Mota
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...
Iteraveis e geradores
Introdução a linguagem Python 2.7
Pilha e Fila Estática
Anúncio

Destaque (20)

KEY
Crab - A Python Framework for Building Recommendation Systems
PDF
PyFoursquare: Python Library for Foursquare
PDF
Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPE
PDF
Computação Científica com Python, Numpy e Scipy
PDF
Rain Toolbox - Previsão de Chuvas
PDF
PDF
Coding Dojo e Test Driven Development
PPT
PDF
Python Debugger - PUG-PE
PDF
Computação Científica com Python
PDF
Migrando do App Engine para o Heroku
PDF
Qml + Python
PPTX
Palestra sobre Inteligência Coletiva
ODP
(entregando djangoapps)@tangerinalab - pugpe xv
PDF
Python e Cadeias de Markov GHMM
PDF
Apresentando o I Toró de Palestras do PUG-PE
PDF
NoSQL com Cassandra e Python
PDF
Criando comunidades bem sucedidas
PDF
Peça seu código em casamento: Votos, Tópicos e TDD
PDF
Wikilytics
Crab - A Python Framework for Building Recommendation Systems
PyFoursquare: Python Library for Foursquare
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
Rain Toolbox - Previsão de Chuvas
Coding Dojo e Test Driven Development
Python Debugger - PUG-PE
Computação Científica com Python
Migrando do App Engine para o Heroku
Qml + Python
Palestra sobre Inteligência Coletiva
(entregando djangoapps)@tangerinalab - pugpe xv
Python e Cadeias de Markov GHMM
Apresentando o I Toró de Palestras do PUG-PE
NoSQL com Cassandra e Python
Criando comunidades bem sucedidas
Peça seu código em casamento: Votos, Tópicos e TDD
Wikilytics
Anúncio

Semelhante a Python 3.x - Ihh.. E agora ? Como faço ? (20)

PDF
apresentacao.pdf
PPTX
aula3_python.pptx
PPT
Aula3PythonBasico.ppt
PPT
Aula3PythonBasico (1).ppt
PDF
Curso de Python (Básico) - Português
PDF
Linguagem de Programação Python
ODP
Python Emsl2009
PDF
Orientação a objetos em Python (compacto)
PDF
Python e seus desafios
PPTX
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
PDF
aula5 - Manipulação de Strings.pdf
PDF
Python 3 e o futuro da linguagem
PDF
Programando para web com python - Introdução a Python
PDF
Iniciando em Python
PDF
Minicurso Python
PDF
Curso de Python e Django
PDF
Python3
PDF
Cherrypy - um framework para desenvolvimento rápido de aplicações web
apresentacao.pdf
aula3_python.pptx
Aula3PythonBasico.ppt
Aula3PythonBasico (1).ppt
Curso de Python (Básico) - Português
Linguagem de Programação Python
Python Emsl2009
Orientação a objetos em Python (compacto)
Python e seus desafios
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
aula5 - Manipulação de Strings.pdf
Python 3 e o futuro da linguagem
Programando para web com python - Introdução a Python
Iniciando em Python
Minicurso Python
Curso de Python e Django
Python3
Cherrypy - um framework para desenvolvimento rápido de aplicações web

Mais de Marcel Caraciolo (20)

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

Python 3.x - Ihh.. E agora ? Como faço ?

  • 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