apostila cookbook - resumão de python
Post on 26-Nov-2015
83 Views
Preview:
TRANSCRIPT
-
UNIVERSIDADE FEDERAL DE SANTA CATARINA
CAMPUS JOINVILLE
CENTRO DE ENGENHARIA DA MOBILIDADE
COOKBOOK
(Apostila de Apoio para disciplina de Clculo Numrico)
Autor: Nathan Filipe Hoepers
Joinville, Segundo Semestre de 2012
-
2SUMRIO
1. OPERADORES ............................................................................................................. 32. ESTRUTURAS.............................................................................................................. 53. DEFININDO FUNES............................................................................................... 84. MANIPULAO DE ARQUIVOS DE DADOS........................................................... 95. IMPRESSO FORMATADA ..................................................................................... 126. VETORES E MATRIZES .............................................................................................. 177. GRFICOS COM MATPLOTLIB .............................................................................. 198. FUNES MATEMTICAS...................................................................................... 24
-
31. OPERADORES
OPERADORES ARITMTICOS
OPERADORES DESCRIO EXEMPLOS+ Soma 2 + 2 # Imprime 4- Subtrao 5 2 # Imprime 3* Multiplicao 5 * 5 # Imprime 25/ Diviso 5.0 / 2.0 # Imprime 2.5// Diviso Truncada 12.356 // 2 # Imprime 6.0% Retorna o resto da
diviso10 % 3 # Imprime 1
** Exponenciao 2 ** 3 # Imprime 8pow(a,b) Exponenciao pow(2, 3) # Imprime 8
+= Soma e atribui PARA i = 0i+= 10 # Incrementa 10
em i. (i = 10)-= Subtrai e atribui i-= 4 # Subtrai 4 de i e
atribui resultado. (i = 6)*= Multiplica e atribui i*= 2 # multiplica 6 por 2
e atribui para i. (i = 12)/= Divide e atribui i/= 2 # Divide 12 por 2 e
atribui para i. (i = 6)//= Divide e atribui parte
inteira do resultadoi//=4 # Divide 6 por 4 e
atribui parte inteira para i. (i =1)
%= Divide e atribui resto da diviso
PARA i = 36i%= 10 # Divide 36 por 10 e
atribui resto para i. (i = 6)
**= Eleva nmero e atribui i**= 2 # Eleva 6 ao quadrado e atribui para
i. (i = 36)
-
4OPERADORES LGICOS
OPERADORES DESCRIO EXEMPLOS> Maior 1 > 2 # False 2< Menor 8 < 5 # False
>= Maior igual 10 >= 1 # True
-
52. ESTRUTURAS
1 - ESTRUTURA DE DECISO (if, elif, else):
Forma Geral if condio: # bloco de cdigoelif condio: # outro blocoelse: # bloco final
Exemplo a = input(digite valor de a: ) b = input(digite valor de b: )
if a > b:
print 'a maior que b'
elif a == b:
print 'a igual a b'
else:
print 'a menor que b'
2 - ESTRUTURA DE REPETIO (while):
Forma Geral while condio: # bloco de cdigoExemplo m = 3
n = 5
contador = 0
while m < n:
m = n / 0.5
n = m / 0.5
contador = contador + 1
print "Iteramos %d vezes at m > n"
% contador
-
63 - ESTRUTURA DE REPETIO (for):
Forma Geral for varivel in seqncia: # bloco de cdigoExemplo 1 for i in range (5):
print i
# imprime 0,1,2,3,4
Exemplo 2 for m in range (1,5,1): print m
# imprime 1,2,3,4
Exemplo 3 for j in range (1,5,2): print j
# imprime 1,3
Exemplo 4 for t in range (5,1,-2): print t
# imprime 5,3
Exemplo 5 valores = [2, -4, 5, 2, -1,6]for i in valores:
if i < 0:
print "Negativo
encontrado: %d" % i
else:
print "no um
negativo"
4 - ESTRUTURA DE CONTROLE (break):
Descrio O comando quebra um lao (pode ser o lao for ou while)
Exemplo i = 0while i < 10:
if i == 5:
break
else:
print i
i += 1
# imprime 0,1,2,3,4
-
75 - ESTRUTURA DE CONTROLE (continue):
Descrio O comando passa para o incio do lao.
Exemplo for i in range (10): if i == 5:
continue
print i
# imprime 0,1,2,3,4,6,7,8,9
-
83. DEFININDO FUNES
FORMA GERAL def nome_funcao(param1,param2, ...):return: expressao_1,expressao_2,expressao_3...
EXEMPLO 1 def funcao(): y = 2**2 return y
print funcao() # imprime 4EXEMPLO 2 def soma(a, b):
return a + b
print soma(2, 5) #imprime 7EXEMPLO 3 def soma(a = 1, b = 2, c = 1.5):
return a + b + c
print soma() #imprime 4.5print soma(2,5) # imprime 8.5print soma(2,5,3) # imprime 10
EXEMPLO 4 def proximos(a): return a - 1, a + 1
ant, seg = proximos(10)print "anterior:", ant # imprime 9print "seguinte:", seg # imprime 11
EXEMPLO 5 def f(x,y,z): return x*y,pow(x,z),x/z
print f(10,2,1) # imprime (20,2,10)EXEMPLO 6 def soma(x):
lista= [1, 1, 1, 1] soma= 0 for num in lista: soma += num return x*soma
print"Soma =", soma(10) #imprime 40EXEMPLO 7 def mult(*nums):
mult = 1 for n in nums: mult *= n return mult
print mult(1, 2, 3,10) # Imprime 6print mult(1, 2) # Imprime 3
-
94. MANIPULAO DE ARQUIVOS DE DADOS
CRIANDO UM ARQUIVO DE DADOSimport numpy as np
# Cria um conjunto de dadosN = 10x = np.linspace( 0, 1, N ) # N pontos igualmente distribu dos em [0,1]y = np.exp(-x*x)
# Nome do arquivo que ser criado para escrever e depois para lernome_arq = "Exemplo.CookBook"
# Criando um arquivo para guardar os valores de x e y# 'w' signfica 'write', vai escrever no arquivoarq_saida = open( nome_arq, 'w' ) for i in range(N): arq_saida.write( "%.6f %.6f\n" % (x[i],y[i]) )arq_saida.close() # Fecha o arquivo
print "procure na pasta do cdigo o arquivo criado"
#MUITO IMPORTANTE NOTAR QUE O ARQUIVO IR APARECER NA MESMA PASTA ONDE ESTA SALVO O C DIGO
-
10
LENDO O ARQUIVO CRIADOimport numpy as npnome_arq = "Exemplo.CookBook"
# Agora que o arquivo foi criado, abre ele para ler# 'r' significa 'read', vai ler o arquivoarq_entrada = open( nome_arq, 'r' )
# A fun o 'readlines' l tudo que tem dentro do arquivo e coloca na varivel# contedo.# A varivel contedo uma lista, cada elemento da lista cont m uma linha# do arquivo, inteira, como uma string.conteudo = arq_entrada.readlines()X = []Y = []
print "Lendo o arquivo ..."for linha in conteudo: # Para pegar os nmeros preciso dividir a varivel linha em peda os # Cada peda o, vai ser um elemento da lista valores valores = linha.split() X.append( float( valores[0] ) ) Y.append( float( valores[1] ) )
print "Vetor X lido do arquivo:"print X
print "\nVetor Y lido do arquivo:"print Y
-
11
SADA DO PROGRAMALendo o arquivo ...
# print "Vetor X lido do arquivo:"# print XVetor X lido do arquivo:[0.0, 0.111111, 0.222222, 0.333333, 0.444444, 0.555556, 0.666667, 0.777778, 0.888889, 1.0]
# print "\nVetor Y lido do arquivo:"# print YVetor Y lido do arquivo:[1.0, 0.98773, 0.951817, 0.894839, 0.820755, 0.734444, 0.64118, 0.546108, 0.453789, 0.367879]
-
12
5. IMPRESSO FORMATADA
1 - %f:
Forma Geral Print %espao.casasf % nmero
Exemplo 1 a = math.piprint " %8.5f" % a
# imprime 3.14159(nmero PI com 8 espaos e 5 casas
decimais)
Exemplo 2 a = math.piprint " %.5f" % a
# imprime 3.14159(nmero PI com 5 casas)
Exemplo 3 a = math.piprint " %.f " % a
# imprime 3(nmero PI truncado)
Exemplo 4 a = math.piprint " %f " % a
# imprime 3.141593(nmero PI em ponto flutuante com 6 casas)
-
13
2 - %d:
Forma Geral Print %espao.d % nmero
Exemplo 1 a = math.piprint " %8.d" % a
# imprime 3(nmero PI com 8 espaos e parte inteira)
Exemplo 2 a = math.piprint " %8d" % a
# imprime 3(nmero PI com 8 espaos e parte inteira)
Exemplo 3 a = math.piprint " %d" % a
# imprime 3(nmero PI parte inteira)
-
14
3 - %e:
Forma Geral Print %espao.casase % nmero
Exemplo 1 a = 12345.6789print " %8.4e" % a
# imprime 1.2346e+04(nmero com 8 espaos e 4 casas decimais)
Exemplo 2 a = 12345.6789
print " %.4e" % a
# imprime 1.2346e+04(nmero com 4 casas)
Exemplo 3 a = 12345.6789print " %.e " % a
# imprime 1e+04(nmero truncado)
Exemplo 4 a = 12345.6789print " %e" % a
# imprime 1.234568e+04(nmero em ponto flutuante com 6 casas)
-
15
4 - %g:
Forma Geral Print %espao.nmerosg % nmero
Exemplo 1 a = 12345.6789print " %8.2g" % a
# imprime 1.2e+04(nmero com 8 espaos e 2 nmeros)
Exemplo 2 a = 12345.6789print " %8.3g" % a
# imprime 1.23e+04(nmero com 8 espaos e 3 nmeros)
Exemplo 3 a = 12345.6789
print " %.4g" % a
# imprime 1.234e+04(representao com 4 nmeros)
Exemplo 4 a = 12345.6789print " %.g " % a
# imprime 1e+04(nmero truncado)
Exemplo 5 a = 12345.6789print " %g" % a
# imprime 12345.7(ponto flutuante com 6 nmeros)
Exemplo 6 a = -.000001235print " %g" % a
# imprime -1.235e-06(ponto flutuante)
-
16
5 - %s:
Forma Geral Print %espao.caracters % (nmero ou palavra)
Exemplo 1 a = pythonprint " %8.2s" % a
# imprime py(palavra com 8 espaos e 2 caracteres)
Exemplo 2 a = 100print " %8.2s" % a
# imprime 10(nmero com 8 espaos e 2 caracteres)
Exemplo 3 a = 2.235print " %.3s" % a
# imprime 2.2(nmero com 3 caracteres)
Exemplo 4 a = pythonprint " %10s" % a
# imprime python(toda palavra e com 10 espaos)
Exemplo 5 a = 12345.6789print " %s" % a
# imprime 12345.6789(todo o nmero)
-
17
6. VETORES E MATRIZES
*OBS: import numpy as np
CDIGO RESULTADO DO CDIGOimport numpy as np# Cria uma listalista = [ 1, 2, 3, 4, 5 ]# Uma lista no um vetor!# Crio um vetor usando Numpy:x = np.array( lista )
# Imprimo o vetor xprint "Vetor x: ", xnx = len(x)print "O tamanho do vetor x : %d " % nx
- IMPRIME:Vetor x: [1 2 3 4 5]O tamanho do vetor x : 5
import numpy as np# Inicio um vetor amostrado de forma uniforme entre 0 e 10v = np.linspace( 0, 10, 3 )print "\nv: ",v
- IMPRIME:v: [ 0. 5. 10.]
import numpy as np# Inicio um vetor com 10 zeros:z = np.zeros( 10 )print "\nz: ",z
- IMPRIME:z: [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
# Manipula es com vetoresu = 2*vprint "\n2*v: ",u
- IMPRIME:2*v: [ 0. 10. 20.]
# Manipula es com vetoresu = v**2print "\nv**2: ",u
- IMPRIME:v**2: [ 0. 25. 100.]
import numpy as np# Manipula es com vetoresu = np.sin( v )print "\nsin(v): ",u
- IMPRIME:sin(v): [ 0. -0.95892427 -0.54402111]
# Manipula es com vetoresu = v + v**2 + v**3print "\nv + v**2 + v**3: ",u
- IMPRIME:v + v**2 + v**3: [ 0. 155. 1110.]
-
18
*OBS: MATRIZES SO VETORES DE VETORES
*OBS: import numpy as np
# Inicio uma matriz toda nula com 5 linhas e duas colunasM0 = np.zeros( [5,2] )print "\nMatriz de zeros:"print M0
- IMPRIME:Matriz de zeros:
[[ 0. 0.][ 0. 0.][ 0. 0.][ 0. 0.][ 0. 0.]]
# Inicio uma matriz toda com 1:M1 = np.ones( [5,3] )print "\nMatriz de 1's:"print M1
- IMPRIME:Matriz de 1's:[[ 1. 1. 1.][ 1. 1. 1.][ 1. 1. 1.][ 1. 1. 1.][ 1. 1. 1.]]
-
19
7. GRFICOS COM MATPLOTLIB
O cdigo:
import numpy as npfrom pylab import *
# 1 - Criando um conjunto de dados, com espaamento muito pequenox = np.linspace(-5, 5, 1000)y = np.exp(-x*x) # a funo e^(-x*x), poderia ser qualquer outra funo
# 2 - Crio um conjunto de dados, com espaamento grandeX = np.linspace(-5, 5, 11 )Y = np.exp(-X*X)
# 3 - Plotando os pontos com espaamento pequeno como uma curva contnuaplot( x, y, 'k-', label=u'Funo $e^{-x^2}$', linewidth = 1)
# 4 - Ploto os pontos com espaamento grande como se fossem dadosplot( X, Y, 'bo', label=u'Dados $e^{-x^2}$', markersize = 7)
# 5 - Legendalegend(loc = 'upper left')
# 6 - Texto nos eixos x e y, alm do ttulo do grficoxlabel(u"Eixo x")ylabel(u"Eixo y")title(u"Grfico de Exemplo")
# 7 - Limites do grficoxlim(-6,6)ylim(-0.2,1.2)
# 8 - Gradegrid() # grid (True) Aparece, grid (False) Sem Grade
# 9 - Mostra o grfico na telashow()
-
20
1 linha contnua:
# 3 - Plotando os pontos com espaamento pequeno como uma curva contnuaplot( x, y, 'k-', label=u'Funo $e^{-x^2}$', linewidth = 1)
Forma geral: plot (eixo x, eixo y, cor e tipo de linha, legenda, grossura da linha)
TIPOS DE CORES
b Azul - (blue)
g Verde - (Green)
r Vermelho - (red)
c Outro tipo de Azul (cyan)
m Magenta - (magenta)
y Amarelo - (yellow)
k Preto - (Black)
w Branco - (White)
TIPOS DE LINHAS
'-' Linha Slida
'--' Linha Tracejada
'-.' Linha Trao - Ponto
':' Linha Pontilhada
-
21
Exemplos:
plot( x, y, 'c-', label=u'Funo $e^{-x^2}$', linewidth= 1 )
plot( x, y, 'b --', label=u'Funo $e^{-x^2}$', linewidth = 2 )
plot( x, y, 'y -.', label=u'Funo $e^{-x^2}$', linewidth = 3 )
plot( x, y, 'k:', label=u'Funo $e^{-x^2}$', linewidth = 1 )
-
22
2 Plotando os Marcadores (Pontos):
# 4 - Ploto os pontos com espaamento grande como se fossem dadosplot( X, Y, 'bo', label=u'Dados $e^{-x^2}$', markersize = 7)
Forma geral: plot (eixo x, eixo y, cor e tipo de marcador, legenda, grossura do marcador)
TIPOS DE MARCADORES
'.' Ponto
'*' Estrela
'o' Circulo
'v' Tringulo para baixo
'^' Tringulo para cima
'' Tringulo para direita
's' Quadrado
'p' Pentgono
'h' Hexgono
'H' Hexgono 2
'+' Mais
'x' X
Exemplo:
plot( x, y, 'k-', label=u'Funo $e^{-x^2}$', linewidth= 1 ) plot( X, Y, 'bo', label=u'Dados $e^{-x^2}$', markersize = 10)
-
23
3 Legenda:Forma geral: legend(loc = 'lugar onde se quer que aparea')
EXEMPLOS
Cdigo Escrito Cdigo Numrico Aplicao Localizao
best 0legend(loc = best)
OUlegend(loc = 0 )
Canto superior Direito
upper right 1legend(loc = upper right)
OUlegend(loc = 1)
Canto superior Direito
upper left 2legend(loc = upper left)
OUlegend(loc = 2)
Canto superior Esquerdo
lower left 3legend(loc = lower left)
OUlegend(loc = 3)
Canto inferior Esquerdo
lower right 4legend(loc = lower right)
OUlegend(loc = 4)
Canto inferior Direito
right 5legend(loc = right)
OUlegend(loc = 5)
Canto direito
center left 6legend(loc = center left)
OUlegend(loc = 6)
Centro Esquerdo
center right 7legend(loc = center right)
OUlegend(loc = 7)
Centro Direito
lower center 8legend(loc = lower center)
OUlegend(loc = 8)
Centro Inferior
upper center 9legend(loc = upper center)
OUlegend(loc = 9)
Centro Superior
center 10legend(loc = center)
OUlegend(loc = 10)
Centro
-
24
8. FUNES MATEMTICAS
*OBS: import numpy as np
1 - Funes trigonomtricas:
FUNO DESCRIO EXEMPLOnp.sin(x) Retorna o seno de x
(em radianos)print np.sin(.5)
#imprime 0.479425538604
np.cos(x) Retorna o cosseno de x (em radianos)
print np.cos(.5)#imprime 0.87758256189
np.tan(x) Retorna a tangente de x (em radianos)
print np.tan(.5)#imprime 0.546302489844
np.arcsin(x) Retorna o arco seno de x (em radianos)
print np.arcsin(.5) #imprime 0.523598775598
np.arccos(x) Retorna o arco cosseno de x (em
radianos)
print np.arccos(.5) #imprime 1.0471975512
np.arctan(x) Retorna o arco tangente de x (em
radianos)
print np.arctan(.5) #imprime 0.463647609001
np.arctan2(y,x) Retorna o arco tangente (y/x)
print np.arctan2(1,2) #imprime 0.463647609001
np.hypot(co,ca) Retorna a hipotenusa do tringulo
print np.hypot(3,4) #imprime 5.0
2 - Funes logartmicas e exponenciais:
FUNES DESCRIO EXEMPLOSnp.log(x,base) Clculo de logaritmo
com qualquer baseprint np.log(8,2)
#imprime 3.0
np.log10(x) Clculo de logaritmo com base 10
print np.log10(10)#imprime 1.0
np.log(x) Clculo de logaritmo natural (ln)
print np.log(2.71)#imprime 0.996948634892
np.exp(x) Retorna e**x print np.exp(1)#imprime 2.71828182846
np.sqrt(x) Retorna a raiz quadrada de x
print np.sqrt(81)#imprime 9.0
-
25
3 - Constantes, converses e outras:
FUNES DESCRIO EXEMPLOSnp.e Retorna o valor de e print np.e
#imprime 2.71828182
np.pi Retorna o valor de pi print np.pi#imprime 3.141592
np.degrees(x) Converte x de radianos para graus
print np.degrees(0.523598...)#imprime 30.0
np.radians(x) Converte x de graus para radianos
print np.radians(30)#imprime 0.523598...
np.factorial(x) Retorna o fatorial de x print np.factorial(10)#imprime 3628800
4 - Funes hiperblicas:
FUNO DESCRIO EXEMPLOnp.sinh(x) Retorna o seno
hiperblico de x print np.sinh(2)
#imprime 3.62686040785
np.cosh(x) Retorna o cossenohiperblico de x
print np.cosh(2)#imprime 3.76219569108
np.tanh(x) Retorna a tangentehiperblica de x
print np.tanh(2)#imprime 0.964027580076
np.arcsinh(x) Retorna o inverso do seno hiperblico de x
print np.arcsinh(.2) #imprime 0.198690110349
np.arccosh(x) Retorna o inverso do cosseno hiperblico
de x
print np.arccosh(2) #imprime 1.31695789692
np.arctanh(x) Retorna o inverso da tangente hiperblica
de x
print np.arctanh(.2) #imprime 0.202732554054
top related