SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
Python:
 simples e produtiva




Álvaro Justen aka Turicas
   http://twitter.com/turicas
   http://github.com/turicas
http://CursoDeArduino.com.br/
Álvaro Justen aka Turicas, prazer!




      www.CursoDeArduino.com.br
          @turicas
alvaro@CursoDeArduino.com.br
História




Guido van Rossum
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”
●   ...
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
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! (?)
Quem usa? Onde é usada?
●   YouTube
●   Google/Google App Engine
●   NASA
●   Industrial Light & Magic
●   Globo.com
●   ...
●

●   GIMP
●   Blender
●   Ubuntu
●   ...
Onde roda?

●   GNU/Linux
●   Mac OS
●   *nix
●   Windows
●   Android
●   Nokia S60
●   Microcontroladores
●   ...
Como instalar?


  GNU/Linux e Mac OS: já tem!

    Windows: www.python.org

Android: Android Scripting Layer
             (SL4A)
iPython

●   Debian/Ubuntu/derivados:
    sudo aptitude install ipython

●   Dica: no Ubuntu:
    sudo apt-get install aptitude
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]}
Nada de parênteses,
           nada de chaves!
if expressao1:
    comando1
    if expressao2:
        comando2
    elif expressao3:
        comando3
elif expressao4:
    comando4
else:
    comando5
Listas, strings e slices
In [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
    ....:
    ....:
1
3
4
LdG
Arduino
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
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()
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
   ...
Navegando com Python




import urllib
url = 'http://www.CursoDeArduino.com.br/'
pagina = urllib.urlopen(url)
print pagina.read()
Rola?




   +
pySerial - Instalação

●   Debian/Ubuntu/derivados:
    sudo aptitude install python-serial


●   Dica: no Ubuntu:
      sudo apt-get install aptitude
Comandando o Arduino
           com Python


import serial
porta = '/dev/ttyUSB0'
baud_rate = 9600
arduino = serial.Serial(porta, baud_rate)
arduino.write('H')
print arduino.read()
arduino.close()
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/
Ficou interessado?




http://CursoDeArduino.com.br/pesquisa
São Paulo
   29/setembro a 1º/outubro


http://www.pythonbrasil.org.br/
http://www.HackNRio.org/
        Dezembro/2011
              na
   Cidade maravilhosa! o/
import this




  http://twitter.com/turicas
  http://github.com/turicas
http://CursoDeArduino.com.br/
  http://blog.justen.eng.br/
 alvaro@CursoDeArduino.com.br

Mais conteúdo relacionado

Mais procurados

import brasil: Dados Abertos de Forma Fácil
import brasil: Dados Abertos de Forma Fácilimport brasil: Dados Abertos de Forma Fácil
import brasil: Dados Abertos de Forma FácilÁlvaro Justen
 
Software Livre versus Open Source
Software Livre versus Open SourceSoftware Livre versus Open Source
Software Livre versus Open SourceÁlvaro Justen
 
Arduino (para fazedores)
Arduino (para fazedores)Arduino (para fazedores)
Arduino (para fazedores)Álvaro Justen
 
Facilitando a vida com Raspberry Pi e Arduino
Facilitando a vida com Raspberry Pi e ArduinoFacilitando a vida com Raspberry Pi e Arduino
Facilitando a vida com Raspberry Pi e ArduinoThiago Da Silva
 
Introdução a automação residencial com Raspberry PI
Introdução a automação residencial com Raspberry PIIntrodução a automação residencial com Raspberry PI
Introdução a automação residencial com Raspberry PIRogerio Alencar Filho
 
Desvendando o python
Desvendando o pythonDesvendando o python
Desvendando o pythonRodrigo Lira
 
Como se tornar um programador melhor - Saci 2017 IFSul Bagé
Como se tornar um programador melhor - Saci 2017 IFSul BagéComo se tornar um programador melhor - Saci 2017 IFSul Bagé
Como se tornar um programador melhor - Saci 2017 IFSul BagéJerônimo Medina Madruga
 
Arduino, Robótica e Computação nas Nuvens
Arduino, Robótica e Computação nas NuvensArduino, Robótica e Computação nas Nuvens
Arduino, Robótica e Computação nas NuvensMarco Antonio Maciel
 
Arduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoArduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoLuciano Ramalho
 
PHP e Robótica com Arduino - TDC 2012
PHP e Robótica com Arduino - TDC 2012PHP e Robótica com Arduino - TDC 2012
PHP e Robótica com Arduino - TDC 2012Marco Antonio Maciel
 
Conhencendo Python e por que ela importa?
Conhencendo Python e por que ela importa?Conhencendo Python e por que ela importa?
Conhencendo Python e por que ela importa?Marcel Caraciolo
 
Comsolid2011 Introdução Python
Comsolid2011 Introdução PythonComsolid2011 Introdução Python
Comsolid2011 Introdução PythonGleison Rodrigues
 

Mais procurados (20)

import brasil: Dados Abertos de Forma Fácil
import brasil: Dados Abertos de Forma Fácilimport brasil: Dados Abertos de Forma Fácil
import brasil: Dados Abertos de Forma Fácil
 
Software Livre versus Open Source
Software Livre versus Open SourceSoftware Livre versus Open Source
Software Livre versus Open Source
 
Arduino (para fazedores)
Arduino (para fazedores)Arduino (para fazedores)
Arduino (para fazedores)
 
Facilitando a vida com Raspberry Pi e Arduino
Facilitando a vida com Raspberry Pi e ArduinoFacilitando a vida com Raspberry Pi e Arduino
Facilitando a vida com Raspberry Pi e Arduino
 
Canivete python
Canivete pythonCanivete python
Canivete python
 
Introdução a automação residencial com Raspberry PI
Introdução a automação residencial com Raspberry PIIntrodução a automação residencial com Raspberry PI
Introdução a automação residencial com Raspberry PI
 
Canivete suíço do Python
Canivete suíço do PythonCanivete suíço do Python
Canivete suíço do Python
 
Python Poli 2010
Python Poli 2010Python Poli 2010
Python Poli 2010
 
Desvendando o python
Desvendando o pythonDesvendando o python
Desvendando o python
 
Hello, Python!
Hello, Python!Hello, Python!
Hello, Python!
 
Como se tornar um programador melhor - Saci 2017 IFSul Bagé
Como se tornar um programador melhor - Saci 2017 IFSul BagéComo se tornar um programador melhor - Saci 2017 IFSul Bagé
Como se tornar um programador melhor - Saci 2017 IFSul Bagé
 
Arduino, Robótica e Computação nas Nuvens
Arduino, Robótica e Computação nas NuvensArduino, Robótica e Computação nas Nuvens
Arduino, Robótica e Computação nas Nuvens
 
Apresentação 2
Apresentação 2Apresentação 2
Apresentação 2
 
Radioino
RadioinoRadioino
Radioino
 
Arduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoArduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojo
 
PHP e Robótica com Arduino - TDC 2012
PHP e Robótica com Arduino - TDC 2012PHP e Robótica com Arduino - TDC 2012
PHP e Robótica com Arduino - TDC 2012
 
Como tornar-se um programador Python melhor
Como tornar-se um programador Python melhorComo tornar-se um programador Python melhor
Como tornar-se um programador Python melhor
 
Dev tools
Dev toolsDev tools
Dev tools
 
Conhencendo Python e por que ela importa?
Conhencendo Python e por que ela importa?Conhencendo Python e por que ela importa?
Conhencendo Python e por que ela importa?
 
Comsolid2011 Introdução Python
Comsolid2011 Introdução PythonComsolid2011 Introdução Python
Comsolid2011 Introdução Python
 

Semelhante a Introdução a linguagem Python: simples e produtiva

Arduino e Python: Do It Yourself
Arduino e Python: Do It YourselfArduino e Python: Do It Yourself
Arduino e Python: Do It YourselfBruno Nascimento
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Flávio Ribeiro
 
Por que Python? Vamos Conhecer? Vamos Aprender?
Por que Python? Vamos Conhecer? Vamos Aprender?Por que Python? Vamos Conhecer? Vamos Aprender?
Por que Python? Vamos Conhecer? Vamos Aprender?Juliano Atanazio
 
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDeviceHackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDeviceRicardo Rufino
 
Oficina de IoT conhecendo ESP8266 #CPBR12
Oficina de IoT conhecendo ESP8266 #CPBR12Oficina de IoT conhecendo ESP8266 #CPBR12
Oficina de IoT conhecendo ESP8266 #CPBR12Douglas Esteves
 
Python No Terra (2006-12-21)
Python No Terra  (2006-12-21)Python No Terra  (2006-12-21)
Python No Terra (2006-12-21)Rudá Moura
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)Ricardo Rufino
 
Aprenda a programar python
Aprenda a programar pythonAprenda a programar python
Aprenda a programar pythonLourenço Junior
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem PythonLuciano Ramalho
 
Programando Software Livre em C
Programando Software Livre em CProgramando Software Livre em C
Programando Software Livre em CDiego Santos
 

Semelhante a Introdução a linguagem Python: simples e produtiva (20)

Arduino e Python: Do It Yourself
Arduino e Python: Do It YourselfArduino e Python: Do It Yourself
Arduino e Python: Do It Yourself
 
Apresentacao sfd-poa
Apresentacao sfd-poaApresentacao sfd-poa
Apresentacao sfd-poa
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
 
Aula 9 - Introdução ao Python
Aula 9 - Introdução ao PythonAula 9 - Introdução ao Python
Aula 9 - Introdução ao Python
 
Por que Python? Vamos Conhecer? Vamos Aprender?
Por que Python? Vamos Conhecer? Vamos Aprender?Por que Python? Vamos Conhecer? Vamos Aprender?
Por que Python? Vamos Conhecer? Vamos Aprender?
 
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDeviceHackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
 
Oficina de IoT conhecendo ESP8266 #CPBR12
Oficina de IoT conhecendo ESP8266 #CPBR12Oficina de IoT conhecendo ESP8266 #CPBR12
Oficina de IoT conhecendo ESP8266 #CPBR12
 
Minicurso de Arduino Básico
Minicurso de Arduino BásicoMinicurso de Arduino Básico
Minicurso de Arduino Básico
 
Arduino
ArduinoArduino
Arduino
 
Python No Terra (2006-12-21)
Python No Terra  (2006-12-21)Python No Terra  (2006-12-21)
Python No Terra (2006-12-21)
 
Mini Curso Python
Mini Curso PythonMini Curso Python
Mini Curso Python
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)
 
Aprenda a programar python
Aprenda a programar pythonAprenda a programar python
Aprenda a programar python
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Oficina de IoT CPBS3
Oficina de IoT CPBS3Oficina de IoT CPBS3
Oficina de IoT CPBS3
 
Calourada2010
Calourada2010Calourada2010
Calourada2010
 
Introdução a plataforma arduino
Introdução a plataforma arduinoIntrodução a plataforma arduino
Introdução a plataforma arduino
 
Programando Software Livre em C
Programando Software Livre em CProgramando Software Livre em C
Programando Software Livre em C
 
Apresentando o Arduino - UESPI
Apresentando o Arduino - UESPIApresentando o Arduino - UESPI
Apresentando o Arduino - UESPI
 

Mais de Álvaro Justen

Sobre os ombos de gigantes
Sobre os ombos de gigantesSobre os ombos de gigantes
Sobre os ombos de gigantesÁlvaro Justen
 
Projeto Brasil.IO COVID-19: Dados Públicos Acessíveis
Projeto Brasil.IO COVID-19: Dados Públicos AcessíveisProjeto Brasil.IO COVID-19: Dados Públicos Acessíveis
Projeto Brasil.IO COVID-19: Dados Públicos AcessíveisÁlvaro Justen
 
Dados abertos, Python e PostgreSQL: a combinação perfeita
Dados abertos, Python e PostgreSQL: a combinação perfeitaDados abertos, Python e PostgreSQL: a combinação perfeita
Dados abertos, Python e PostgreSQL: a combinação perfeitaÁlvaro Justen
 
A era da pós-verdade - minhas reflexões e crenças
A era da pós-verdade - minhas reflexões e crençasA era da pós-verdade - minhas reflexões e crenças
A era da pós-verdade - minhas reflexões e crençasÁlvaro Justen
 
Realmente precisamos de big data?
Realmente precisamos de big data?Realmente precisamos de big data?
Realmente precisamos de big data?Álvaro Justen
 
Ciência de Dados na Linha de Comando
Ciência de Dados na Linha de ComandoCiência de Dados na Linha de Comando
Ciência de Dados na Linha de ComandoÁlvaro Justen
 
Brasil.IO: Libertação de Dados Públicos, com Python
Brasil.IO: Libertação de Dados Públicos, com PythonBrasil.IO: Libertação de Dados Públicos, com Python
Brasil.IO: Libertação de Dados Públicos, com PythonÁlvaro Justen
 
#opendata #fail: Causos da Transparência Brasileira
#opendata #fail: Causos da Transparência Brasileira#opendata #fail: Causos da Transparência Brasileira
#opendata #fail: Causos da Transparência BrasileiraÁlvaro Justen
 
Brasil.IO: Dados Abertos para Mais Democracia
Brasil.IO: Dados Abertos para Mais DemocraciaBrasil.IO: Dados Abertos para Mais Democracia
Brasil.IO: Dados Abertos para Mais DemocraciaÁlvaro Justen
 
Dados abertos, direito autoral e democracia
Dados abertos, direito autoral e democraciaDados abertos, direito autoral e democracia
Dados abertos, direito autoral e democraciaÁlvaro Justen
 
Jornalismo de Dados: Programando a Democracia no Brasil
Jornalismo de Dados: Programando a Democracia no BrasilJornalismo de Dados: Programando a Democracia no Brasil
Jornalismo de Dados: Programando a Democracia no BrasilÁlvaro Justen
 
Introdução a programação com Python (para jornalistas)
Introdução a programação com Python (para jornalistas)Introdução a programação com Python (para jornalistas)
Introdução a programação com Python (para jornalistas)Álvaro Justen
 
Datos Tabulares: La Manera Pythónica
Datos Tabulares: La Manera PythónicaDatos Tabulares: La Manera Pythónica
Datos Tabulares: La Manera PythónicaÁlvaro Justen
 
[PyBr11] Lendo dados tabulares: versão pythônica
[PyBr11] Lendo dados tabulares: versão pythônica[PyBr11] Lendo dados tabulares: versão pythônica
[PyBr11] Lendo dados tabulares: versão pythônicaÁlvaro Justen
 
Arduino: Robótica e Automação com Software e Hardware Livres
Arduino: Robótica e Automação com Software e Hardware LivresArduino: Robótica e Automação com Software e Hardware Livres
Arduino: Robótica e Automação com Software e Hardware LivresÁlvaro Justen
 
Capturando dados com Python - UAI Python
Capturando dados com Python - UAI PythonCapturando dados com Python - UAI Python
Capturando dados com Python - UAI PythonÁlvaro Justen
 
Introdução ao Arduino: ArduinoDay Rio 2015
Introdução ao Arduino: ArduinoDay Rio 2015Introdução ao Arduino: ArduinoDay Rio 2015
Introdução ao Arduino: ArduinoDay Rio 2015Álvaro Justen
 
Dados Abertos e Meio Ambiente
Dados Abertos e Meio AmbienteDados Abertos e Meio Ambiente
Dados Abertos e Meio AmbienteÁlvaro Justen
 
Arduino no Dia-Debian/RJ 2011
Arduino no Dia-Debian/RJ 2011Arduino no Dia-Debian/RJ 2011
Arduino no Dia-Debian/RJ 2011Álvaro Justen
 

Mais de Álvaro Justen (20)

Sobre os ombos de gigantes
Sobre os ombos de gigantesSobre os ombos de gigantes
Sobre os ombos de gigantes
 
Projeto Brasil.IO COVID-19: Dados Públicos Acessíveis
Projeto Brasil.IO COVID-19: Dados Públicos AcessíveisProjeto Brasil.IO COVID-19: Dados Públicos Acessíveis
Projeto Brasil.IO COVID-19: Dados Públicos Acessíveis
 
Dados abertos, Python e PostgreSQL: a combinação perfeita
Dados abertos, Python e PostgreSQL: a combinação perfeitaDados abertos, Python e PostgreSQL: a combinação perfeita
Dados abertos, Python e PostgreSQL: a combinação perfeita
 
A era da pós-verdade - minhas reflexões e crenças
A era da pós-verdade - minhas reflexões e crençasA era da pós-verdade - minhas reflexões e crenças
A era da pós-verdade - minhas reflexões e crenças
 
Realmente precisamos de big data?
Realmente precisamos de big data?Realmente precisamos de big data?
Realmente precisamos de big data?
 
Ciência de Dados na Linha de Comando
Ciência de Dados na Linha de ComandoCiência de Dados na Linha de Comando
Ciência de Dados na Linha de Comando
 
Brasil.IO: Libertação de Dados Públicos, com Python
Brasil.IO: Libertação de Dados Públicos, com PythonBrasil.IO: Libertação de Dados Públicos, com Python
Brasil.IO: Libertação de Dados Públicos, com Python
 
#opendata #fail: Causos da Transparência Brasileira
#opendata #fail: Causos da Transparência Brasileira#opendata #fail: Causos da Transparência Brasileira
#opendata #fail: Causos da Transparência Brasileira
 
Brasil.IO: Dados Abertos para Mais Democracia
Brasil.IO: Dados Abertos para Mais DemocraciaBrasil.IO: Dados Abertos para Mais Democracia
Brasil.IO: Dados Abertos para Mais Democracia
 
Dados abertos, direito autoral e democracia
Dados abertos, direito autoral e democraciaDados abertos, direito autoral e democracia
Dados abertos, direito autoral e democracia
 
Jornalismo de Dados: Programando a Democracia no Brasil
Jornalismo de Dados: Programando a Democracia no BrasilJornalismo de Dados: Programando a Democracia no Brasil
Jornalismo de Dados: Programando a Democracia no Brasil
 
Python no Jornalismo
Python no JornalismoPython no Jornalismo
Python no Jornalismo
 
Introdução a programação com Python (para jornalistas)
Introdução a programação com Python (para jornalistas)Introdução a programação com Python (para jornalistas)
Introdução a programação com Python (para jornalistas)
 
Datos Tabulares: La Manera Pythónica
Datos Tabulares: La Manera PythónicaDatos Tabulares: La Manera Pythónica
Datos Tabulares: La Manera Pythónica
 
[PyBr11] Lendo dados tabulares: versão pythônica
[PyBr11] Lendo dados tabulares: versão pythônica[PyBr11] Lendo dados tabulares: versão pythônica
[PyBr11] Lendo dados tabulares: versão pythônica
 
Arduino: Robótica e Automação com Software e Hardware Livres
Arduino: Robótica e Automação com Software e Hardware LivresArduino: Robótica e Automação com Software e Hardware Livres
Arduino: Robótica e Automação com Software e Hardware Livres
 
Capturando dados com Python - UAI Python
Capturando dados com Python - UAI PythonCapturando dados com Python - UAI Python
Capturando dados com Python - UAI Python
 
Introdução ao Arduino: ArduinoDay Rio 2015
Introdução ao Arduino: ArduinoDay Rio 2015Introdução ao Arduino: ArduinoDay Rio 2015
Introdução ao Arduino: ArduinoDay Rio 2015
 
Dados Abertos e Meio Ambiente
Dados Abertos e Meio AmbienteDados Abertos e Meio Ambiente
Dados Abertos e Meio Ambiente
 
Arduino no Dia-Debian/RJ 2011
Arduino no Dia-Debian/RJ 2011Arduino no Dia-Debian/RJ 2011
Arduino no Dia-Debian/RJ 2011
 

Introdução a linguagem Python: simples e produtiva

  • 1. Python: simples e produtiva Álvaro Justen aka Turicas http://twitter.com/turicas http://github.com/turicas http://CursoDeArduino.com.br/
  • 2. Álvaro Justen aka Turicas, prazer! www.CursoDeArduino.com.br @turicas alvaro@CursoDeArduino.com.br
  • 3.
  • 4.
  • 5.
  • 6.
  • 8.
  • 9. 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” ● ...
  • 10. 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
  • 11. 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! (?)
  • 12. Quem usa? Onde é usada? ● YouTube ● Google/Google App Engine ● NASA ● Industrial Light & Magic ● Globo.com ● ... ● ● GIMP ● Blender ● Ubuntu ● ...
  • 13. Onde roda? ● GNU/Linux ● Mac OS ● *nix ● Windows ● Android ● Nokia S60 ● Microcontroladores ● ...
  • 14. Como instalar? GNU/Linux e Mac OS: já tem! Windows: www.python.org Android: Android Scripting Layer (SL4A)
  • 15.
  • 16.
  • 17. iPython ● Debian/Ubuntu/derivados: sudo aptitude install ipython ● Dica: no Ubuntu: sudo apt-get install aptitude
  • 18. 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]}
  • 19. Nada de parênteses, nada de chaves! if expressao1: comando1 if expressao2: comando2 elif expressao3: comando3 elif expressao4: comando4 else: comando5
  • 20. Listas, strings e slices In [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 ....: ....: 1 3 4 LdG Arduino
  • 21. 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
  • 22. 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()
  • 23. 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  ...
  • 24. Navegando com Python import urllib url = 'http://www.CursoDeArduino.com.br/' pagina = urllib.urlopen(url) print pagina.read()
  • 25. Rola? +
  • 26.
  • 27. pySerial - Instalação ● Debian/Ubuntu/derivados: sudo aptitude install python-serial ● Dica: no Ubuntu: sudo apt-get install aptitude
  • 28. Comandando o Arduino com Python import serial porta = '/dev/ttyUSB0' baud_rate = 9600 arduino = serial.Serial(porta, baud_rate) arduino.write('H') print arduino.read() arduino.close()
  • 29. 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/
  • 31. São Paulo 29/setembro a 1º/outubro http://www.pythonbrasil.org.br/
  • 32. http://www.HackNRio.org/ Dezembro/2011 na Cidade maravilhosa! o/
  • 33. import this http://twitter.com/turicas http://github.com/turicas http://CursoDeArduino.com.br/ http://blog.justen.eng.br/ alvaro@CursoDeArduino.com.br