Comandos Básicos de Python para el MEF

Importando Librerías

In [1]:
import time
import sys,os,codecs
import matplotlib.pyplot as plt
from numpy import zeros, identity, array
from numpy.linalg import inv
from numpy.random import rand

Uso de Variables

In [2]:
a=3+5; A=2*6; b=2**3
B=2.6/3.5
α,β,Φ = 0.22,0.33,0.9
η = 3.1416
print("a=%i\nA=%s\nb=%.3d\nB=%10.5f\nΦ,α,β=%s,%s,%s"%(a,
A,b,B,Φ,α,β))
a=8
A=12
b=008
B=   0.74286
Φ,α,β=0.9,0.22,0.33

Uso de Condicionales

In [3]:
A=5
if A>2:
  print("A es mayor que 2")
elif A==2:
  print("A es igual a 2")
elif A<2 and A>=0:
  print("A es menor que 2, pero positivo")
else:
  print("A es menor que 2 y negativo")
A es mayor que 2

Manejo de Bucles

In [4]:
B="PYTHON\n"

Usando Bucle 'While'

In [5]:
i=0
while i<6:
  print(B[i])
  i=i+1
P
Y
T
H
O
N

Usando Bucle 'for'

In [6]:
for e in B:
  print(e)
P
Y
T
H
O
N


Usando un 'for' comprimido

In [7]:
[print(e) for e in B]
P
Y
T
H
O
N


Out[7]:
[None, None, None, None, None, None, None]

Ejemplo de uso de comandos

In [8]:
lista=[]
n=10
inicio = time.time()
while True:
    # if n==0:
    #     print("Ojo n es igual a 0")
    #     break
    try:
        div=10/n
    except Exception as e:
        print(e)
        break
    print("La división es: %7.5f"%div)
    lista.append([n,div])
    n=n-1
    # time.sleep(1)
print("Demoró: %6.3f segundos"%(time.time()-inicio))
La división es: 1.00000
La división es: 1.11111
La división es: 1.25000
La división es: 1.42857
La división es: 1.66667
La división es: 2.00000
La división es: 2.50000
La división es: 3.33333
La división es: 5.00000
La división es: 10.00000
division by zero
Demoró:  0.005 segundos

Manejo de Archivos

Leyendo un archivo

In [9]:
# file1 = open('./INPUT/test.txt',"r")
file1 = codecs.open('./INPUT/test.txt',"r","utf-8")
texto = file1.readline()
texto2 = file1.readline()
file1.close()
print("Se lee de Archivo test.txt:\n%s%s"%(texto,texto2))
print(texto.split(' '))
Se lee de Archivo test.txt:
JPI Ingeniería e Innovación
Python
['JPI', 'Ingeniería', 'e', 'Innovación\r\n']

Escribiendo un archivo

In [10]:
# file2 = open('./OUTPUT/out.txt',"w")
file2 = codecs.open('./OUTPUT/out.txt',"w","utf-8")
file2.write(texto)
file2.write(texto2)
file2.close()
print("Se escribió el archivo out.txt:\n%s\n%s"%(texto,texto2))
Se escribió el archivo out.txt:
JPI Ingeniería e Innovación

Python

Usando variables binarias

In [11]:
aa='PYTHON'
bb=aa.encode('ascii')
cc=bb.decode('ascii')
##
print("Peso de aa,bb,cc en Bytes:")
print(sys.getsizeof(aa),sys.getsizeof(bb),sys.getsizeof(cc))
a='JPI Ingeniería e Innovación'
b=a.encode('utf-8')
c=b.decode('utf-8')
print("Peso de a,b,c en Bytes:")
print(sys.getsizeof(a),sys.getsizeof(b),sys.getsizeof(c))
Peso de aa,bb,cc en Bytes:
55 39 55
Peso de a,b,c en Bytes:
100 62 100

Definiendo una Función

In [12]:
def countSpaces(text='texto'):
    '''
    Esta es una función que cuenta espacios.
    '''
    j=0
    for e in texto:
        if e == ' ':
            j=j+1
    return j
In [13]:
texto='Hola JPI Ingeniería e Innovación'
x=countSpaces(texto)
print("Número de espacios en\n|%s|: %i"%(texto,x))
Número de espacios en
|Hola JPI Ingeniería e Innovación|: 4

Definiendo una 'clase'

In [14]:
class datos:
    tiempo=60
    amplitud=10
    def countSpaces(text='texto'):
        j=0
        for i in text:
            if i==' ':
                j=j+1
        datos.espacios=j
In [15]:
print(datos.tiempo)
print(datos.amplitud)
texto='Hola JPI Ingeniería e Innovación'
datos.countSpaces(texto)
print(datos.espacios)
60
10
4

Definiendo un diccionario

In [16]:
Capital = dict(
  Perú='Lima',
  Bolivia='Sucre',
  Ecuador='Quito'
)
print(Capital["Ecuador"])
Quito

Manejando Matrices con Numpy

In [17]:
Z = zeros((5,2))+1.0
# print(Z,'\n',Z*1.2,'\n',Z/0.5)

I5 = identity(5)
print("Matriz Identidad I5:\n",I5)
print("Matriz I5xZ:\n",I5@Z)
print("Matriz inversa(0.5xI5)xZ:\n",inv(I5*2)@Z)
Matriz Identidad I5:
 [[1. 0. 0. 0. 0.]
 [0. 1. 0. 0. 0.]
 [0. 0. 1. 0. 0.]
 [0. 0. 0. 1. 0.]
 [0. 0. 0. 0. 1.]]
Matriz I5xZ:
 [[1. 1.]
 [1. 1.]
 [1. 1.]
 [1. 1.]
 [1. 1.]]
Matriz inversa(0.5xI5)xZ:
 [[0.5 0.5]
 [0.5 0.5]
 [0.5 0.5]
 [0.5 0.5]
 [0.5 0.5]]

Mostrando el tamaño de una Matriz:

In [18]:
A=array([[1,2],[2,3]],dtype='int8')
print("Tamaño de:\n",A,"\nes =%s Bytes"%sys.getsizeof(A))
Tamaño de:
 [[1 2]
 [2 3]]
es =116 Bytes

Ploteando con matplotlib

In [19]:
M=array(lista)
x=M[:,0]
y=M[:,1]
plt.plot(x,y,'r--',lw=2,label='Rojo')
plt.plot(x,y,'k',alpha=0.5,label='Negro')
plt.legend()
plt.show()