Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Python 2 ou Python 3?

Avatar for yyyyyyyan yyyyyyyan
October 21, 2018

Python 2 ou Python 3?

Você que está começando em Python, já deve ter se deparado com essa dúvida? Qual versão do Python devemos aprender? A dúvida ainda aparece para desenvolvedores já iniciados no Python - para que versão devemos programar? A princípio, essa dúvida pode não parecer ter muito sentido para programadores que vêm de outras linguagens, como Java, que dão suporte à retrocompatibilidade em cada versão, mas o Python 3 quebra de vez com certos funcionamentos e especificidades da versão anterior, o que pode acabar em problemas.

Com argumentos vindo dos dois lados, nessa palestra tentaremos tirar algumas conclusões entendendo de fato quais são as diferenças (e o porquê elas existem) entre cada versão. Assim, se tudo der certo, concluiremos a palestra com uma ideia melhor de qual versão devemos usar, e com uma visão prática das técnicas que podemos usar para tornar nosso código mais abrangente!

Avatar for yyyyyyyan

yyyyyyyan

October 21, 2018
Tweet

More Decks by yyyyyyyan

Other Decks in Programming

Transcript

  1. 8 Python 2 ou Python 3? Entendendo (finalmente) as diferenças

    entre as duas versões principais da linguagem
  2. >>> print 'Hello, world!' File "<stdin>", line 1 print 'Hello,

    world!' ^ SyntaxError: Missing parentheses in call to 'print'. Did you mean print('Hello, world!')? Python 3
  3. Python 2 >>> input() Oi! Traceback (most recent call last):

    File "<stdin>", line 1, in <module> File "<string>", line 1 Oi! ^ SyntaxError: unexpected EOF while parsing
  4. Python 2 >>> range(10**10) Traceback (most recent call last): File

    "<stdin>", line 1, in <module> MemoryError
  5. Python 2 >>> xrange(10000**10000) Traceback (most recent call last): File

    "<stdin>", line 1, in <module> OverflowError: Python int too large to convert to C long
  6. Python 3 >>> type('Hello, world!') <class 'str'> >>> type(u'Hello, world!')

    <class 'str'> >>> type(b'Hello, world!') <class 'bytes'>
  7. Identificador de GIFs def is_gif(filename): with open(filename, 'rb') as f:

    identificador = f.read(6) return identificador == 'GIF89a'
  8. Identificador de GIFs def is_gif(filename): with open(filename, 'rb') as f:

    identificador = f.read(6) return identificador == b'GIF89a'
  9. 47 Python 2 >>> foo = MinhaClasse() >>> foo <

    'a' True >>> foo < 1 True >>> foo < [] True
  10. 48 Python 2 >>> 999999999 < 'a' True >>> 999999999

    < [] True >>> 999999999.99 < [] True
  11. 49 Python 2 >>> ' ' > [] True >>>

    'str' > 'list' True
  12. 50 Python 3 >>> ' ' > [] Traceback (most

    recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'str' and 'list'
  13. 52 Python 3 >>> while True: ... print('oi') ... print('tchau')

    File "<stdin>", line 3 print('tchau') ^ TabError: inconsistent use of tabs and spaces in indentation
  14. 56 2014 - Python 2 78% X 22% Python 3

    2016 - Python 2 60% X 40% Python 3
  15. 57 2014 - Python 2 78% X 22% Python 3

    2016 - Python 2 60% X 40% Python 3 2017 - Python 2 25% X 75% Python 3
  16. Muito obrigado! Alguma pergunta? Você pode falar comigo em ▪

    @yanorestes ▪ yan.orestes@alura.com.br 67
  17. Design da apresentação Essa apresentação usa as seguintes fontes: ▪

    Títulos: Work sans bold ▪ Corpo: Work sans light ▪ Código: Arial com formatação do tohtml.com Você pode baixar as fontes nessa página https://github.com/weiweihuanghuang/Work-Sans/tree/master/fonts/desktop 69 Layout dos slides e ícones por SlidesCarnival