SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
Python 3 e o futuro da
linguagem
Ou: por favor, migre o seu código!
Lançamento do Python 3
• Primeira versão da linha 3 (3.0) foi lançada oficialmente em
3 de dezembro de 2008, quase 9 anos atrás. O Python 2.7
incorporou algumas das mudanças em seu lançamento
em 2010.
• Foco principal da atualização da linha do Python 3 é “deve
haver uma — e preferivelmente apenas uma — maneira
óbvia de fazê-lo” (the Zen of Python). Bibliotecas foram
agregadas, excluídas, movidas…
• Foi criado o Python Wall of Shame para listar os módulos
mais usados na comunidade que ainda não haviam sido
portados.
Python 3.0 — 3.7
• A linha 3 do Python é o presente e o futuro
próximo da linguagem.
• Os próximos slides mostram algumas mudanças
na linguagem em relação ao Python 2, e, em
seguida, coisas que realmente não existem no
Python 2, e provavelmente nunca existirão.
• O primeiro alfa do Python 3.7 (3.7.0a0) está no
forno…
Python 2 x Python 3
Comparações consistentes
• No Python 2:
• 'a' > 10 # Retorna True
• No Python 3:
• 'a' > 10 # TypeError
Python 2 x Python 3
Unicode como padrão
• Mudança mais radical na linguagem, que exige
maior parte de refatoração de código.
• Hoje o mundo é unicode.
Python 2 x Python 3
Divisão consistente
• No Python 2:
• 3 / 2 # Retorna 1
• No Python 3:
• 3 / 2 # Retorna 1.5
Python 2 x Python 3
Inteiros. Apenas isso
• A diferença entre “integer” e “long” foi
internalizada na linguagem. O interpretador
decide quando vai usar um e quando vai usar o
outro. Número inteiro é número inteiro.
Python 2 x Python 3
Consistências na linguagem
• Todas as classes passam a ser forçadamente
new-style classes, que foram introduzidas no
Python 2.2. Old-style classes não existem mais
(de certo modo).
• range() e métodos de dicionário retornam um
iterável ao invés de uma lista, o que pode ser
muito mais eficiente em relação a uso de
memória.
Novas
funcionalidades
Unpacking avançado
• x, *y, z = range(10)
• y # Retorna [1, 2, 3, 4, 5, 6, 7, 8]
Argumentos protegidos
def farofa(ing_a, ing_b, *, temperada=False)
A única maneira de enviar o “temperada" é através de chamada
explícita farofa(1, 2, temperada=True)
AsyncIO (3.4)
• Forma performática de se trabalhar com código
assíncrono. Diferentemente de multi-threading
(através, por exemplo da biblioteca threading),
o controle de contexto é inteiramente feito na
construção das funções.
• Leitura altamente recomendada
• https://hackernoon.com/asynchronous-python-45df84b82434
ipaddress (3.3)
• Biblioteca builtin para manipulação, verificação
e operações em endereços e redes IPv4/IPv6.
functools.lru_cache (3.2)
• Decorator para memoização de retornos de
métodos.
• Provê um cache least recently used em
biblioteca nativa, builtin, através de um
decorator. Sintaxe extremamente simples.
enum (3.4)
• Excelente para criação de constantes
faulthandler (3.3)
• Permite que o traceback do código que está
sendo executado seja apresentado
explicitamente, quando ocorre um erro ou ao
enviar um sinal direto ao processo.
• Como é implementado em C, pode ser utilizado
para capturar tracebacks inclusive em
segmentation faults ou em deadlocks. Útil
principalmente quando se está desenvolvendo
usando ctypes.
lzma (3.3)
• Compressão e descompressão de dados
utilizando o algoritmo LZMA.
Pathlib (3.3)
from pathlib import Path
mydir = Path(‘/etc/qq’)
myfile = mydir / ‘arquivo.txt’
f-strings (3.6)
Variáveis com unicode
• versão_do_sóftware = 1.0
• NÃO FAÇA ISSO!!!
Anotações de funções
• def (a: int) -> bool:
• Apenas para documentação e bibliotecas de
desenvolvimento / IDEs / etc. Não é validado.
E a minha biblioteca X?
1. 2to3
2. Refactor
3. Troque!
4. Python3 wall of superpowers
5. 90% das bibliotecas mais importantes rodam
em Python 3
–Larry Wall, criador do Perl
“Perl is worse than Python because people
wanted it worse…”
Obrigado
Danilo Martins <mawkee@gmail.com>
Twitter: @mawkee (alguém ainda usa isso?)
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS/CC/G/IT/L/M/MU d+(-)@> s:+> !a C++++$ UBL*++++$ P+ L+++(++++)>+++++ E+ W+++ !N !o+ K—
!w--- O++ M++ !V PS++ PE- Y+ PGP++ t++ 5++ !X R+++ tv-- b+++ DI+++ D+++ G++ e h- r+++ y++**
------END GEEK CODE BLOCK------
Slideshare:
https://www.slideshare.net/DaniloMartins76/python-3-e-o-futuro-da-linguagem

Mais conteúdo relacionado

Mais procurados

Laboratório de Programação I: Arquivos (texto) em disco
Laboratório de Programação I: Arquivos (texto) em discoLaboratório de Programação I: Arquivos (texto) em disco
Laboratório de Programação I: Arquivos (texto) em discoAlex Camargo
 
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
 
Java recursos avançados - filters
Java   recursos avançados - filtersJava   recursos avançados - filters
Java recursos avançados - filtersArmando Daniel
 
Iniciando em Python
Iniciando em PythonIniciando em Python
Iniciando em PythonRober Guerra
 
aula 06 - Logica de programacao
aula 06 - Logica de programacaoaula 06 - Logica de programacao
aula 06 - Logica de programacaoAislan Rafael
 
Python - Programação funcional
Python - Programação funcionalPython - Programação funcional
Python - Programação funcionalfabiocerqueira
 
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
 
Python tão rápido quanto FORTRAN?
Python tão rápido quanto FORTRAN?Python tão rápido quanto FORTRAN?
Python tão rápido quanto FORTRAN?Rodnny Fakhye
 
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 - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução BásicaChristian Perone
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na práticaRafael Cassau
 
Py sintaxe
Py sintaxePy sintaxe
Py sintaxeFlapenta
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolsoJean Lopes
 

Mais procurados (20)

Laboratório de Programação I: Arquivos (texto) em disco
Laboratório de Programação I: Arquivos (texto) em discoLaboratório de Programação I: Arquivos (texto) em disco
Laboratório de Programação I: Arquivos (texto) em disco
 
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 para Desenvolvedores
Python para DesenvolvedoresPython para Desenvolvedores
Python para Desenvolvedores
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Curso de Python e Django
Curso de Python e DjangoCurso de Python e Django
Curso de Python e Django
 
Java recursos avançados - filters
Java   recursos avançados - filtersJava   recursos avançados - filters
Java recursos avançados - filters
 
Iniciando em Python
Iniciando em PythonIniciando em Python
Iniciando em Python
 
aula 06 - Logica de programacao
aula 06 - Logica de programacaoaula 06 - Logica de programacao
aula 06 - Logica de programacao
 
Python - Programação funcional
Python - Programação funcionalPython - Programação funcional
Python - Programação funcional
 
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
 
Python tão rápido quanto FORTRAN?
Python tão rápido quanto FORTRAN?Python tão rápido quanto FORTRAN?
Python tão rápido quanto FORTRAN?
 
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 - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução Básica
 
Comando Traceroute
Comando TracerouteComando Traceroute
Comando Traceroute
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na prática
 
OpenMP Day1
OpenMP Day1OpenMP Day1
OpenMP Day1
 
ptt
pttptt
ptt
 
Py sintaxe
Py sintaxePy sintaxe
Py sintaxe
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
 
Python com TDD
Python com TDDPython com TDD
Python com TDD
 

Semelhante a Python 3 e o futuro da linguagem

Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação PythonJunior Sobrenome
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem PythonLuciano Ramalho
 
Python 3.x - Ihh.. E agora ? Como faço ?
Python 3.x - Ihh.. E agora ? Como faço ?Python 3.x - Ihh.. E agora ? Como faço ?
Python 3.x - Ihh.. E agora ? Como faço ?Marcel Caraciolo
 
Python Training #1 - ed4
Python Training #1 - ed4Python Training #1 - ed4
Python Training #1 - ed4Fabio Spanhol
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e TkCarlos Campani
 
Computação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo TutorialComputação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo TutorialFabio Spanhol
 
Tutorial Python ed. #2
Tutorial Python ed. #2Tutorial Python ed. #2
Tutorial Python ed. #2Fabio Spanhol
 
Aula3PythonBasico (1).ppt
Aula3PythonBasico (1).pptAula3PythonBasico (1).ppt
Aula3PythonBasico (1).pptMichaelArrais1
 
Algoritmos e programacao_em_python
Algoritmos e programacao_em_pythonAlgoritmos e programacao_em_python
Algoritmos e programacao_em_pythonArtur Santos
 
A lógica do Python e seus termos
A lógica do Python e seus termosA lógica do Python e seus termos
A lógica do Python e seus termosValore I/O
 
Python Training #1 - ed5
Python Training #1 - ed5Python Training #1 - ed5
Python Training #1 - ed5Fabio Spanhol
 
Comsolid2011 Introdução Python
Comsolid2011 Introdução PythonComsolid2011 Introdução Python
Comsolid2011 Introdução PythonGleison Rodrigues
 

Semelhante a Python 3 e o futuro da linguagem (20)

Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação Python
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Python 3k
Python 3kPython 3k
Python 3k
 
Python tutorial-ed3
Python tutorial-ed3Python tutorial-ed3
Python tutorial-ed3
 
Python, CPython, Pythonico, Cython
Python, CPython, Pythonico, CythonPython, CPython, Pythonico, Cython
Python, CPython, Pythonico, Cython
 
Introdução à linguagem python
Introdução à linguagem pythonIntrodução à linguagem python
Introdução à linguagem python
 
Python 3.x - Ihh.. E agora ? Como faço ?
Python 3.x - Ihh.. E agora ? Como faço ?Python 3.x - Ihh.. E agora ? Como faço ?
Python 3.x - Ihh.. E agora ? Como faço ?
 
Python Training #1 - ed4
Python Training #1 - ed4Python Training #1 - ed4
Python Training #1 - ed4
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e Tk
 
Computação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo TutorialComputação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo Tutorial
 
Tutorial Python ed. #2
Tutorial Python ed. #2Tutorial Python ed. #2
Tutorial Python ed. #2
 
Aula3PythonBasico (1).ppt
Aula3PythonBasico (1).pptAula3PythonBasico (1).ppt
Aula3PythonBasico (1).ppt
 
Aula3PythonBasico.ppt
Aula3PythonBasico.pptAula3PythonBasico.ppt
Aula3PythonBasico.ppt
 
Introdução a Python
Introdução a PythonIntrodução a Python
Introdução a Python
 
Algoritmos e programacao_em_python
Algoritmos e programacao_em_pythonAlgoritmos e programacao_em_python
Algoritmos e programacao_em_python
 
Python Emsl2009
Python Emsl2009Python Emsl2009
Python Emsl2009
 
A lógica do Python e seus termos
A lógica do Python e seus termosA lógica do Python e seus termos
A lógica do Python e seus termos
 
Python Training #1 - ed5
Python Training #1 - ed5Python Training #1 - ed5
Python Training #1 - ed5
 
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
 
Comsolid2011 Introdução Python
Comsolid2011 Introdução PythonComsolid2011 Introdução Python
Comsolid2011 Introdução Python
 

Python 3 e o futuro da linguagem

  • 1. Python 3 e o futuro da linguagem Ou: por favor, migre o seu código!
  • 2. Lançamento do Python 3 • Primeira versão da linha 3 (3.0) foi lançada oficialmente em 3 de dezembro de 2008, quase 9 anos atrás. O Python 2.7 incorporou algumas das mudanças em seu lançamento em 2010. • Foco principal da atualização da linha do Python 3 é “deve haver uma — e preferivelmente apenas uma — maneira óbvia de fazê-lo” (the Zen of Python). Bibliotecas foram agregadas, excluídas, movidas… • Foi criado o Python Wall of Shame para listar os módulos mais usados na comunidade que ainda não haviam sido portados.
  • 3. Python 3.0 — 3.7 • A linha 3 do Python é o presente e o futuro próximo da linguagem. • Os próximos slides mostram algumas mudanças na linguagem em relação ao Python 2, e, em seguida, coisas que realmente não existem no Python 2, e provavelmente nunca existirão. • O primeiro alfa do Python 3.7 (3.7.0a0) está no forno…
  • 4. Python 2 x Python 3 Comparações consistentes • No Python 2: • 'a' > 10 # Retorna True • No Python 3: • 'a' > 10 # TypeError
  • 5. Python 2 x Python 3 Unicode como padrão • Mudança mais radical na linguagem, que exige maior parte de refatoração de código. • Hoje o mundo é unicode.
  • 6. Python 2 x Python 3 Divisão consistente • No Python 2: • 3 / 2 # Retorna 1 • No Python 3: • 3 / 2 # Retorna 1.5
  • 7. Python 2 x Python 3 Inteiros. Apenas isso • A diferença entre “integer” e “long” foi internalizada na linguagem. O interpretador decide quando vai usar um e quando vai usar o outro. Número inteiro é número inteiro.
  • 8. Python 2 x Python 3 Consistências na linguagem • Todas as classes passam a ser forçadamente new-style classes, que foram introduzidas no Python 2.2. Old-style classes não existem mais (de certo modo). • range() e métodos de dicionário retornam um iterável ao invés de uma lista, o que pode ser muito mais eficiente em relação a uso de memória.
  • 10. Unpacking avançado • x, *y, z = range(10) • y # Retorna [1, 2, 3, 4, 5, 6, 7, 8]
  • 11. Argumentos protegidos def farofa(ing_a, ing_b, *, temperada=False) A única maneira de enviar o “temperada" é através de chamada explícita farofa(1, 2, temperada=True)
  • 12. AsyncIO (3.4) • Forma performática de se trabalhar com código assíncrono. Diferentemente de multi-threading (através, por exemplo da biblioteca threading), o controle de contexto é inteiramente feito na construção das funções. • Leitura altamente recomendada • https://hackernoon.com/asynchronous-python-45df84b82434
  • 13. ipaddress (3.3) • Biblioteca builtin para manipulação, verificação e operações em endereços e redes IPv4/IPv6.
  • 14. functools.lru_cache (3.2) • Decorator para memoização de retornos de métodos. • Provê um cache least recently used em biblioteca nativa, builtin, através de um decorator. Sintaxe extremamente simples.
  • 15. enum (3.4) • Excelente para criação de constantes
  • 16. faulthandler (3.3) • Permite que o traceback do código que está sendo executado seja apresentado explicitamente, quando ocorre um erro ou ao enviar um sinal direto ao processo. • Como é implementado em C, pode ser utilizado para capturar tracebacks inclusive em segmentation faults ou em deadlocks. Útil principalmente quando se está desenvolvendo usando ctypes.
  • 17. lzma (3.3) • Compressão e descompressão de dados utilizando o algoritmo LZMA.
  • 18. Pathlib (3.3) from pathlib import Path mydir = Path(‘/etc/qq’) myfile = mydir / ‘arquivo.txt’
  • 20. Variáveis com unicode • versão_do_sóftware = 1.0 • NÃO FAÇA ISSO!!!
  • 21. Anotações de funções • def (a: int) -> bool: • Apenas para documentação e bibliotecas de desenvolvimento / IDEs / etc. Não é validado.
  • 22. E a minha biblioteca X? 1. 2to3 2. Refactor 3. Troque! 4. Python3 wall of superpowers 5. 90% das bibliotecas mais importantes rodam em Python 3
  • 23. –Larry Wall, criador do Perl “Perl is worse than Python because people wanted it worse…”
  • 24. Obrigado Danilo Martins <mawkee@gmail.com> Twitter: @mawkee (alguém ainda usa isso?) -----BEGIN GEEK CODE BLOCK----- Version: 3.12 GCS/CC/G/IT/L/M/MU d+(-)@> s:+> !a C++++$ UBL*++++$ P+ L+++(++++)>+++++ E+ W+++ !N !o+ K— !w--- O++ M++ !V PS++ PE- Y+ PGP++ t++ 5++ !X R+++ tv-- b+++ DI+++ D+++ G++ e h- r+++ y++** ------END GEEK CODE BLOCK------ Slideshare: https://www.slideshare.net/DaniloMartins76/python-3-e-o-futuro-da-linguagem