introdução a linguagem python: simples e produtiva
DESCRIPTION
Slides (melhorados) da webminar (palestra online) que ministrei no LabDeGaragem.com na terça-feira dia 16/08/2011. A palestra abordou aspectos introdutórios da linguagem e mostrou através de exemplos práticos onde a linguagem pode ser utilizada a favor da produtividade do desenvolvedor.TRANSCRIPT
![Page 1: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/1.jpg)
Python:simples e produtiva
Álvaro Justen aka Turicashttp://twitter.com/turicashttp://github.com/turicas
http://CursoDeArduino.com.br/
![Page 2: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/2.jpg)
Álvaro Justen aka Turicas, prazer!
www.CursoDeArduino.com.br
![Page 3: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/3.jpg)
![Page 4: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/4.jpg)
![Page 5: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/5.jpg)
![Page 6: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/6.jpg)
![Page 7: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/7.jpg)
História
Guido van Rossum
![Page 8: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/8.jpg)
![Page 9: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/9.jpg)
Aplicações● Shell scripts● Administração de sistemas/redes● Aplicações científicas● Computação gráfica● Jogos● Interfaces com o usuário/GUI● Aplicações Web● Robótica● “glue-language”● ...
![Page 10: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/10.jpg)
Principais características● Uso geral● Interpretada, VHLL● Criada por Guido van Rossum em 1989● Multiplataforma● OO, Procedural e funcional● Software livre● Baterias incluídas!● Sintaxe elegante, simples e clara● Tipagem dinâmica e forte
![Page 11: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/11.jpg)
Por que Python?
● Fácil de aprender● Poderosa● Alta produtividade● Estruturas de dados de alto nível● Blocos de código são delimitados por indentação! (?)
![Page 12: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/12.jpg)
Quem usa? Onde é usada?● YouTube● Google/Google App Engine● NASA● Industrial Light & Magic● Globo.com● ...●
● GIMP● Blender● Ubuntu● ...
![Page 13: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/13.jpg)
Onde roda?
● GNU/Linux● Mac OS● *nix● Windows● Android● Nokia S60● Microcontroladores● ...
![Page 14: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/14.jpg)
Como instalar?
GNU/Linux e Mac OS: já tem!
Windows: www.python.org
Android: Android Scripting Layer (SL4A)
![Page 15: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/15.jpg)
![Page 16: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/16.jpg)
![Page 17: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/17.jpg)
iPython
● Debian/Ubuntu/derivados:
sudo aptitude install ipython
● Dica: no Ubuntu:
sudo apt-get install aptitude
![Page 18: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/18.jpg)
Tipos básicos● Inteiro: 42● Ponto flutuante: 3.14● Complexo (!): 1.5 + 5.3j● String: “””minha string”””● Tuplas: (1, “aaa”)● Listas:
[1, 2.3, “abc”, [1, “b”]]● Dicionários:
{'a': 1, 2: 'b', [1, 2]: [3, 4]}
![Page 19: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/19.jpg)
Nada de parênteses,nada de chaves!
if expressao1:
comando1
if expressao2:
comando2
elif expressao3:
comando3
elif expressao4:
comando4
else:
comando5
![Page 20: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/20.jpg)
Listas, strings e slicesIn [1]: l = [1, 3, 4, 'LdG', 'Arduino']
In [2]: print l[1]3
In [3]: print l[1:4][3, 4, 'LdG']
In [4]: for elemento in l: ....: print elemento ....: ....:134LdGArduino
![Page 21: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/21.jpg)
Listas, strings e slices (2)In [5]: virus = 'nome-do-virus.exe' In [6]: print virus[-3:]exe In [7]: print virus[5:]do-virus.exe In [8]: print virus.split('.')['nome-do-virus', 'exe'] In [9]: novo_virus = 'nome.do.virus.exe' In [10]: print novo_virus.split('.')['nome', 'do', 'virus', 'exe'] In [11]: print novo_virus.split('.')[-1]exe In [12]: print 'nome.do.virus.pl'.split('.')[-1]pl
![Page 22: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/22.jpg)
Trabalhando com arquivos
arquivo = open('nome.txt')for linha in arquivo: print linha
arquivo_2 = open('nome-2.txt', 'w')arquivo_2.write('Python rules!')arquivo_2.close()
![Page 23: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/23.jpg)
Baterias incluídas! sys, os, re, string, zlib
socket, urrlib, httplib, imaplib
time, datetime, math, random
doctest, unittest, xml, xmlrpclib
struct, pickle, cPickle, threading
logging, decimal
...
![Page 24: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/24.jpg)
Navegando com Python
import urlliburl = 'http://www.CursoDeArduino.com.br/'pagina = urllib.urlopen(url)print pagina.read()
![Page 25: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/25.jpg)
Rola?
+
![Page 26: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/26.jpg)
![Page 27: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/27.jpg)
pySerial - Instalação
● Debian/Ubuntu/derivados:
sudo aptitude install python-serial
● Dica: no Ubuntu:
sudo apt-get install aptitude
![Page 28: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/28.jpg)
Comandando o Arduinocom Python
import serialporta = '/dev/ttyUSB0'baud_rate = 9600arduino = serial.Serial(porta, baud_rate)arduino.write('H')print arduino.read()arduino.close()
![Page 29: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/29.jpg)
Onde aprender?● Tutoriais:
http://www.python.org.br/http://docs.python.org/tutorial
“Google Python Class”
● Lista Python-Brasil e locais● #python-br @ irc.freenode.net● Eventos:
http://www.PythOnCampus.org/http://www.PythonBrasil.org.br/
● Cursos:http://www.WelcomeToTheDjango.com.br/
http://www.CursoDePython.com.br/
![Page 33: Introdução a linguagem Python: simples e produtiva](https://reader031.vdocuments.site/reader031/viewer/2022020715/54972d18ac795959288b53dc/html5/thumbnails/33.jpg)
http://twitter.com/turicashttp://github.com/turicas
http://CursoDeArduino.com.br/http://blog.justen.eng.br/[email protected]
import this