[draft 1.0]
Introdução ao Python
Lucas D'Avila
@lucadavila - lucassdvl@gmail.com
SLCriciúma:)
Licença
Este trabalho está licenciado sob uma Licença Creative
Commons Atribuição- Uso Não-Comercial-Compartilhamento
pela mesma Licença 2.5 Brasil. Para ver uma cópia desta
licença, visite http://creativecommons.org/licenses/by-nc-
sa/2.5/br/ ou envie uma carta para Creative Commons, 171
Second Street, Suite 300, San Francisco, California 94105,
USA.
Roteiro
● História
● Quem usa
● Caracteristicas / Vantagens
● Instalação
● Modo interativo
● Interpretador
● Sintaxe básica
● Tipos de dados
● Controle de fluxo
● Laços
● Funções
● Modulos
● Arquivos
● Persistencia de dados com
xml e yaml
● Excessoes
● Orientação a objetos
● Guia de estilo
História
● Criada em 1990 por Guido Van Rossum, no Instituto
Nacional de Pesquisa para Matemática e Ciência da
Computação da Holanda (CWI).
● Tinha como foco usuários como físicos e engenheiros.
● Concebido a partir de outra linguagem existente na
época, chamada ABC.
Quem usa
● Google (apps web)
● Yahoo (apps web)
● Nokia (celulares e PDAs)
● NASA
● Microsoft (IronPython:
Python para .NET)
● Disney (animações 3D)
Caracteristicas / Vantagens
● Linguagem de altíssimo nível (Very High Level Language)
● Multiplataforma,
● Multiparadigma (Orientada a objetos, modular e funcional)
● Tipagem dinâmica e forte,
● Interpretada e interativa,
● Software livre :)
● Baterias incluídas (módulos prontos para uso)
● Sintaxe clara
● ...
Instalação
● GNU / Linux (maioria vem instalado por padrão)
● Mac OS X (vem instalado por padrão)
● Windows (tem que instalar, disponivel em #TODO incluir
link download oficial)
Modo interativo
● $ python
Interpretador
● $ python arquivo_codigo_fonte.py
Sintaxe básica
● # Comentário
● Blocos de código são delimitados por endentação, a linha anterior
ao bloco sempre termina em ':'
#exemplo de código utilizando endentação:
if 1 > 0:
print 'verdadeiro'
#veja sem uso de chaves somente endentação
else:
print 'falso'
Tipos de dados
● Básicos:
● Inteiro 1,
● Ponto flutuante 1.2,
● Complexo 1.2 + 5.3j,
● String 'uma string'.
● Estruturas de alto nível:
● Listas [obj, 'a', (a,)],
● Tuplas (1, [a]),
● Dicionários {'chave':
valor, 'nome':”Lucas
D'Avila”, idade: 22}
Controle de fluxo
if <condição>:
<bloco de código>
elif <condição>:
<bloco de código>
else:
<bloco de código>
if idade < 12:
print 'criança'
elif idade < 18:
print 'Adelescente'
else:
print 'Adulto'
Laços (loops)
for <referência> in <sequência>:
<bloco de código>
continue
Break
–
For pessoa in pessoas:
if pessoa.eh_crianca:
Continue #vai para próxima iteração
elIf pessoa.eh_adulto():
Break #sai do laço
print 'Adolecente : %s'%pessoa.nome
Laços (loops) 2
while <condição>:
<bloco de código>
Continue
break
else:
<bloco de código>
i = -1
While i < qtd_pessoas:
i += 1
if pessoas[i].eh_crianca:
Continue
elIf
pessoas[i].eh_adulto():
Break
print pessoas[i].nome
Funções
def funcao(parametro_1, parametro_2 = valor_padrao):
"""Doc String
"""
<bloco de código>
return valor
Modulos
● modulo.py
● from modulo import *
ou
● from modulo import Classe,
classe_2
ou
● import modulo
ou
● import modulo.Classe
● print modulo.funcao(...)
● obj = modulo.Classe()
ou
● obj = Classe()
Arquivos
open('file', 'mode')
For l in open('f.txt', 'r').readlines():
print l
Ou
Open('f.txt', 'w').write('texto....')
Ou
f = open('f.txt', 'w')
f.write('texto.....')
f.close()
Persistência de dados com
xml e yaml
● #TODO ● #TODO
Exceções
try:
1 / 0
except:
Print 'Ops! Ocorreu um erro !'
Ou
try:
1 / 0
except ZeroDivisionError:
Print 'Ops! Não se pode dividir por zero !'
OO
● #TODO
Guia de estilo
● #TODO
Continue estudando
#TODO
● docs.python
● Comunidades
● Livros
● Treinamentos
Créditos
● Apresentação Turicas “Álvaro_Justen_-
_Palestra_Python_UBM.pdf”#TODO inserir link
● Livro Python para Desenvolvedores, disponivel em
http://ark4n.wordpress.com/python/

Introdução ao Python

  • 1.
    [draft 1.0] Introdução aoPython Lucas D'Avila @lucadavila - lucassdvl@gmail.com SLCriciúma:)
  • 2.
    Licença Este trabalho estálicenciado sob uma Licença Creative Commons Atribuição- Uso Não-Comercial-Compartilhamento pela mesma Licença 2.5 Brasil. Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc- sa/2.5/br/ ou envie uma carta para Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA.
  • 3.
    Roteiro ● História ● Quemusa ● Caracteristicas / Vantagens ● Instalação ● Modo interativo ● Interpretador ● Sintaxe básica ● Tipos de dados ● Controle de fluxo ● Laços ● Funções ● Modulos ● Arquivos ● Persistencia de dados com xml e yaml ● Excessoes ● Orientação a objetos ● Guia de estilo
  • 4.
    História ● Criada em1990 por Guido Van Rossum, no Instituto Nacional de Pesquisa para Matemática e Ciência da Computação da Holanda (CWI). ● Tinha como foco usuários como físicos e engenheiros. ● Concebido a partir de outra linguagem existente na época, chamada ABC.
  • 5.
    Quem usa ● Google(apps web) ● Yahoo (apps web) ● Nokia (celulares e PDAs) ● NASA ● Microsoft (IronPython: Python para .NET) ● Disney (animações 3D)
  • 6.
    Caracteristicas / Vantagens ●Linguagem de altíssimo nível (Very High Level Language) ● Multiplataforma, ● Multiparadigma (Orientada a objetos, modular e funcional) ● Tipagem dinâmica e forte, ● Interpretada e interativa, ● Software livre :) ● Baterias incluídas (módulos prontos para uso) ● Sintaxe clara ● ...
  • 7.
    Instalação ● GNU /Linux (maioria vem instalado por padrão) ● Mac OS X (vem instalado por padrão) ● Windows (tem que instalar, disponivel em #TODO incluir link download oficial)
  • 8.
  • 9.
    Interpretador ● $ pythonarquivo_codigo_fonte.py
  • 10.
    Sintaxe básica ● #Comentário ● Blocos de código são delimitados por endentação, a linha anterior ao bloco sempre termina em ':' #exemplo de código utilizando endentação: if 1 > 0: print 'verdadeiro' #veja sem uso de chaves somente endentação else: print 'falso'
  • 11.
    Tipos de dados ●Básicos: ● Inteiro 1, ● Ponto flutuante 1.2, ● Complexo 1.2 + 5.3j, ● String 'uma string'. ● Estruturas de alto nível: ● Listas [obj, 'a', (a,)], ● Tuplas (1, [a]), ● Dicionários {'chave': valor, 'nome':”Lucas D'Avila”, idade: 22}
  • 12.
    Controle de fluxo if<condição>: <bloco de código> elif <condição>: <bloco de código> else: <bloco de código> if idade < 12: print 'criança' elif idade < 18: print 'Adelescente' else: print 'Adulto'
  • 13.
    Laços (loops) for <referência>in <sequência>: <bloco de código> continue Break – For pessoa in pessoas: if pessoa.eh_crianca: Continue #vai para próxima iteração elIf pessoa.eh_adulto(): Break #sai do laço print 'Adolecente : %s'%pessoa.nome
  • 14.
    Laços (loops) 2 while<condição>: <bloco de código> Continue break else: <bloco de código> i = -1 While i < qtd_pessoas: i += 1 if pessoas[i].eh_crianca: Continue elIf pessoas[i].eh_adulto(): Break print pessoas[i].nome
  • 15.
    Funções def funcao(parametro_1, parametro_2= valor_padrao): """Doc String """ <bloco de código> return valor
  • 16.
    Modulos ● modulo.py ● frommodulo import * ou ● from modulo import Classe, classe_2 ou ● import modulo ou ● import modulo.Classe ● print modulo.funcao(...) ● obj = modulo.Classe() ou ● obj = Classe()
  • 17.
    Arquivos open('file', 'mode') For lin open('f.txt', 'r').readlines(): print l Ou Open('f.txt', 'w').write('texto....') Ou f = open('f.txt', 'w') f.write('texto.....') f.close()
  • 18.
    Persistência de dadoscom xml e yaml ● #TODO ● #TODO
  • 19.
    Exceções try: 1 / 0 except: Print'Ops! Ocorreu um erro !' Ou try: 1 / 0 except ZeroDivisionError: Print 'Ops! Não se pode dividir por zero !'
  • 20.
  • 21.
  • 22.
    Continue estudando #TODO ● docs.python ●Comunidades ● Livros ● Treinamentos
  • 23.
    Créditos ● Apresentação Turicas“Álvaro_Justen_- _Palestra_Python_UBM.pdf”#TODO inserir link ● Livro Python para Desenvolvedores, disponivel em http://ark4n.wordpress.com/python/