Curso Relâmpago de Python
Curso Relâmpago de Python
Curso Relâmpago de Python
Fernando Rozenblit
Departamento de F sica - UFPE
4 de julho de 2011
What is Python?
Linguagem de alto n vel (scripting) Busca eleg ancia e simplicidade (leg vel ao
inv es de esperta)
There should be one and preferably
Why Python?
I wrote 20 short programs in Python yesterday. It was wonderful. Perl, Im leaving you. (xkcd.com/353)
Como executar
Scripts em Python podem ser executados de maneira interativa (no terminal Python):
ou via terminal:
Espa cos s ao importantes para delimitar blocos! (Conven c ao: 4 espa cos) C/C++ if (condicao) { faca_algo(); faca_mais_algo(); outra_coisa(); } Python if condicao: faca_algo() faca_mais_algo() outra_coisa()
O nal de linha ( ; ) e utilizado quando h a mais de uma express ao na mesma linha: if condicao: faca_algo(); faca_mais_algo(); outra_coisa()
O nal de linha ( ; ) e utilizado quando h a mais de uma express ao na mesma linha: if condicao: faca_algo(); faca_mais_algo(); outra_coisa()
Coment arios s ao feitos com #: # isto eh um comentario # bla bla bla .. print "Ola mundo!" # isto eh outro comentario
Vari aveis
N ao e necess ario declarar uma vari avel antes de us a-la: a b # a = "estou guardando uma string" = (2 + 3 + 4)/3.0 ... = b * 3 # e elas podem receber qualquer valor!
c = True c = False # tipos booleanos Os tipos mais comuns est ao presentes: inteiros, doubles e strings.
Imprimindo na tela
Para imprimir vari aveis na tela, utilizamos o print. O formato e parecido com C/C++: a = (2 + 3 + 4)/3.0 b = "oi" # ... print "Voce possui %g coisas de nome %s" % (a,b)
Listas
Um tipo muito usado e a lista. Funciona como um vetor: a = "sou uma string" b = (2 + 3 + 4)/3.0 lista = [a, b, "papai noel", ["outra", "lista"] ]
Listas
Um tipo muito usado e a lista. Funciona como um vetor: a = "sou uma string" b = (2 + 3 + 4)/3.0 lista = [a, b, "papai noel", ["outra", "lista"] ] Para acessar os elementos: print lista[0] # a print lista[3] # ["outra", "lista"] print lista[3][0] # "outra"
Lendo arquivos
Para abrir um arquivo para leitura, utilizamos: f = open("arquivo.txt", "r") # abre para leitura # ... f.close() # fecha o arquivo
Lendo arquivos
Para abrir um arquivo para leitura, utilizamos: f = open("arquivo.txt", "r") # abre para leitura # ... f.close() # fecha o arquivo Podemos utilizar o for para ler linha por linha: # ... for linha in f: print linha # ...
Lendo arquivos
Para abrir um arquivo para leitura, utilizamos: f = open("arquivo.txt", "r") # abre para leitura # ... f.close() # fecha o arquivo Podemos utilizar o for para ler linha por linha: # ... for linha in f: print linha # ... ou simplesmente obter uma string com todas as linhas: # ... texto = f.read() # ...
Escrevendo em arquivos
Para escrever em um arquivo: f = open("saida.txt", "w") # << abre para *escrita* # ... a = 30 b = 4.5 f.write("a: %d, b: %lf \n" % (a,b) ) # semelhante ao print # ... f.close() # fecha o arquivo
Para receber par ametros: import sys # biblioteca de interacao com o sist. if (len(sys.argv) >= 1): # se ha parametro, f = open(sys.argv[1], "r") # abre o arquivo else: f = sys.stdin # ou utiliza a STDIN # ...
Classes
Os objetos podem executar comandos ao serem iniciados: class V: def __init__(self): print "Djaaaaaaaabo!" # ... cara = V() # ... # "Djaaaaaaaabo!"
class Pendulo: def __init__(self, v0 = 0.1, x0 = 0, g=9.81, l = 1.0): self.t = 0 self.v = v0; self.x = x0 self.g = g; self.l = l def dxdt(self): return self.v def dvdt(self): return -(self.g / self.l) * sin(self.x) def step(self,dt = 0.001): x0, v0 = self.x, self.v xf = x0 + self.dxdt() * dt vf = v0 + self.dvdt() * dt self.x, self.v = xf, vf self.t += dt
class Pendulo: def __init__(self, v0 = 0.1, x0 = 0, g=9.81, l = 1.0): self.t = 0 self.v = v0; self.x = x0 self.g = g; self.l = l def dxdt(self): return self.v def dvdt(self): return -(self.g / self.l) * sin(self.x) def step(self,dt = 0.001): x0, v0 = self.x, self.v xf = x0 + self.dxdt() * dt vf = v0 + self.dvdt() * dt self.x, self.v = xf, vf self.t += dt ## Para usar: a = Pendulo() for i in xrange(10000): print a.t, a.x, a.v a.step()
Geeky stu
Vari avel para uma fun c ao
Vari aveis podem receber fun c oes: def myFunc(x): print x*2 a = myFunc a(4)
# 8 !
Em C voc e n ao entenderia de primeira como aqui! Fun c oes podem ser par ametro de outras fun c oes!
Geeky stu
Pickle/Unpickle
Salva vari aveis em arquivos: import pickle a = [1, 2, 3, 4] b = [5, 6, 7, 8] c = [a, b, "hohoho"] # escreve em um arquivo f = open("saida_pickle.txt", "w") pickle.dump(c, f) f.close()
Geeky stu
Pickle/Unpickle
Carrega variaveis de um arquivo: import pickle # le de um arquivo # (pode ser rodado em outra janela!) f = open("saida_pickle.txt", "r") d = pickle.load(f) f.close() print d
Where to go now?
Python 101:
docs.python.org/library/
Code like a Pythonista:
python.net/~goodger/projects/pycon/2007/ idiomatic/handout.html