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

O que tem de tãããããão incrível assim no Python?

O que tem de tãããããão incrível assim no Python?

Luan Fonseca de Farias

November 24, 2017
Tweet

More Decks by Luan Fonseca de Farias

Other Decks in Programming

Transcript

  1. QUEM SOU EU? • @luanfonceca • Pythonista desde 2013 •

    Engenheiro de Software na Labcodes • Natalense que virou pernambucano
  2. CRONOGRAMA 1. Entendendo o ecossistema 2. Primeiros passos 3. Resolvendo

    problemas 4. Comunidade Python 5. Bugginho developer tava errado!
  3. VALE A PENA? June 2017 was the first month that

    Python was the most visited tag on Stack Overflow (…) https://stackoverflow.blog/ 2017/09/06/incredible-growth- python/
  4. MERCARDO DE TRABALHO • 134 empresas no Brasil • 18

    empresas no Nordeste http://www.github.com/python- brasil/PyBusinesses
  5. ONDE ESTUDAR 1. http://wiki.python.org.br/ planet/ 2. http://github.com/ pythonbrasil/talks 3. Python

    Para Zumbis - Fernando Masanori 4. App Engine e Python: Você programa e o Google - Renzo Nuccitelli
  6. THE PYTHON PARADOX "In a recent talk I said something

    that upset a lot of people: that you could get smarter programmers to work on a Python project than you could to work on a Java project." http://www.paulgraham.com/pypar.html
  7. CARACTERÍSTICAS 1. Simplicidade 2. Fácil de aprender 3. Alto nível

    de abstração 4. Realmente orientada a objetos 5. Comunidade
  8. 1. Simplicidade 2. Fácil de aprender 3. Alto nível de

    abstração 4. Realmente orientada a objetos 5. Comunidade CARACTERÍSTICAS
  9. 1. Simplicidade 2. Fácil de aprender 3. Alto nível de

    abstração 4. Realmente orientada a objetos 5. Comunidade CARACTERÍSTICAS
  10. 1. Simplicidade 2. Fácil de aprender 3. Alto nível de

    abstração 4. Realmente orientada a objetos 5. Comunidade CARACTERÍSTICAS
  11. 1. Simplicidade 2. Fácil de aprender 3. Alto nível de

    abstração 4. Realmente orientada a objetos 5. Comunidade CARACTERÍSTICAS
  12. 1. Simplicidade 2. Fácil de aprender 3. Alto nível de

    abstração 4. Realmente orientada a objetos 5. Comunidade CARACTERÍSTICAS
  13. 1. Guia de estilo para boas práticas 2. Convenções de

    projeto 3. https://www.python.org/dev/peps/pep-0008/ 4. PyLint e Flake8 PEP 8
  14. >>> import this The Zen of Python, by Tim Peters

    Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those! ZEN OF PYTHON
  15. PYTHON 3? 1. Lançada em 2008 2. Caracteres especiais por

    padrão 3. Em 2020 a PSF irá parar de suportar o Python 2
  16. $ python Python 3.6.1 (v3.6.1:69c0db5050, Mar 21 2017, 01:21:04) [GCC

    4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>>
  17. >>> lista = [1, 2, 3, 4, 5] >>> maior_item

    = 0 >>> >>> for item in lista: ... if item > maior_item: ... maior_item = item ... >>> maior_item 5
  18. >>> lista = [1, 2, 3, 4, 5] >>> nova_lista

    = [] >>> >>> indice = len(lista) - 1 >>> while indice >= 0: ... nova_lista.append(lista[indice]) ... index = indice ... indice -= 1 ... >>> nova_lista [5, 4, 3, 2, 1]
  19. >>> lista = [1, 2, 3, 4, 5] >>> >>>

    nova_lista = lista.reverse() >>> nova_lista None >>> lista [5, 4, 3, 2, 1]
  20. >>> lista = [1, 2, 3, 4, 5] >>> >>>

    reversed(lista) <list_reverseiterator object at 0x10cc30b00> >>> list(reversed(lista)) [5, 4, 3, 2, 1] >>> lista [1, 2, 3, 4, 5]
  21. >>> lista = [1, 2, 3, 4, 5] >>> >>>

    lista[::-1] [5, 4, 3, 2, 1] >>> lista [1, 2, 3, 4, 5]
  22. INSTALANDO PYTHON 3 NO GNU LINUX / MAC OSX $

    python --version Python 3.6.1
  23. COMO PEDIR AJUDAR • Seja claro sobre o seu problema

    • Informe o que você já tentou • Sempre que possível coloque trechos do código no http://gist.github.com • Informe a versão do seu Python e/ou bibliotecas • SEMPRE INFORME A MENSAGEM DE ERRO
  24. COMO PEDIR AJUDAR • Seja claro sobre o seu problema

    • Informe o que você já tentou • Sempre que possível coloque trechos do código no http://gist.github.com • Informe a versão do seu Python e/ou bibliotecas • SEMPRE INFORME A MENSAGEM DE ERRO
  25. COMO PEDIR AJUDAR • Seja claro sobre o seu problema

    • Informe o que você já tentou • Sempre que possível coloque trechos do código no http://gist.github.com • Informe a versão do seu Python e/ou bibliotecas • SEMPRE INFORME A MENSAGEM DE ERRO
  26. COMO PEDIR AJUDAR • Seja claro sobre o seu problema

    • Informe o que você já tentou • Sempre que possível coloque trechos do código no http://gist.github.com • Informe a versão do seu Python e/ou bibliotecas • SEMPRE INFORME A MENSAGEM DE ERRO
  27. COMO PEDIR AJUDAR • Seja claro sobre o seu problema

    • Informe o que você já tentou • Sempre que possível coloque trechos do código no http://gist.github.com • Informe a versão do seu Python e/ou bibliotecas • SEMPRE INFORME A MENSAGEM DE ERRO
  28. COMO PEDIR AJUDAR • Seja claro sobre o seu problema

    • Informe o que você já tentou • Sempre que possível coloque trechos do código no http://gist.github.com • Informe a versão do seu Python e/ou bibliotecas • SEMPRE INFORME A MENSAGEM DE ERRO
  29. >>> lista = [1, 2, 3, 4, 5] >>> lista.reverse()[0]

    Traceback (most recent call last): File "<input>", line 1, in <module> lista.reverse()[0] TypeError: 'NoneType' object is not subscriptable
  30. >>> dicionario = {'nome': 'Guido'} >>> dicionario['nome'] 'Guido' >>> dicionario['idade']

    Traceback (most recent call last): File "<input>", line 1, in <module> dicionario['idade'] KeyError: 'idade'
  31. >>> '10' + 20 Traceback (most recent call last): File

    "<input>", line 1, in <module> '10' + 20 TypeError: must be str, not int
  32. PESSOAS PARA ACOMPANHAR • Andrews Medina • Fernando Masanori •

    Henrique Bastos • Jessica Temporal • Leticia Portella • Lidiane Monteiro • Paula Grangeiro • Paola Pacheco • Renato Oliveira • Tarsis Azevedo
  33. COMUNIDADES REGIONAIS • GruPy-BA • PyLadies Salvador • PUG-PE (Pernambuco)

    • GruPy-RN (Rio Grande do Norte) • PUG-PI (Piauí) • PUG-MA (Maranhão)
  34. EVENTOS • Conferência Python Brasil • CaiPyra • Python Nordeste

    • Python Sudeste • Python Sul • PyCon Amazonia
  35. ESCOLHENDO UMA ÁREA • Desenvolvimento WEB • Data Science •

    Machine Learning • Web Scraping • IA • DevOps