SlideShare une entreprise Scribd logo
1  sur  52
Télécharger pour lire hors ligne
Mini-curso PythonMini-curso Python
Rodrigo Peixoto - rodrigopex@gmail.com
04/11/2008 - 06/11/2008
Quem sou eu!?Quem sou eu!?

Engenheiro da Computação – UFPE(2008)

Especialista em Python e Verilog

Usuário Linux desde 2004

Membro admistrador do CinLUG

“Instrutor” de Python pela Especializa

Entusiasta de software livre

Trabalho num projeto para o Governo Federal
O que é Python?O que é Python?

Linguagem de alto nível de abstração

Criada por Guido van Rossum em 1991

Linguagem multiparadigma

Orientada a Objetos

Estrutural

Funcional

Possui sintaxe simples e clara

Tipagem forte e dinâmica
O que é Python?O que é Python?

Multiplataforma

Interpretada (bytecodes)

Possui ambiente interativo

Biblioteca padrão muito rica

Ótima integração com Linux

Facilmente extensível (C/C++, Java, .NET)

Gnu Public License
QuemusaPython?QuemusaPython?
TIOBEIndexTIOBEIndex
Quem usa python?Quem usa python?
Quem usa Python?Quem usa Python?
Python é usado em muitos outrosPython é usado em muitos outros
lugareslugareswww.brasil.gov.br
No BrasilNo Brasil

Câmara dos deputados

Presidência da República

Carta na Escola

SEBRAE

CertiSign

SERPRO

INdT

Universidade Metodista

UNESCO Brasil

OAB/SP

Varig

Politec
Por que usar Python?Por que usar Python?

Segundo Guido Van Rossum em[4]

Tempo de desenvolvimento reduzido

2 a 10 vezes menor que C/C++ e Java

Código extremamente legível

Pouco treinamento

Linguagem muito simples de aprender

Segundo minhas experiências e pesquisas

Fácil de estender C/C++, Java e .NET

Ótimo para manipulação de Strings
Por que usar Python?Por que usar Python?

Muito bom para programação WEB

Integração harmoniosa com o Linux

Biblioteca para as mais variadas áreas

Máquina virtual pequena (Download rápido)

Poderosa (multiparadigma)

O programador vai direto ao ponto. Foca no
problema e não:

Na alocação de memória

Tipo de variáveis

...
Por que não usar Python?Por que não usar Python?

IDEs free não muito completas

Desempenho relativamente baixo

Necessidade de bom senso, liberdade ao
extremo
O que pode ser feito com Python?O que pode ser feito com Python?

““Basicamente”Basicamente” tudo que pode ser feito em:

Java

C/C++

Haskell

PHP

GUI, Cálculo numérico, Banco de dados, Jogos,
WEB, Mobile, Computação gráfica, ...
Python bibliotecasPython bibliotecas

Numpy (c culo num rico)á é

Elixir + SQLAchemy (banco de dados)

Multiprocessing (multiprocessamento)

Pyre (computa o high performance)çã

Pyro (remote objects)

PyS60 (mobile)

PyGame (jogos)

PyUnit (testes unit rios)á
Versões de PythonVersões de Python

Cython e Pyrex

Integração com C/C++ (High performance!!!)(High performance!!!)

Jython

Integração com o ambiente Java

IronPython

Integração com o ambiente .NET
Caminho para o básicoCaminho para o básico

Shell

Hello World!

Code design

Números

Iteráveis

String

Tuplas

Lista

Dicionários

Entrada e saída

open

print

Expressões

Comandos básicos

Funções

Exceções

Exercícios
Shell PythonShell Python

Python possui um shell interativo onde pode-se
executar comandos on-the-fly

Basta executar

$>python

Introspeção e reflexão (são propriedades de sistemas orientados a
objetos que qualificam a existência de mecanismos para descobrir e alterar, em tempo de
execução, informações estruturais sobre um programa e objetos existentes neste)

dir(objeto)

help(objeto)
Hello WorldHello World
︅
Abra o terminal Python e digite
→ print “Hello World”
'Hello World'
Code designCode design
︅
Nada de ';' no fim das linhas
︅
Nada de '{' e '}' para delimitar blocos
︅
Nada de declarações de tipo de variáveis
︅
Identar é obrigatório!
︅
Padrão de codificação para a linguagem (PEP8)
︅
Códigos mais limpos e organizados!Códigos mais limpos e organizados!
NúmerosNúmeros
︅
Inteiros - int()
→ a = 10
→ print a
10
→ 10 + 20
30
→ 10**2
100
︅
Longos - long()
→ B = 10L
→ C =
1000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
000000000000000000L
Números(2)Números(2)
︅
Float - float()
→ A = 2.3
→ B = 7.66778
→ print int(B)
7
︅
Complexos – complex()
→ C = 3 + 2j
→ C1 = complex(3,2)
→ print c.conjugate()
(3-2j)
→ print c.imag
3.0
→ print c.real
2.0
StringsStrings
︅
Construtor – str()
→ print str(4.556)
'4.556'
︅
Métodos
→ “teste”.upper()
“TESTE”
→ “teste”.title()
“Teste”
→ “12345”.split(“3”)
['12','45']
︅
Acesso
→ “teste”[2]
's'
→ “abcd”[-1]
'd'
→ “abcd”[1:]
'bcd'
︅
Concatenação
→ “tes” + “te”
'teste'
Strings(2)Strings(2)
︅
Multiplicação
→ “1”*4
'1111'
︅
Métodos principais digite
dir(“”) no shell
︅
Exemplos
→ C =“Uma string de
teste para uso do
split”.split()
['Uma', 'string',
'de', 'teste',
'para', 'uso',
'do', 'split']
TuplasTuplas

Homogêneas

Imutáveis

Construtor – tuple()

Pode ser acessada como um iterável
Tuplas(2)Tuplas(2)
︅
Construção
→ a = (1,2,3,4)
→ print a
'(1, 2, 3, 4)'
→ b = tuple([1,2,3])
→ print b
(1,2,3)
︅
Acesso
→ (“test”,“one”)[1]
(“one”)
→ (1,2,3,4,5)[:2]
(1,2)
ListasListas

Heterogêneas

Mutáveis

Construtor – list()

Pode ser acessada como um iterável
Listas(2)Listas(2)
︅
Construcão
→ a = [1,2,3,4]
→ a
'[1, 2, 3, 4]'
→ b = list(tuple(a))
→ print b
'[1, 2, 3, 4]'
︅
Acesso
→ [1,'foi',3.3][:]
[1,'foi',3.3]
→ [1,'foi',3.3][1]
'foi'
Listas(3)Listas(3)
︅
Métodos
→ a = [1,2,3]
→ a.append(4)
→ a.pop()
→ a.sort()
︅
Para maiores detalhes
digite dir([])
︅
Auxiliares
→ max(a)
→ min(a)
→ range(6)
[0,1,2,3,4,5]
→ sum([2,3,4])
9
DicionáriosDicionários

Tabela hash como tipo primitivo de Python

Acesso mais rápido

“Lista de referências”

Heterogêneo

Mutável

Associações chave <-> valor
Dicionários(2)Dicionários(2)
︅
Construção
→ D = {'te':2,6:3.45}
→ E = dict([(1,2),
(3,'texto')])
→ print E
“{1:2, 3:'texto'}”
︅
Acesso
→ D['te']
2
→ E[3]
'texto'
→ del D[6]
→ print D
“{'te':2}”
Dicionários(3)Dicionários(3)
︅
Métodos
→ D.keys()
['te']
→ D.values()
2
→ D.has_key('te')
True
︅
Inserção
→ D['nova_chave']= 3
→ D.update({'nova_cha
ve':4})
EntradaEntrada
︅
Texto
→ res =
input('pergunta')
→ st =
raw_input('Pergunta
')
︅
Exemplo
→ um_mais_um =
input('digite 1+1')
→ print um_mais_um
2
→ nome =
raw_input(“seu
nome”)
→ print nome
→ ...
︅
Arquivo
→ f =
open('path','modo')
→ open.read()
→ open.readlines()
→ ...
SaídaSaída
︅
Função print
praticamente igual ao
printf de C
→ print “nome”
'nome'
→ print “%s:%d” %
(“Idade”,25)
'Idade:25'
︅
Procure na quick ref mais
detalhes
︅
Escrita em arquivo
→ f =
open(“path”,'modo')
→ f.write()
︅
Ou
→ f.writelines(lista)
→ ...
ExpressõesExpressões
︅
Booleanas
→ ==, !=, >, <,...
→ is, in, not, and,
or,...
→ 1 == 2
False
→ “te” in “teste”
True
→ “te” is 0
False
︅
Numéricas
→ +, -, *, /, //, **,
%, divmod,...
→ 1 + 2
3
→ 2**5
32
→ divmod(35,8)
(4,3)
ComandosComandos
︅
IF .. ELIF .. ELSE ︅
Mini - if
if exp:
<comandos>
elif exp2:
<comandos>
else:
<comandos>
var = ret1 if exp else ret2
var = exp and ret1 or ret2
Comandos(2)Comandos(2)
︅
While ︅
For
while exp:
<comandos>
for i in iterable:
<comandos>
while exp:
<comandos>
else:
<comandos>
for i in iterable:
<comandos>
else:
<comandos>
FunçõesFunções

Todas polimórficas

Não dá suporte a sobrecarga de método ou
função

Não é precisa declarar o retorno

Podem ter parâmetros:

Número arbitrário

Keywords

Número arbitrário de keywords

Permite valores default
Funções(2)Funções(2)
︅
Exemplos
︅
Comando de retorno
def func(a):
<comandos>
def func(a=2):
<comandos>
def func(a,b=3,c=5):
<comandos>
def func(*a):
<comandos>
def func(**kw):
<comandos>
def func_all(a,b=2,*args, **kwargs):
<comandos>
def soma(a, b):
return a + b
ExceçõesExceções
︅
Captura
︅
Reenvio
︅
Lancamento
︅
Criando
try:
<comandos>
except:
<comandos>
else:
<comandos>
finally:
<comandos>
raise “Texto”
raise Exception
raise Exception(“Text”)
class MinhaExcecao(Exception):
'''
Documentacao da excecao
'''
passtry:
<comandos>
except:
raise
Dicas para exercícioDicas para exercício
︅
Para executar um código
feito em python basta
executar o comando
→ python meu_mod.py
︅
Todo código fonte Python
tem a extensão .py
︅
A função main de Python
if __name__ == '__main__':
<comandos>
Mais dicas para o exercícioMais dicas para o exercício
︅
Um código exemplo feito Python seria
def func(a,b):
return a + b
if __name__ == '__main__':
print func(10,30)
Exercícios 1Exercícios 1
︅
Desenvolva uma calculadora com as seguinte
operações:
→ Soma
→ Subtração
→ Multiplicação
→ Divisão
︅
O usuário tem que digitar os valores na linha de
comando.
Exercício 2Exercício 2
︅
Copie o primeiro parágrafo da página no link abaixo
para um arquivo chamado python_wiki.txt.
Recupere o texto do arquivo e conte quantas
vogais, quantas palavras que iniciam com p e
quantas palavras 'python' existem. Armazene o
resultado num arquivo com o seguinte formato:
→ http://en.wikipedia.org/wiki/Python_programm
ing_language
Contador mini-curso python!
Site: link do site
Vogais: qtd
Palavras iniciadas com p: qtd
Python: qtd
Importando módulosImportando módulos
︅
Básico
︅
︅
︅
Importando de...
︅
︅
︅
Importando tudo de um módulo
import modulo
import modules.sub_modulo as novo_nome
from modulo import algo
from modules.sub_modulo import Algo
from modules.sub_modulo import Algo as AL
from modulo import *
from modules.sub_modulo.sub_sub_modulo import *
SocketSocket
︅
Comunicação via rede entre Cliente <> Servidor
︅
︅
Cliente
import socket
HOST = '' # Symbolic name meaning the local host
PORT = 50007 # Arbitrary non-privileged port
sock = socket.socket( socket.AF_INET, socket.SOCK_STREAM)
sock.connect((HOST, PORT))
print "from server:", sock.recv(1024)
sock.send("Sim")
Socket(2)Socket(2)
︅
Servidor
import socket
HOST = '' # Symbolic name meaning the local host
PORT = 50007 # Arbitrary non-privileged port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((HOST, PORT))
s.listen(1)
print "Waiting for connections..."
conn, addr = s.accept()
print 'Connected by', addr
conn.send("Alguem aih?")
print "from cliente:", conn.recv(1024)
ThreadsThreads
︅
Divisões internas de esforço em um processo
︅
Várias tarefas ao mesmo tempo
︅
import threading
def func(c):
<comandos>
th = threading.Thread(target=func, args=func_args)
th.start()
Threads(2)Threads(2)
︅
Exemplo
import threading
from time import sleep
from random import random
def func(c):
for i in range(10):
t = random()
print c
sleep(t)
th1 = threading.Thread(target=func, args=("th1 -----",))
th2 = threading.Thread(target=func, args=("th2 =====",))
th3 = threading.Thread(target=func, args=("th3 #####",))
th1.start()
th2.start()
th3.start()
Threads(3)Threads(3)
import threading
from time import sleep
from random import random
#Algo místico!
def threaded(func):
def proxy(*args, **kwargs):
th = threading.Thread(target=func, args=args, kwargs=kwargs)
th.start()
return th
return proxy
@threaded
def func(c):
for i in range(10):
t = random()
print c
sleep(t)
func("th1 -----")
func("th2 =====")
func("th3 #####")
PersistPersistêênciancia

Armazenamento "eterno" de dados [wikipédia]

Os arquivos passam a ser armazenados em
memórias não voláteis

Quando um aplicativo é fechado, se tivermos
não tivermos nada persistido, tudo será perdido

Python tem várias soluções

Escrita em arquivo tradicional

Shelve

Banco de dados

...
PersistPersistêência(2)ncia(2)
import shelve
d = shelve.open("nossodb",writeback=True)
print "store Teste de string"
d["i1"] = "Teste de string"
print "store 10L"
d["i2"] = 10L
print "store 3.225567"
d["i3"] = 3.225567
d.close()
import shelve
d = shelve.open("nossodb",writeback=True)
print "load", d["i1"]
print "load", d["i2"]
print "load", d["i3"]
d.close()
ReferReferêênciasncias

http://www.scribd.com/doc/6181632/Mini-Curso-de-

www.python.org

http://rgruet.free.fr/PQR25/PQR2.5.html

Contenu connexe

Tendances

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
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na práticaRafael Cassau
 
Guia com mais de 500 comandos do linux explicados computeiro da depressão
Guia com mais de 500 comandos do linux explicados   computeiro da depressãoGuia com mais de 500 comandos do linux explicados   computeiro da depressão
Guia com mais de 500 comandos do linux explicados computeiro da depressãoJesser Martins Medeiros
 
Postgresql + Python = Power!
Postgresql + Python = Power!Postgresql + Python = Power!
Postgresql + Python = Power!Juliano Atanazio
 
Introdução à linguagem Python
Introdução à linguagem PythonIntrodução à linguagem Python
Introdução à linguagem PythonAlex Tercete
 
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...Danilo J. S. Bellini
 
Principais conceitos técnicas e modelos de programação paralela
Principais conceitos técnicas e modelos de programação paralelaPrincipais conceitos técnicas e modelos de programação paralela
Principais conceitos técnicas e modelos de programação paralelaIntel Software Brasil
 
Arduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoArduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoLuciano Ramalho
 
Apresentação python fábio jr alves
Apresentação python   fábio jr alvesApresentação python   fábio jr alves
Apresentação python fábio jr alvesGrupython Ufla
 
Apresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonApresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonPriscila Mayumi
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonAlvaro Oliveira
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem PythonLuciano Ramalho
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nívelIgor Sobreira
 
PHP não é coisa de moleque
PHP não é coisa de molequePHP não é coisa de moleque
PHP não é coisa de molequeVagner Rodrigues
 
Go Lang para desenvolvedores pragmáticos (parte 1)
Go Lang para desenvolvedores pragmáticos (parte 1)Go Lang para desenvolvedores pragmáticos (parte 1)
Go Lang para desenvolvedores pragmáticos (parte 1)Wilson Júnior
 
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonGiancarlo Silva
 

Tendances (20)

Python No Terra (2006-12-21)
Python No Terra  (2006-12-21)Python No Terra  (2006-12-21)
Python No Terra (2006-12-21)
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na prática
 
Guia com mais de 500 comandos do linux explicados computeiro da depressão
Guia com mais de 500 comandos do linux explicados   computeiro da depressãoGuia com mais de 500 comandos do linux explicados   computeiro da depressão
Guia com mais de 500 comandos do linux explicados computeiro da depressão
 
M2ti - Python Brasil
M2ti - Python BrasilM2ti - Python Brasil
M2ti - Python Brasil
 
Python, CPython, Pythonico, Cython
Python, CPython, Pythonico, CythonPython, CPython, Pythonico, Cython
Python, CPython, Pythonico, Cython
 
Programando com Python
Programando com PythonProgramando com Python
Programando com Python
 
Postgresql + Python = Power!
Postgresql + Python = Power!Postgresql + Python = Power!
Postgresql + Python = Power!
 
Python for zombies (very basic level)
Python for zombies (very basic level)Python for zombies (very basic level)
Python for zombies (very basic level)
 
Introdução à linguagem Python
Introdução à linguagem PythonIntrodução à linguagem Python
Introdução à linguagem Python
 
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...
 
Principais conceitos técnicas e modelos de programação paralela
Principais conceitos técnicas e modelos de programação paralelaPrincipais conceitos técnicas e modelos de programação paralela
Principais conceitos técnicas e modelos de programação paralela
 
Arduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoArduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojo
 
Apresentação python fábio jr alves
Apresentação python   fábio jr alvesApresentação python   fábio jr alves
Apresentação python fábio jr alves
 
Apresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonApresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação Python
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a Python
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nível
 
PHP não é coisa de moleque
PHP não é coisa de molequePHP não é coisa de moleque
PHP não é coisa de moleque
 
Go Lang para desenvolvedores pragmáticos (parte 1)
Go Lang para desenvolvedores pragmáticos (parte 1)Go Lang para desenvolvedores pragmáticos (parte 1)
Go Lang para desenvolvedores pragmáticos (parte 1)
 
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com Python
 

En vedette

Administração de sistemas usando Python
Administração de sistemas usando PythonAdministração de sistemas usando Python
Administração de sistemas usando PythonHelio Loureiro
 
Python Para Administradores Linux
Python Para Administradores LinuxPython Para Administradores Linux
Python Para Administradores Linuxguest1eea6537
 
Capturando a web com Scrapy
Capturando a web com ScrapyCapturando a web com Scrapy
Capturando a web com ScrapyGabriel Freitas
 
Introdução ao Python & Web Services
Introdução ao Python & Web ServicesIntrodução ao Python & Web Services
Introdução ao Python & Web ServicesDorneles Treméa
 
CSS e Bootstrap - Introdução básica
CSS e Bootstrap - Introdução básicaCSS e Bootstrap - Introdução básica
CSS e Bootstrap - Introdução básicaMariana Ribeiro Mendes
 
Desenvolvendo mvp com python
Desenvolvendo mvp com pythonDesenvolvendo mvp com python
Desenvolvendo mvp com pythonBruno Rocha
 
Desvendando o python
Desvendando o pythonDesvendando o python
Desvendando o pythonRodrigo Lira
 
Crawleando a web feito gente grande com o scrapy
Crawleando a web feito gente grande com o scrapyCrawleando a web feito gente grande com o scrapy
Crawleando a web feito gente grande com o scrapyBernardo Fontes
 
Desenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2pyDesenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2pyGilson Filho
 
Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!Felipe Queiroz
 
Criando websites a jato com Django
Criando websites a jato com DjangoCriando websites a jato com Django
Criando websites a jato com DjangoMarcos Petry
 
Desenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyDesenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyRelsi Maron
 
Desenvolvendo web crawler/scraper com Python
Desenvolvendo web crawler/scraper com PythonDesenvolvendo web crawler/scraper com Python
Desenvolvendo web crawler/scraper com PythonRoselma Mendes
 
Análise de Redes Sociais com Python
Análise de Redes Sociais com PythonAnálise de Redes Sociais com Python
Análise de Redes Sociais com PythonAna Paula Gomes
 
Django: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosDjango: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosRodrigo Nossal
 

En vedette (20)

Administração de sistemas usando Python
Administração de sistemas usando PythonAdministração de sistemas usando Python
Administração de sistemas usando Python
 
Python Para Administradores Linux
Python Para Administradores LinuxPython Para Administradores Linux
Python Para Administradores Linux
 
Capturando a web com Scrapy
Capturando a web com ScrapyCapturando a web com Scrapy
Capturando a web com Scrapy
 
Introdução ao Python & Web Services
Introdução ao Python & Web ServicesIntrodução ao Python & Web Services
Introdução ao Python & Web Services
 
Postgresql +python
Postgresql +pythonPostgresql +python
Postgresql +python
 
CSS e Bootstrap - Introdução básica
CSS e Bootstrap - Introdução básicaCSS e Bootstrap - Introdução básica
CSS e Bootstrap - Introdução básica
 
Desenvolvendo mvp com python
Desenvolvendo mvp com pythonDesenvolvendo mvp com python
Desenvolvendo mvp com python
 
Scraping
ScrapingScraping
Scraping
 
Desvendando o python
Desvendando o pythonDesvendando o python
Desvendando o python
 
Crawleando a web feito gente grande com o scrapy
Crawleando a web feito gente grande com o scrapyCrawleando a web feito gente grande com o scrapy
Crawleando a web feito gente grande com o scrapy
 
Acessando o MySql com o Python
Acessando o MySql com o PythonAcessando o MySql com o Python
Acessando o MySql com o Python
 
Desenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2pyDesenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2py
 
Introdução ao Django
Introdução ao DjangoIntrodução ao Django
Introdução ao Django
 
Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!
 
Criando websites a jato com Django
Criando websites a jato com DjangoCriando websites a jato com Django
Criando websites a jato com Django
 
Desenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyDesenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2py
 
Desenvolvendo web crawler/scraper com Python
Desenvolvendo web crawler/scraper com PythonDesenvolvendo web crawler/scraper com Python
Desenvolvendo web crawler/scraper com Python
 
Análise de Redes Sociais com Python
Análise de Redes Sociais com PythonAnálise de Redes Sociais com Python
Análise de Redes Sociais com Python
 
Django: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosDjango: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutos
 
Hackeando Dados públicos com python
Hackeando Dados públicos com pythonHackeando Dados públicos com python
Hackeando Dados públicos com python
 

Similaire à Mini Python

Cherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webCherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webAlvaro Oliveira
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação PythonJunior Sobrenome
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Pythonguestac3de
 
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
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do GoogleLuciano Ramalho
 
Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Marcelo Barros de Almeida
 
Possibilidades com python
Possibilidades com pythonPossibilidades com python
Possibilidades com pythonUFPA
 
Escrevendo modulos python com rust
Escrevendo modulos python com rustEscrevendo modulos python com rust
Escrevendo modulos python com rustBruno Rocha
 
Iniciando em Python
Iniciando em PythonIniciando em Python
Iniciando em PythonRober Guerra
 
A lógica do Python e seus termos
A lógica do Python e seus termosA lógica do Python e seus termos
A lógica do Python e seus termosValore I/O
 
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
 
Python Training #1, ed. 6
Python Training #1, ed. 6Python Training #1, ed. 6
Python Training #1, ed. 6Fabio Spanhol
 
Python Training #1 ed.6
Python Training #1 ed.6 Python Training #1 ed.6
Python Training #1 ed.6 Fabio Spanhol
 
Ecosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javEcosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javJulio Viegas
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonOsvaldo Santana Neto
 

Similaire à Mini Python (20)

Cherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webCherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações web
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação Python
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Python
 
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
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do Google
 
Aula python
Aula pythonAula python
Aula python
 
Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)
 
Ecossistema Python
Ecossistema PythonEcossistema Python
Ecossistema Python
 
Possibilidades com python
Possibilidades com pythonPossibilidades com python
Possibilidades com python
 
Python Emsl2009
Python Emsl2009Python Emsl2009
Python Emsl2009
 
Escrevendo modulos python com rust
Escrevendo modulos python com rustEscrevendo modulos python com rust
Escrevendo modulos python com rust
 
Iniciando em Python
Iniciando em PythonIniciando em Python
Iniciando em Python
 
A lógica do Python e seus termos
A lógica do Python e seus termosA lógica do Python e seus termos
A lógica do Python e seus termos
 
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?
 
Python Training #1, ed. 6
Python Training #1, ed. 6Python Training #1, ed. 6
Python Training #1, ed. 6
 
Python Training #1 ed.6
Python Training #1 ed.6 Python Training #1 ed.6
Python Training #1 ed.6
 
apresentacao.pdf
apresentacao.pdfapresentacao.pdf
apresentacao.pdf
 
aula3_python.pptx
aula3_python.pptxaula3_python.pptx
aula3_python.pptx
 
Ecosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javEcosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_jav
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o Python
 

Dernier

Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxLuizHenriquedeAlmeid6
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?Rosalina Simão Nunes
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxIsabellaGomes58
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMVanessaCavalcante37
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfHenrique Pontes
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBAline Santana
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.keislayyovera123
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptxthaisamaral9365923
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfmirandadudu08
 

Dernier (20)

Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdf
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
 
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdf
 

Mini Python

  • 1. Mini-curso PythonMini-curso Python Rodrigo Peixoto - rodrigopex@gmail.com 04/11/2008 - 06/11/2008
  • 2. Quem sou eu!?Quem sou eu!?  Engenheiro da Computação – UFPE(2008)  Especialista em Python e Verilog  Usuário Linux desde 2004  Membro admistrador do CinLUG  “Instrutor” de Python pela Especializa  Entusiasta de software livre  Trabalho num projeto para o Governo Federal
  • 3. O que é Python?O que é Python?  Linguagem de alto nível de abstração  Criada por Guido van Rossum em 1991  Linguagem multiparadigma  Orientada a Objetos  Estrutural  Funcional  Possui sintaxe simples e clara  Tipagem forte e dinâmica
  • 4. O que é Python?O que é Python?  Multiplataforma  Interpretada (bytecodes)  Possui ambiente interativo  Biblioteca padrão muito rica  Ótima integração com Linux  Facilmente extensível (C/C++, Java, .NET)  Gnu Public License
  • 6. Quem usa python?Quem usa python?
  • 7. Quem usa Python?Quem usa Python?
  • 8. Python é usado em muitos outrosPython é usado em muitos outros lugareslugareswww.brasil.gov.br
  • 9. No BrasilNo Brasil  Câmara dos deputados  Presidência da República  Carta na Escola  SEBRAE  CertiSign  SERPRO  INdT  Universidade Metodista  UNESCO Brasil  OAB/SP  Varig  Politec
  • 10. Por que usar Python?Por que usar Python?  Segundo Guido Van Rossum em[4]  Tempo de desenvolvimento reduzido  2 a 10 vezes menor que C/C++ e Java  Código extremamente legível  Pouco treinamento  Linguagem muito simples de aprender  Segundo minhas experiências e pesquisas  Fácil de estender C/C++, Java e .NET  Ótimo para manipulação de Strings
  • 11. Por que usar Python?Por que usar Python?  Muito bom para programação WEB  Integração harmoniosa com o Linux  Biblioteca para as mais variadas áreas  Máquina virtual pequena (Download rápido)  Poderosa (multiparadigma)  O programador vai direto ao ponto. Foca no problema e não:  Na alocação de memória  Tipo de variáveis  ...
  • 12. Por que não usar Python?Por que não usar Python?  IDEs free não muito completas  Desempenho relativamente baixo  Necessidade de bom senso, liberdade ao extremo
  • 13. O que pode ser feito com Python?O que pode ser feito com Python?  ““Basicamente”Basicamente” tudo que pode ser feito em:  Java  C/C++  Haskell  PHP  GUI, Cálculo numérico, Banco de dados, Jogos, WEB, Mobile, Computação gráfica, ...
  • 14. Python bibliotecasPython bibliotecas  Numpy (c culo num rico)á é  Elixir + SQLAchemy (banco de dados)  Multiprocessing (multiprocessamento)  Pyre (computa o high performance)çã  Pyro (remote objects)  PyS60 (mobile)  PyGame (jogos)  PyUnit (testes unit rios)á
  • 15. Versões de PythonVersões de Python  Cython e Pyrex  Integração com C/C++ (High performance!!!)(High performance!!!)  Jython  Integração com o ambiente Java  IronPython  Integração com o ambiente .NET
  • 16. Caminho para o básicoCaminho para o básico  Shell  Hello World!  Code design  Números  Iteráveis  String  Tuplas  Lista  Dicionários  Entrada e saída  open  print  Expressões  Comandos básicos  Funções  Exceções  Exercícios
  • 17. Shell PythonShell Python  Python possui um shell interativo onde pode-se executar comandos on-the-fly  Basta executar  $>python  Introspeção e reflexão (são propriedades de sistemas orientados a objetos que qualificam a existência de mecanismos para descobrir e alterar, em tempo de execução, informações estruturais sobre um programa e objetos existentes neste)  dir(objeto)  help(objeto)
  • 18. Hello WorldHello World ︅ Abra o terminal Python e digite → print “Hello World” 'Hello World'
  • 19. Code designCode design ︅ Nada de ';' no fim das linhas ︅ Nada de '{' e '}' para delimitar blocos ︅ Nada de declarações de tipo de variáveis ︅ Identar é obrigatório! ︅ Padrão de codificação para a linguagem (PEP8) ︅ Códigos mais limpos e organizados!Códigos mais limpos e organizados!
  • 20. NúmerosNúmeros ︅ Inteiros - int() → a = 10 → print a 10 → 10 + 20 30 → 10**2 100 ︅ Longos - long() → B = 10L → C = 1000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 000000000000000000L
  • 21. Números(2)Números(2) ︅ Float - float() → A = 2.3 → B = 7.66778 → print int(B) 7 ︅ Complexos – complex() → C = 3 + 2j → C1 = complex(3,2) → print c.conjugate() (3-2j) → print c.imag 3.0 → print c.real 2.0
  • 22. StringsStrings ︅ Construtor – str() → print str(4.556) '4.556' ︅ Métodos → “teste”.upper() “TESTE” → “teste”.title() “Teste” → “12345”.split(“3”) ['12','45'] ︅ Acesso → “teste”[2] 's' → “abcd”[-1] 'd' → “abcd”[1:] 'bcd' ︅ Concatenação → “tes” + “te” 'teste'
  • 23. Strings(2)Strings(2) ︅ Multiplicação → “1”*4 '1111' ︅ Métodos principais digite dir(“”) no shell ︅ Exemplos → C =“Uma string de teste para uso do split”.split() ['Uma', 'string', 'de', 'teste', 'para', 'uso', 'do', 'split']
  • 25. Tuplas(2)Tuplas(2) ︅ Construção → a = (1,2,3,4) → print a '(1, 2, 3, 4)' → b = tuple([1,2,3]) → print b (1,2,3) ︅ Acesso → (“test”,“one”)[1] (“one”) → (1,2,3,4,5)[:2] (1,2)
  • 27. Listas(2)Listas(2) ︅ Construcão → a = [1,2,3,4] → a '[1, 2, 3, 4]' → b = list(tuple(a)) → print b '[1, 2, 3, 4]' ︅ Acesso → [1,'foi',3.3][:] [1,'foi',3.3] → [1,'foi',3.3][1] 'foi'
  • 28. Listas(3)Listas(3) ︅ Métodos → a = [1,2,3] → a.append(4) → a.pop() → a.sort() ︅ Para maiores detalhes digite dir([]) ︅ Auxiliares → max(a) → min(a) → range(6) [0,1,2,3,4,5] → sum([2,3,4]) 9
  • 29. DicionáriosDicionários  Tabela hash como tipo primitivo de Python  Acesso mais rápido  “Lista de referências”  Heterogêneo  Mutável  Associações chave <-> valor
  • 30. Dicionários(2)Dicionários(2) ︅ Construção → D = {'te':2,6:3.45} → E = dict([(1,2), (3,'texto')]) → print E “{1:2, 3:'texto'}” ︅ Acesso → D['te'] 2 → E[3] 'texto' → del D[6] → print D “{'te':2}”
  • 31. Dicionários(3)Dicionários(3) ︅ Métodos → D.keys() ['te'] → D.values() 2 → D.has_key('te') True ︅ Inserção → D['nova_chave']= 3 → D.update({'nova_cha ve':4})
  • 32. EntradaEntrada ︅ Texto → res = input('pergunta') → st = raw_input('Pergunta ') ︅ Exemplo → um_mais_um = input('digite 1+1') → print um_mais_um 2 → nome = raw_input(“seu nome”) → print nome → ... ︅ Arquivo → f = open('path','modo') → open.read() → open.readlines() → ...
  • 33. SaídaSaída ︅ Função print praticamente igual ao printf de C → print “nome” 'nome' → print “%s:%d” % (“Idade”,25) 'Idade:25' ︅ Procure na quick ref mais detalhes ︅ Escrita em arquivo → f = open(“path”,'modo') → f.write() ︅ Ou → f.writelines(lista) → ...
  • 34. ExpressõesExpressões ︅ Booleanas → ==, !=, >, <,... → is, in, not, and, or,... → 1 == 2 False → “te” in “teste” True → “te” is 0 False ︅ Numéricas → +, -, *, /, //, **, %, divmod,... → 1 + 2 3 → 2**5 32 → divmod(35,8) (4,3)
  • 35. ComandosComandos ︅ IF .. ELIF .. ELSE ︅ Mini - if if exp: <comandos> elif exp2: <comandos> else: <comandos> var = ret1 if exp else ret2 var = exp and ret1 or ret2
  • 36. Comandos(2)Comandos(2) ︅ While ︅ For while exp: <comandos> for i in iterable: <comandos> while exp: <comandos> else: <comandos> for i in iterable: <comandos> else: <comandos>
  • 37. FunçõesFunções  Todas polimórficas  Não dá suporte a sobrecarga de método ou função  Não é precisa declarar o retorno  Podem ter parâmetros:  Número arbitrário  Keywords  Número arbitrário de keywords  Permite valores default
  • 38. Funções(2)Funções(2) ︅ Exemplos ︅ Comando de retorno def func(a): <comandos> def func(a=2): <comandos> def func(a,b=3,c=5): <comandos> def func(*a): <comandos> def func(**kw): <comandos> def func_all(a,b=2,*args, **kwargs): <comandos> def soma(a, b): return a + b
  • 39. ExceçõesExceções ︅ Captura ︅ Reenvio ︅ Lancamento ︅ Criando try: <comandos> except: <comandos> else: <comandos> finally: <comandos> raise “Texto” raise Exception raise Exception(“Text”) class MinhaExcecao(Exception): ''' Documentacao da excecao ''' passtry: <comandos> except: raise
  • 40. Dicas para exercícioDicas para exercício ︅ Para executar um código feito em python basta executar o comando → python meu_mod.py ︅ Todo código fonte Python tem a extensão .py ︅ A função main de Python if __name__ == '__main__': <comandos>
  • 41. Mais dicas para o exercícioMais dicas para o exercício ︅ Um código exemplo feito Python seria def func(a,b): return a + b if __name__ == '__main__': print func(10,30)
  • 42. Exercícios 1Exercícios 1 ︅ Desenvolva uma calculadora com as seguinte operações: → Soma → Subtração → Multiplicação → Divisão ︅ O usuário tem que digitar os valores na linha de comando.
  • 43. Exercício 2Exercício 2 ︅ Copie o primeiro parágrafo da página no link abaixo para um arquivo chamado python_wiki.txt. Recupere o texto do arquivo e conte quantas vogais, quantas palavras que iniciam com p e quantas palavras 'python' existem. Armazene o resultado num arquivo com o seguinte formato: → http://en.wikipedia.org/wiki/Python_programm ing_language Contador mini-curso python! Site: link do site Vogais: qtd Palavras iniciadas com p: qtd Python: qtd
  • 44. Importando módulosImportando módulos ︅ Básico ︅ ︅ ︅ Importando de... ︅ ︅ ︅ Importando tudo de um módulo import modulo import modules.sub_modulo as novo_nome from modulo import algo from modules.sub_modulo import Algo from modules.sub_modulo import Algo as AL from modulo import * from modules.sub_modulo.sub_sub_modulo import *
  • 45. SocketSocket ︅ Comunicação via rede entre Cliente <> Servidor ︅ ︅ Cliente import socket HOST = '' # Symbolic name meaning the local host PORT = 50007 # Arbitrary non-privileged port sock = socket.socket( socket.AF_INET, socket.SOCK_STREAM) sock.connect((HOST, PORT)) print "from server:", sock.recv(1024) sock.send("Sim")
  • 46. Socket(2)Socket(2) ︅ Servidor import socket HOST = '' # Symbolic name meaning the local host PORT = 50007 # Arbitrary non-privileged port s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.bind((HOST, PORT)) s.listen(1) print "Waiting for connections..." conn, addr = s.accept() print 'Connected by', addr conn.send("Alguem aih?") print "from cliente:", conn.recv(1024)
  • 47. ThreadsThreads ︅ Divisões internas de esforço em um processo ︅ Várias tarefas ao mesmo tempo ︅ import threading def func(c): <comandos> th = threading.Thread(target=func, args=func_args) th.start()
  • 48. Threads(2)Threads(2) ︅ Exemplo import threading from time import sleep from random import random def func(c): for i in range(10): t = random() print c sleep(t) th1 = threading.Thread(target=func, args=("th1 -----",)) th2 = threading.Thread(target=func, args=("th2 =====",)) th3 = threading.Thread(target=func, args=("th3 #####",)) th1.start() th2.start() th3.start()
  • 49. Threads(3)Threads(3) import threading from time import sleep from random import random #Algo místico! def threaded(func): def proxy(*args, **kwargs): th = threading.Thread(target=func, args=args, kwargs=kwargs) th.start() return th return proxy @threaded def func(c): for i in range(10): t = random() print c sleep(t) func("th1 -----") func("th2 =====") func("th3 #####")
  • 50. PersistPersistêênciancia  Armazenamento "eterno" de dados [wikipédia]  Os arquivos passam a ser armazenados em memórias não voláteis  Quando um aplicativo é fechado, se tivermos não tivermos nada persistido, tudo será perdido  Python tem várias soluções  Escrita em arquivo tradicional  Shelve  Banco de dados  ...
  • 51. PersistPersistêência(2)ncia(2) import shelve d = shelve.open("nossodb",writeback=True) print "store Teste de string" d["i1"] = "Teste de string" print "store 10L" d["i2"] = 10L print "store 3.225567" d["i3"] = 3.225567 d.close() import shelve d = shelve.open("nossodb",writeback=True) print "load", d["i1"] print "load", d["i2"] print "load", d["i3"] d.close()