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

Python 2 ou Python 3?

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!

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. 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