Sie sind auf Seite 1von 7

Python- Preguntas Frecuentes

Modelación y Análisis Numérico


Marzo 15, 2012

Índice
1. ¿Cómo puedo obtener Python? 2

2. ¿Qué significa la Interfaz de Idle? 2

3. ¿Cómo manejo librerías? 2

4. ¿Cómo manejo variables? 3

5. ¿Cómo condiciono? 4

6. ¿Cómo uso ciclos? 4


6.1. Ciclo FOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
6.1.1. Zip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
6.2. Ciclo While . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

7. ¿Cómo organizo mi programa? 6


7.1. Definición de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
7.2. Definición de Clases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

8. ¿Cómo muestro resultados? 6


8.1. Gráficas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
8.2. Archivo .txt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

9. ¿Cómo comentar? 7

10.¿Dónde busco ayuda? 7

1
1. ¿Cómo puedo obtener Python?

Python es un lenguaje de programación, fácil de leer y que tiene versatilidad en los distintos “gustos”
de programar. Es un lenguaje utilizado a nivel mundial en investigación y corre en los sistemas ope.
La implementación de referencia es un software Libre y Abierto.
Si deseas obtener herramientas útiles para programar en Python, puedes descargar una distribu-
ción con licencia académica de: http://www.enthought.com/products/edudownload.php
Si deseas trabajar en una interfaz más comoda, que se parece a Matlab, puedes descargar Spyder
de: https://code.google.com/p/spyderlib/
En clase trabajaremos en la versión más simple de Python. En todas las salas de la universidad
se encuentra esta versión, siempre buscar Python−→Idle.

2. ¿Qué significa la Interfaz de Idle?

Al abrir Idle, Siempre se encontrará una consola (Python Shell), donde se puede escribir una serie
de instrucciones para calcular pero no serán guardadas. Si desea hacer un nuevo script, se debe crear
una nueva ventana en File −→New Window. Al guardar sus archivos siempre agréguele la terminación
.py para que sean reconocidos al abrirlos luego. Por ejemplo: ’ejemplo1.py’
Para probar su método, en la consola puede seleccionar la opción Debug−→Debugger, y luego
correr su método en Run Module (F5)

3. ¿Cómo manejo librerías?


Al ser un software libre, dependiendo de la aplicación que se quiera trabajar, será necesario importar
librerías al Módulo. Entre las librerías más usadas esta Numpy (permite realizar operaciones numéricas

2
y matriciales) y Pylab ( permite graficar). Por lo general se importa cada librería con un nombre (por
ejemplo np), y para usar funciones de esa librería se llaman nombre.función (es decir np.sqrt() )
import numpy a s np
import pylab a s p l t
Si sólo se desea importar una función de una librería se puede poner:
from numpy import s q r t
De esta forma se pueden crear varios archivos e importarlos en un archivo principal. Esto permite
que sean más flexibles los códigos.

4. ¿Cómo manejo variables?


No es necesario definir las variables con anterioridad, sin embargo se tienen que tener en cuenta
algunas consideraciones:
Python diferencia entre mayúsculas y minúsculas
Escalares: Diferencia entre enteros (int) y decimales (float).
A = 1 #D e f i n e a A como e n t e r o , e n t o n c e s A/2=0
A = 1 .#D e f i n e a A cono f l o a t , e n t o n c e s A/2=0.5

#Se puede p a s a r de un t i p o a o t r o :
A=i n t (A) #C o n v i e r t e a e n t e r o
A=f l o a t (A) #C o n v i e r t e a d e c i m a l

A=5+4 j #D e f i n e números c o m p l e j o s .

B=A∗∗2 #P o t e n c i a a l a 2 de A (A^2)

Por defecto, Python crea listas de números. El índice siempre empieza en 0. Es decir
A=[1,2,3], Python lo entiende como una lista compuesta por 1, 2 y 3. Si se quieren crear matrices,
es necesario importar Numpy y se tienen 2 opciones:

• Array: Es la más conveniente ya que la mayoría de los métodos de Numpy regresan variables
tipo Array.
A=np . a r r a y ( [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] , [ 7 , 8 , 9 ] ) #Crea l a m a t r i z
[1 ,2 ,3;4 ,5 ,6;7 ,8 ,9]

K=A[ 2 , 3 ] #Componente a_i , j de l a m a t r i z

B=np . z e r o s ( ( 3 , 2 ) ) #Crea una m a t r i z de c e r o s de tamaño ( n ,m) , en


e s t e c a s o 3 x2
B=np . o n e s ( ( 3 , 2 ) ) #Crea una m a t r i z de unos de tamaño ( n ,m) , en e s t e
c a s o 3 x2
B=np . eye ( 3 ) #Crea l a m a t r i z i d e n t i d a d de tamaño 3 x3
D=np . a r r a y ( [ 1 , 2 , 3 ] ) #Vector de 3 componentes , no d i f e r e n c i a f i l a s
o columnas

C=A+B #Suma de m a t r i c e s
C=A∗B #p r o d u c t o término a término de m a t r i c e s
C=dot (A, B) #Producto m a t r i c i a l AB
C=A. T #T r a n s p u e s t a de A
C=A∗∗2 #P o t e n c i a 2 de A

3
C=np . l i n a l g . i n v (A) #I n v e r s a de A
• Matrix: Permite realizar más fácilmente operaciones de álgebra lineal.
A=np . matrix ( [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] , [ 7 , 8 , 9 ] ) #Crea l a m a t r i z
[1 ,2 ,3;4 ,5 ,6;7 ,8 ,9]
B=np . matrix ( [ 5 , 6 , 7 ] , [ − 1 , 2 , 3 ] , [ 6 , 7 , 8 ] ) #Crea l a m a t r i z
[5 ,6 ,7; −1 ,2 ,3;6 ,7 ,8]

K=A[ 2 , 3 ] #Componente a_i , j de l a m a t r i z

C=A+B #Suma de m a t r i c e s
C=A∗B #p r o d u c t o m a t r i c i a l AB
C=m u l t i p l y (A, B) #Producto término a término de m a t r i c e s
C=A.H #T r a n s p u e s t a de A
C=A. I #I n v e r s a de A
C=A.A #Tranformación de A a t i p o Array

A veces sólo se quiere tener una lista de objetos, pero sin que tengan estructura para hacer
operaciones. Para esto se puede:
C= [ ] #D e f i n e una l i s t a v a c i a
C . append ( 4 ) #Agrega a l a l i s t a 4 , C= [ 4 ]
C . append (5+1 j ) #Agrega a l a l i s t a 5+1 j , C=[4 ,5+1 j ]

5. ¿Cómo condiciono?
En Python, no se utiliza end para terminar una instrucción, por lo tanto es muy importante
tabular.
i f condicion1 :
Comando1
Comando2
e l i f condicion2 :
Comando3
Comando4
else :
Comando5
Por ejemplo:
i f x <2.:
a=3
e l i f x <3.:
a=4
e l i f x <5.:
a=5
else :
a=6

6. ¿Cómo uso ciclos?


6.1. Ciclo FOR
Se deben utilizar cuando se conoce un número específico de iteraciones o repeticiones por hacer. El
contador recorre una lista, la cual puede estar compuesta por enteros, decimales o cualquier otro tipo

4
Símbolos
Igual a==b
Diferente a!=b
Mayor que a>b
Mayor o igual que a>=b
Menor que a<b
Menor o igual que a<=b
y a and b
o a or b

Cuadro 1: Símbolos comunmente usados

de enteros.
Dado que lo más usado es definir el contador de un número n a un número m con paso de h, este
se puede definir como range(n,m,h), y esto regresa una lista [n, n + h, n + 2h, ..., m − h]
f o r c o n t a d o r in l i s t a :
comando1
comando2
Por ejemplo
f o r i in r a n g e ( 4 ) :
K=K+i

6.1.1. Zip
Si se quieren recorrer 2 listas al mismo tiempo, se pueden manejar 2 contadores. Por ejemplo
suponga que se tienen 2 listas A y B y se quiere calcular un nuevo vector C tal que Ci = Ai ∗ exp(Bi ).
Esto se podría programar como:
A=np . a r r a y ( [ 1 , 2 , 3 ] )
B=np . a r r a y ([ −1 , −3 , −5])
C= [ ]
f o r i , j , k in z i p (A, B) :
C . append ( i ∗np . exp ( j ) )

6.2. Ciclo While


Se debe utilizar cuando se realiza un ciclo mientras que una condicion sea verdadera
while c o n d i c i o n :
comando1
comando2
Por ejemplo
while e r r o r <10∗∗( −5) :
Y=X+4/X
e r r o r=np . abs (Y−X)
print Y #Permite imprimir en l a c o n s o l a !
X=Y
En estos ciclos (for o while) se puede usar break para terminarlos antes de tiempo.

5
7. ¿Cómo organizo mi programa?
7.1. Definición de funciones
Las funciones son definidas en un módulo y pueden ser llamadas cuando se importa el módulo, o
dentro del mismo módulo. Realizan comandos específicos.
def nombrefuncion ( p a r a m e t r o s ) :
comando 1
comando 2
return r e s u l t a d o
Por ejemplo:
def s u ma e n te r o s ( n ) :
y=n ∗ ( n−1) /2
return y

7.2. Definición de Clases


A veces se requiere tener la idea de objetos que tienen atributos y funciones propias. Estos se
pueden crear a través de class.
class nombreclase :
def __init__ ( s e l f , a t r i b u t o 1 , a t r i b u t o 2 , . . . ) : #Crea e l o b j e t o
s e l f . a t r i b u t o 1= a t r i b u t o 1
s e l f . a t r i b u t o 2= a t r i b u t o 2
...
def f u n c i o n ( s e l f , p a ra m e t r o s ) : #Crea una f u n c i ó n
Comando1
Comando2
return r e s p u e s t a
Por ejemplo, si se quisiera crear una nueva clase de números complejos:
class complejo :
def __init__ ( s e l f , r e a l , i m a g i n a r i o ) :
s e l f . r e a l= r e a l
s e l f . imaginario = imaginario
def norma ( s e l f ) :
n=np . s q r t ( s e l f . r e a l ∗∗2+ s e l f . i m a g i n a r i o ∗ ∗ 2 )
return n

8. ¿Cómo muestro resultados?


Una de las formas más sencillas para ver los resultados en la consola es a partir de print. Esto
muestra el valor de la variable en la consola.
print " \ t S t e p ␣ %2d : \ t t i m e ␣=␣ %.6e \ t d t ␣=␣ %.6e " % ( s t e p , t , dt )
Imprime en consola:
Step 4 0 0 : time = 1 . 2 3 4 5 6 dt = 7 . 8 9 1 2 3 4
Es decir \t representa una tabulación y %2d permite incluir una variable dentro de una cadena de
string.

6
8.1. Gráficas
Para graficar existen varias librerias disponibles. Una de las más comunes y que se puede encontar
en cualquier computador es Pylab. Otras recomendables para manejar gráficos más complejos son
matplotlib y mayavi.
import pylab a s p l t

plt . p l o t ( x p o i n t s , y p o i n t s ) #P i n t a l a c u r v a y v s . x
plt . l e g e n d ( ( ’ l i n e a 1 ’ , ’ l i n e a 2 ’ , . . . ) ) #Muestra l a l e y e n d a
plt . s u p t i t l e ( t i t u l o ) #Muestra t i t u l o
plt . show ( )

8.2. Archivo .txt


Para leer archivos .txt que tengan igual número de columnas en cada fila, se puede utilizar:
Matriz=np . l o a d t x t ( ’ Nombrearchivo . t x t ’ )
Para guardar un archivo a partir de un arreglo
np . s a v e t x t ( ’ Nombrearchivo . t x t ’ , a r r e g l o )

9. ¿Cómo comentar?
Hay 2 opciones para comentar: # o ” ’ ” ’
Opcion 1
x=2 #D e f i n e a x como 2 . E s t e t i p o de c o m e n t a r i o e s l i n e a a l i n e a
y=3 #D e f i n e a y como 3 .

Opcion 2
’ ’ ’ El método d e f i n e l o s v a l o r e s de :
x=2
y=3
E s t e c o m e n t a r i o a p a r e c e en l a documentacion
’’’
x=2
y=3

10. ¿Dónde busco ayuda?


Dentro de la consola se puede llamar al método help( palabra) si se busca el significado de una
palabra definida en Python.
La documentación de Python es muy buena, por lo general explica que hace cada método, de que
tipo son los parámetros, y de que tipo es la salida. Cualquier inquietud adicional basta con buscar por
internet Python + palabra que se desea usar, es muy probable que encuentren todo lo que necesitan.

Das könnte Ihnen auch gefallen