13 Python Scripts
13 Python Scripts
Computacional
PROGRAMACIÓN
from fractions import Fraction
a = Fraction(3, 5)
b = Fraction(1)
c = a + b
d = Fraction(4, 6)
d
e = a + d
In [9]: run cuad
In [9]: from cuad import *
python cuad.py
● Importar bibliotecas (librerías o módulos)
● Definir funciones
● Definir variables globales
● Estructuras de control y/o cálculos
● Comandos de salida (si es necesario)
Scripts de Python.
Por ejemplo:
Estructuras de Control.
En Python existen las estructuras de control comunes
usadas en los lenguajes programación, que son las
condicionales (if) y las iteretivas (for y while).
Operadores de comparación:
Igual que ( == ), Diferente que ( != ). Menor que ( < ),
Mayor que ( > ), Menor o igual que ( <= ),
Mayor o igual que ( >= )
Operadores de lógicos:
AND ( and ), OR ( or ), NOT ( ! )
Estructuras de Control.
Sin embargo, a diferencia de otros lenguajes de
programación en Python, no existen instrucciones que
indiquen donde empieza y termina un bloque del
programa.
a = raw_input('Dame el valor de a')
if a > 0:
print "a es positiva"
a = a + 1
elif a == 0: # Notese: dos veces =
print "a es 0"
else:
print "a es negativa"
a = 3; b=7
if a>1 and b>2:
print "Grandes"
if a>0 or b>0:
print "Al menos uno positivo"
Estructuras Iterativas
La parte central de muchos cálculos científicos consiste
en llevar a cabo ciclos (bucles).
i = 0
while i < 10:
i += 1 # equivalente a i = i + 1
print i
l = [1, 2.5, 3.71, "hola", [2, 3]]
for i in l:
print 2*l
Estructuras Iterativas
Si queremos iterar sobre muchos elementos, es más útil
construir la lista. Por ejemplo, para hacer una iteración para
todos los números hasta 100, podemos utilizar
for i in range(100):
print 2*i
for i in range(3,57,3):
print 2*i
def f(x):
print "Argumento x = ", x
return x*x
y se llama así:
f(3)
f(3.5)
Funciones.
Las funciones se pueden utilizar con argumentos de
cualquier tipo (el tipo de los argumentos nunca se
especifica). Si las operaciones llevadas a cabo no
se permiten para el tipo que se provee, entonces
Python regresa un error:
f("hola")
def f(x, y):
return 2*x, 3*y
Funciones.
Se puede proporcionar una forma sencilla de documentación
de una función al proporcionar un “docstring”:
def cuad(x):
"""Funcion para llevar un numero al cuadrado.
Funciona siempre y cuando el tipo de x permite
multiplicacion.
"""
return x*x
cuad?
from mi_biblioteca import *
a = raw_input('Dame el valor de a: ')
print "El cuadrado de a es ", a*a
entrada = open("datos.dat", "r")
for linea in entrada.readlines():
print linea
ENTRADA (leer archivos)
Sin embargo, tal vez la opción más fácil e intuitiva
es
for linea in entrada:
print linea
palabras = linea.split()
ENTRADA (leer archivos)
Si todos los datos en realidad son números, entonces
tenemos que procesar cada palabra, convirtiéndola en un
número:
datos = []
for i in palabras:
datos.append( float(i) )
Resulta que hay una manera más fácil, de más alto nivel
y más rápida de hacer esto:
map(float, palabras)
entrada = open("datos.dat", "r")
for linea in entrada:
datos = map(float, linea.split())
a = 17.3
a
b = “hola”
b
print “imprimiendo datos”, a, b
SALIDA (escribir archivos)
Sin embargo si se trata de un script, en Linux, la manera
más fácil (pero no muy flexible) de guardar datos en un
archivo es utilizar la “redirección” que provee el shell
(Bash). Al correr un programa así desde Bash:
salida = open("resultados.dat", "w")
salida.write()
SALIDA (escribir archivos)
Sin embargo, esta función puede escribir solamente
cadenas. Por lo tanto, si queremos escribir números
contenidos en variables, es necesario convertirlos
primero a la forma de cadena.
a = 3
s = "El valor de a es " + str(a)
a = 3
s = "El valor de a es %d" % a
b = 3.5; c = 10.1
s = "b = %g; c = %g" % (b, c)
salida.write(" %g\t %g" % (a,b) )