Slide 1

Slide 1 text

1 Your Logo Here Linguagem Python III Semana Acadêmica da Ciência da Computação Universidade Federal de Alfenas 25 / 10 / 2013 25 / 10 / 2013

Slide 2

Slide 2 text

25 / 10 / 2013 2/66 LOGO Sumário ✔ O que é Python? ✔ Quem utiliza? ✔ Código! ✔ Por que aprender? ✔ Por onde eu começo? ✔ Comunidade ✔ Perguntas

Slide 3

Slide 3 text

25 / 10 / 2013 3/66 LOGO Renne Rocha ✔ Engenheiro Eletricista - UNICAMP ✔ Desenvolvedor Python – Media Works ✔ Fundador do Laboratório Hacker de Campinas

Slide 4

Slide 4 text

25 / 10 / 2013 4/66 LOGO O que é Python?

Slide 5

Slide 5 text

25 / 10 / 2013 5/66 LOGO O que é Python? Linguagem de programação de uso geral

Slide 6

Slide 6 text

25 / 10 / 2013 6/66 LOGO O que é Python? Linguagem de programação de uso geral Desenvolvimento Web, Desktop, Redes, Computação Gráfica, Computação Científica, Jogos, etc...

Slide 7

Slide 7 text

25 / 10 / 2013 7/66 LOGO O que é Python? Multi-plataforma

Slide 8

Slide 8 text

25 / 10 / 2013 8/66 LOGO O que é Python? Multi-plataforma Linux, Windows, Unic, Mac OS X, JVM, .NET, etc...

Slide 9

Slide 9 text

25 / 10 / 2013 9/66 LOGO O que é Python? Multi-paradigma

Slide 10

Slide 10 text

25 / 10 / 2013 10/66 LOGO O que é Python? Multi-paradigma Procedural, OO, funcional

Slide 11

Slide 11 text

25 / 10 / 2013 11/66 LOGO O que é Python? Fácil de aprender

Slide 12

Slide 12 text

25 / 10 / 2013 12/66 LOGO O que é Python? Fácil de aprender Sintaxe clara e elegante, produtividade em poucos dias

Slide 13

Slide 13 text

25 / 10 / 2013 13/66 LOGO O que é Python? Extensível

Slide 14

Slide 14 text

25 / 10 / 2013 14/66 LOGO O que é Python? Extensível Se você sabe C, é fácil adicionar novas funções ou módulos para o interpretador

Slide 15

Slide 15 text

25 / 10 / 2013 15/66 LOGO O que é Python? Open source

Slide 16

Slide 16 text

25 / 10 / 2013 16/66 LOGO O que é Python? Open source Python License, mantido pela Python Software Foundation

Slide 17

Slide 17 text

25 / 10 / 2013 17/66 LOGO O que é Python? Madura

Slide 18

Slide 18 text

25 / 10 / 2013 18/66 LOGO O que é Python? Madura Desenvolvida em 1990 por Guido van Rossum. Utilizada por milhares de empresas em todo o mundo.

Slide 19

Slide 19 text

25 / 10 / 2013 19/66 LOGO O que é Python? Baterias Incluídas

Slide 20

Slide 20 text

25 / 10 / 2013 20/66 LOGO O que é Python? Baterias Incluídas Listas, dicionários, manipulação de strings, sockets, expressões regulares, internet, interface gráfica, threads, logs, CSV, XML, etc...

Slide 21

Slide 21 text

25 / 10 / 2013 21/66 LOGO O que é Python? Python Package Index

Slide 22

Slide 22 text

25 / 10 / 2013 22/66 LOGO O que é Python? Python Package Index Repositório de projetos em Python

Slide 23

Slide 23 text

25 / 10 / 2013 23/66 LOGO O que é Python?

Slide 24

Slide 24 text

25 / 10 / 2013 24/66 LOGO Quem utiliza?

Slide 25

Slide 25 text

25 / 10 / 2013 25/66 LOGO Quem utiliza? http://www.google.com/

Slide 26

Slide 26 text

25 / 10 / 2013 26/66 LOGO Quem utiliza? http://www.google.com/ "Python has been an important part of Google since the beginning, and remains so as the system grows and evolves. Today dozens of Google engineers use Python, and we're looking for more people with skills in this language." said Peter Norvig, director of search quality at Google, Inc.

Slide 27

Slide 27 text

25 / 10 / 2013 27/66 LOGO Quem utiliza? http://www.brasil.gov.br/

Slide 28

Slide 28 text

25 / 10 / 2013 28/66 LOGO Quem utiliza? http://www.globo.com/

Slide 29

Slide 29 text

25 / 10 / 2013 29/66 LOGO Quem utiliza? http://www.youtube.com/

Slide 30

Slide 30 text

25 / 10 / 2013 30/66 LOGO Quem utiliza? http://www.dropbox.com/

Slide 31

Slide 31 text

25 / 10 / 2013 31/66 LOGO Quem utiliza?

Slide 32

Slide 32 text

25 / 10 / 2013 32/66 LOGO Quem utiliza? http://www.ilm.com/

Slide 33

Slide 33 text

25 / 10 / 2013 33/66 LOGO “Talk is cheap. Show me the code.” Linus Torvalds – Criador do Linux Message to linux-kernel mailing list - https://lkml.org/lkml/2000/8/25/132

Slide 34

Slide 34 text

25 / 10 / 2013 34/66 LOGO print 'Hello World'

Slide 35

Slide 35 text

25 / 10 / 2013 35/66 LOGO >>> 2 + 2 4 >>> heigth = 21 >>> weigth = 2 >>> area = weight * height >>> print area 42 >>> (3+1j)*3 (9+3j)

Slide 36

Slide 36 text

25 / 10 / 2013 36/66 LOGO >>> print n Traceback (most recent call last): File "", line 1, in NameError: name 'n' is not defined

Slide 37

Slide 37 text

25 / 10 / 2013 37/66 LOGO >>> a = '1' >>> b = 2 >>> c = a + b Traceback (most recent call last): File "", line 1, in TypeError: cannot concatenate 'str' and 'int' objects

Slide 38

Slide 38 text

25 / 10 / 2013 38/66 LOGO >>> a = 'Boa Tarde UNIFAL' >>> a[4] 'T' >>> a[10:] 'UNIFAL' >>> a[4:9] 'Tarde' >>> a[­1] 'L'

Slide 39

Slide 39 text

25 / 10 / 2013 39/66 LOGO >>> a = ['spam', 'eggs', 100, 1234] >>> a ['spam', 'eggs', 100, 1234] >>> a[0] 'spam' >>> a[­2] 100 >>> a[1:­1] ['eggs', 100] >>> a[0] = 'ni' >>> a ['ni', 'eggs', 100, 1234]

Slide 40

Slide 40 text

25 / 10 / 2013 40/66 LOGO >>> frameworks = ['django', 'flask', 'pyramid', 'web2py'] >>> for framework in frameworks: ... print framework, len(framework) ... django 6 flask 5 pyramid 7 web2py 6

Slide 41

Slide 41 text

25 / 10 / 2013 41/66 LOGO >>> squares = [] >>> for x in range(10): ... squares.append(x**2) ... >>> squares [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] >>> squares = [x**2 for x in range(10)] >>> squares [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

Slide 42

Slide 42 text

25 / 10 / 2013 42/66 LOGO >>> bdfl_phones = { ... 'Guido': 12345, 'Jacob': 65732, 'Linus': 99999} >>> bdfl_phones.keys() ['Jacob', 'Linux', 'Guido'] >>> bdfl_phones['Linus'] 99999

Slide 43

Slide 43 text

25 / 10 / 2013 43/66 LOGO from twisted.internet import protocol, reactor class Echo(protocol.Protocol): def dataReceived(self, data): self.transport.write(data) class EchoFactory(protocol.Factory): def buildProtocol(self, addr): return Echo() reactor.listenTCP(1234, EchoFactory()) reactor.run()

Slide 44

Slide 44 text

25 / 10 / 2013 44/66 LOGO >>> import numpy as np >>> from scipy import linalg >>> A = np.array([[1,2],[3,4]]) >>> A array([[1, 2], [3, 4]]) >>> linalg.inv(A) array([[­2. , 1. ], [ 1.5, ­0.5]]) >>> linalg.det(A) ­2.0

Slide 45

Slide 45 text

25 / 10 / 2013 45/66 LOGO from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": app.run()

Slide 46

Slide 46 text

25 / 10 / 2013 46/66 LOGO import numpy as np import matplotlib.pyplot as plt Y, X = np.mgrid[­3:3:100j, ­3:3:100j] U = ­1 ­ X**2 + Y V = 1 + X ­ Y**2 speed = np.sqrt(U*U + V*V) plt.streamplot(X, Y, U, V, color=U, linewidth=2, cmap=plt.cm.autumn) plt.colorbar() f, (ax1, ax2) = plt.subplots(ncols=2) ax1.streamplot(X, Y, U, V, density=[0.5, 1]) lw = 5*speed/speed.max() ax2.streamplot(X, Y, U, V, density=0.6, color='k', linewidth=lw) plt.show()

Slide 47

Slide 47 text

25 / 10 / 2013 47/66 LOGO import numpy as np import matplotlib.pyplot as plt Y, X = np.mgrid[­3:3:100j, ­3:3:100j] U = ­1 ­ X**2 + Y V = 1 + X ­ Y**2 speed = np.sqrt(U*U + V*V) plt.streamplot(X, Y, U, V, color=U, linewidth=2, cmap=plt.cm.autumn) plt.colorbar() f, (ax1, ax2) = plt.subplots(ncols=2) ax1.streamplot(X, Y, U, V, density=[0.5, 1]) lw = 5*speed/speed.max() ax2.streamplot(X, Y, U, V, density=0.6, color='k', linewidth=lw) plt.show()

Slide 48

Slide 48 text

25 / 10 / 2013 48/66 LOGO Por que aprender?

Slide 49

Slide 49 text

25 / 10 / 2013 49/66 LOGO Por que aprender? Linguagem acessível e fácil de aprender

Slide 50

Slide 50 text

25 / 10 / 2013 50/66 LOGO Por que aprender? Muitas áreas de atuação

Slide 51

Slide 51 text

25 / 10 / 2013 51/66 LOGO Por que aprender? Muitas áreas de atuação EM CRESCIMENTO! FALTAM PROGRAMADORES!

Slide 52

Slide 52 text

25 / 10 / 2013 52/66 LOGO Por que aprender? Diversão! É uma linguagem divertida de usar!

Slide 53

Slide 53 text

25 / 10 / 2013 53/66 LOGO Por onde eu começo?

Slide 54

Slide 54 text

25 / 10 / 2013 54/66 LOGO Por onde eu começo? http://www.python.org/

Slide 55

Slide 55 text

25 / 10 / 2013 55/66 LOGO Por onde eu começo? http://pycursos.com/python-para-zumbis/

Slide 56

Slide 56 text

25 / 10 / 2013 56/66 LOGO Por onde eu começo? http://python.pro.br/

Slide 57

Slide 57 text

25 / 10 / 2013 57/66 LOGO Por onde eu começo? http://welcometothedjango.com.br/

Slide 58

Slide 58 text

25 / 10 / 2013 58/66 LOGO Por onde eu começo? https://www.udacity.com/course/cs101

Slide 59

Slide 59 text

25 / 10 / 2013 59/66 LOGO Comunidade

Slide 60

Slide 60 text

25 / 10 / 2013 60/66 LOGO Comunidade ✔ Grupos de Usuários ✔ PUG-MG http://python-mg.github.io ✔ GrupySP http://groups.google.com/group/grupy-sp ✔ PythonRio http://br.groups.yahoo.com/group/pythonrio ✔ ...

Slide 61

Slide 61 text

25 / 10 / 2013 61/66 LOGO Comunidade ✔ Listas de Discussão ✔ python-brasil (português) https://groups.google.com/forum/#!forum/python-brasil ✔ python-list (inglês) https://mail.python.org/mailman/listinfo/python-list

Slide 62

Slide 62 text

25 / 10 / 2013 62/66 LOGO Comunidade ✔ IRC – chat.freenode.net ✔ #python-br (português) ✔ #python (inglês)

Slide 63

Slide 63 text

25 / 10 / 2013 63/66 LOGO Comunidade ✔ Eventos ✔ PythonBrasil[9] http://www.pythonbrasil.org.br/ ✔ RuPy http://rupy.com.br ✔ PyCon http://www.pycon.org/ ✔ ...

Slide 64

Slide 64 text

25 / 10 / 2013 64/66 LOGO Comunidade ✔ Listas de Discussão ✔ python-brasil (português) https://groups.google.com/forum/#!forum/python-brasil ✔ python-list (inglês) https://mail.python.org/mailman/listinfo/python-list

Slide 65

Slide 65 text

25 / 10 / 2013 65/66 LOGO Não tenha medo!

Slide 66

Slide 66 text

25 / 10 / 2013 66/66 LOGO Obrigado! ✔ [email protected] ✔ @rennerocha ✔ http://github.com/rennerocha ✔ http://rennerocha.com/ ✔ http://speakerdeck.com/rennerocha/