0% encontró este documento útil (0 votos)
110 vistas

Cap 2

Este documento presenta los conceptos básicos de programación en Python, incluyendo cómo escribir el primer programa "Hola Mundo", usar comentarios, variables, operaciones matemáticas y bucles "for" para realizar tareas repetitivas. Se proporcionan ejemplos como multiplicar números, generar tablas de multiplicar y funciones trigonométricas usando bucles "for" y bibliotecas como NumPy y math.

Cargado por

Johan Niko
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
110 vistas

Cap 2

Este documento presenta los conceptos básicos de programación en Python, incluyendo cómo escribir el primer programa "Hola Mundo", usar comentarios, variables, operaciones matemáticas y bucles "for" para realizar tareas repetitivas. Se proporcionan ejemplos como multiplicar números, generar tablas de multiplicar y funciones trigonométricas usando bucles "for" y bibliotecas como NumPy y math.

Cargado por

Johan Niko
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 12

Capítulo 2

Primeros pasos en Python

2.1. Primer programa


El primer programa que escribiremos en Python es, el clásico, hola mundo!.
Para crear este script en Python requerimos de un editor de texto plano (vi, jed,
xemacs, gedit. . . elija su favorito). El archivo creado debe tener la extensión .py
y lo llamamos hola.py. Si está corriendo Jupyter Notebooks, lo que se muestra
a continuación debe estar dentro de una celda de código. En ambos casos, el
código contiene:
hola.py

print ("Hola Mundo!")

Una segunda versión de este programa puede ser más informativa


hola1.py

# Mi primer programa de Python

print ("Hola Mundo!")

Para ejecutar el programa desde la terminal, en la línea de comandos digitar:

> python hola.py

Esto da como resultado

Hola Mundo!

Note que la ejecución del programa se hace en la línea de comandos y no


abriendo Python. Sin embargo, si se tiene abierto Python, se puede ejecutar el
8 Primeros pasos en Python

programa dentro de Python. Si está en Jupyter notebooks, sólo necesita ejecutar


la celda con el código.

2.1.1. Explicación del primer programa


La primera línea del código hola1.py es un comentario. Cualquier texto
después de un símbolo # es un comentario y Python no lo tiene en cuenta.
Al terminar la línea termina el comentario. No hay necesidad de terminar el
comentario con otro símbolo (aunque en otros lenguajes esto sí es necesario).
También es posible hacer comentarios dentro de una línea. Por ejemplo

print ("Hola Mundo!") # imprimir texto

es válido.
La segunda línea es una línea en blanco. Python no tiene en cuenta estas
líneas, y se puede poner tantas líneas en blanco como se quiera, ya que serán
descartadas por Python. El uso de líneas en blanco permite hacer el código más
fácil de leer y permite escribir el código en bloques pequeños.
La siguiente línea sí es interpretada por el programa. El comando print
ordena que en la terminal se imprima el texto que está dentro del paréntesis.
Para líneas de texto, deben ir entre comillas o comillas dobles.
Otra alternativa de comentario (multilíneas) es usar triple comillas. Este tipo
de comentario debe cerrarse con triple comillas.
hola2.py

"""
esto puede ser un comentario,
no es ejecutado por Python
"""

print("Hola Mundo!") # imprimir texto

2.1.2. Alternativas para el primer programa


Python permite variaciones al programa anterior que también funcionan
hola3.py

# Otras alternativas para el programa

# Asignar variable x
x = "Hola Mundo!"

# Imprimir
print(x)
2.2 Multiplicar dos números enteros 9

y que permiten posteriormente realizar operaciones con variables.


hola4.py

# Otras alternativas para el programa


"""
Asignar tres variables (x,y,z), pegarlas para
el mismo resultado.
"""

x = "Hola"
y = "Mundo"
z = "!"
print(x+" "+y+z)

Note que en este último ejemplo, realizamos una operación para pegar o
concatenar variables con caracteres. Con el fin de separar las palabras en las
variables x y y, se pone un espacio. El resultado de estos dos programas es
idéntico al primero.

2.2. Multiplicar dos números enteros


A continuación, queremos realizar operaciones matemáticas en Python. Aba-
jo, un programa simple para multiplicar dos enteros (2 y 3).
multint.py

# Código para multiplicar dos números enteros

a = 2
b = 3

c = a*b

print(a,"x",b," = ",c)

El programa usa tres variables, las letras a, b y c. Las variables pueden tener
nombres largos, pero no pueden tener espacios. Si quiere unir palabras use _.
El primer caracter de una variable debe ser una letra, el resto puede ser una
combinación de letras, números y _. No se recomienda usar puntos o símbolos
de menos (−). A diferencia de Fortran o C, Python define de manera automática
si un número es entero o real, aunque si el usuario así lo prefiere, puede definir
la variable como entero:

a = int(2)
b = int(3)
10 Primeros pasos en Python

Cuando esto sucede, Python asume entonces que c será un número entero. Al
parecer en Python existía un problema cuando se dividían dos números enteros,
pero la respuesta era un real. En versiones recientes de Python (3.4 o mayor)
ese problema no se presenta.
El resultado del programa anterior da como resultado

> python multint.py


2 x 3 = 6

El símbolo ∗ indica multiplicación como casi en la mayoría de lenguajes de


programación. Adición es +, resta es − y división es /. En Python, para elevar
un número a a la potencia b, se escribe a**b. Las dos variables pueden ser
enteros, reales y complejos.
Otro ejemplo, para elevar un número real a la potencia b.

c = ab

real_elev.py

a = 2.01
b = 3.2
c = a**b

print(a, "elevado a la ",b," = ", c)

con resultado
2.01 elevado a la 3.2 = 9.337430530829119

2.3. for loops


Cualquier lenguaje de programación debe permitir realizar una serie de ope-
raciones de manera repetida. Esto significa permitir realizar un loop para una
serie de valores de una variable. En C o Matlab, esto se lleva a cabo con un for
loop, en Fortran se hace con un do loop. En Python se usa el for.
Un ejemplo simple para generar la tabla de multiplicar del 7 (7 × 0, 7 × 1, 7 ×
2, ...)
mult_table.py

x = 7 # la tabla del 7

for y in range(10): # loop 0, 1, 2, ..., 9


z = x*y
print(x,’x’,y,’ = ’,z)
2.3 for loops 11

print(’Acabó el loop’)

7 x 0 = 0
7 x 1 = 7
...
7 x 8 = 56
7 x 9 = 63

El for loop es un comando que ejecuta una serie de comandos (que deben
estar indentados). El número de veces o la forma como los ejecuta depende del
código

for y in range(10):

Acá la variable y toma valores en un rango de 0 hasta 9. Es decir repite la


operación 10 veces, empezando en cero, hasta llegar al nueve. Porqué Python
no incluye el 10? El comando range genera 10 números, pero Python (como
C) empieza el conteo con el cero, es decir (0, 1, 2, ..., 9), para un total de 10
números.
Como se puede ver, en el primer loop, y = 0, en el segundo y = 1 y así
sucesivamente. Una segunda versión del mismo código usando numpy es
mult_table2.py

import numpy as np

x = 7 # la tabla del 7
i = np.arange(10)

for y in i: # loop 0, 1, 2, ..., 9


z = x*y
print(x,’x’,y,’ = ’,z)

El resultado de esta segunda versión del código es igual al anterior, pero tiene
variaciones. Python tiene una larga lista de librerías (conocidas como modules
o packages) para realizar operaciones de todo tipo. Para poder utilizarlas en
un programa, es necesario cargarlas. Esto se realiza con el comando import. En
este caso, importamos el paquete NumPy.

import numpy as np

NumPy [Harris et al., 2020] tiene multiples funciones para realizar operaciones
en variables, vectores, etc. Más adelante veremos en detalle el uso de Paquetes
y módulos incluyendo numpy.
Para usar una función dentro de numpy, se debe llamar el paquete numpy y
la función arange. Para que esta operación no sea muy larga, le ponemos un
12 Primeros pasos en Python

nombre más corto np. Esto permite usar la función ‘arange‘ dentro de numpy,
y generar un vector
i = np.arange(10)
Este comando genera un arreglo (o un vector), con valores que van desde 0 hasta
9. Es algo muy similar a lo que hace range(10), pero lo pone en el arreglo (o
variable) i.

Sobre indentación y loops


La indentación es importante
No mezcle espacios y "tabs".
Python busca por un número de espacios exacto en la indentación.
Aunque no se vea, un tab no es equivalente a ocho espacios para Python.
Muchos notebooks hacen la indentación por Ud, pero no se confíe.
Cuidado al abrir y cerrar loops
La línea con el comando for debe terminar con dos puntos (:).
Todo lo que se quiere dentro del loop debe estar indentado.
Para terminar el loop, retire la indentación.
A diferencia de otros lenguajes, Python no tiene un end para el loop.

2.3.1. Una tabla trigonométrica con for loops


A continuación se muestra un ejemplo de código para realizar una tabla
de funciones trigonométricas (seno, coseno y tangente) para diferentes ángulos
(ang=0.0, 1.0, 2.0, ...)
trigtable.py

import math
import numpy as np

i = np.arange(90)

# Haga un loop
for ang in i:
theta = ang/180.*math.pi # transformar ángulo
ctheta = math.cos(theta)
stheta = math.sin(theta)
ttheta = math.tan(theta)
2.3 for loops 13

print(ang, ctheta, stheta, ttheta)

0 1.0 0.0 0.0


1 0.9998476951563913 0.01745240643728351 0.017455064928217585
2 0.9993908270190958 0.03489949670250097 0.03492076949174773
...
88 0.03489949670250108 0.9993908270190958 28.636253282915515
89 0.0174524064372836 0.9998476951563913 57.289961630759144

Las funciones trigonométricas no hacen parte de las funciones estándar de


Python, por lo tanto se debe cargar el módulo math. con el comando
import math
El módulo contiene el valor de π en la variable math.pi. Además tiene funciones
para calcular coseno (math.cos), seno (math.sin), y tangente (math.tan) y mucho
más (ver ejemplos mas adelante).
Tal como lo hacen C, Fortran o Matlab, el cálculo trigonométrico se hace
en radianes (no grados) como argumento en las funciones trigonométricas. Por
esto, es necesario convertir los ángulos en grados (α), a radianes θ.
π
θ=α
180
Aunque el resultado anterior es correcto, la tabla que se muestra no es muy
fácil de leer. Para mejorar el formato de salida del resultado
trigtable2.py

import math
import numpy as np

i = np.arange(90)

for ang in i :
theta = float(ang/180.*math.pi)
ctheta = math.cos(theta)
stheta = math.sin(theta)
ttheta = math.tan(theta)

# Desplegar resultados más amables


print ("%5.1f, %7.4f, %7.4f, %8.4f"

0.0, 1.0000, 0.0000, 0.0000


1.0, 0.9998, 0.0175, 0.0175
14 Primeros pasos en Python

2.0, 0.9994, 0.0349, 0.0349


...
88.0, 0.0349, 0.9994, 28.6363
89.0, 0.0175, 0.9998, 57.2900

El código hace la misma operación para el ángulo ang

for ang in i :
theta = float(ang/180.*math.pi)
ctheta = math.cos(theta)
...

que toma sucesivamente los valores del arreglo i, es decir en cada iteración
0, 1, 2, ..., 88, 89. A partir de ese valor, definimos nuestro ángulo theta en ra-
dianes, usando la función float. Es decir, theta asume valores sucesivos de
0,0, 1,0, 2,0, ..., 88,0, 89,0 en cada iteración, convertidos a radianes. Yo recomien-
do siempre realizar las iteraciones sobre un vector de números enteros (i), ya
que errores de redondeo pueden evitar que se llegue exactamente hasta 89,0.
Dentro de cada for loop, se calculan los cosenos, senos y tangentes del ángulo
theta. Por último, en cada loop se imprime los resultados

print ("%5.1f, %7.4f, %7.4f, %8.4f"


% (theta,ctheta,stheta,ttheta))

donde el comando print tiene un formato especificado por el usuario. En


este caso %5.1f ordena que la variable theta se imprima como un número real
con 5 espacios en total, y 1 dígito a la derecha del punto decimal. De manera
similar, el uso de 7.4f ordena que ctheta tenga 7 espacios y 4 números a la
derecha del decimal. Las números están justificados a la derecha. Como Python
no tiene en cuenta espacios o saltos de línea, la continuidad del comando dentro
del paréntesis es automático. Es decir que el comando en el bloque de código
arriba, es un sólo comando.

2.3.2. Posibles Variaciones


El código a continuación sugiere dos posibles variaciones que pueden ser
útiles.
trigtable3.py

from math import *


import numpy as np

# Defina el formato acá


fmt = "%5.1f, %7.4f, %7.4f, %8.4f"
2.4 Funciones del modulo math 15

i = np.arange(90)

for ang in i :
theta = float(ang/180.*pi)
ctheta = cos(theta)
stheta = sin(theta)
ttheta = tan(theta)

# Imprima al resultado
print(fmt %(ang, ctheta, stheta, ttheta))

donde se importan todas las funciones dentro del modulo math de tal forma
que no hay necesidad de llamarlos con math.cos, sino directamente con cos.
Además uno puede definir una variable fmt, que tiene los caracteres que definen
el formato de salida. Esto es útil cuando uno va a utilizar comandos print en
múltiples casos dentro de un programa. El modulo math tiene guardado el valor
de π en la variable pi.

2.4. Funciones del modulo math


Acá se muestran otras (no todas) funciones que se encuentran en el modulo.

ceil(x). smallest integer greater or equal than x


fabs(x) Absolute value of x
floor(x) largest integer value less than or equal to x
isinf(x). Check if float x is positive or negative infinity.
isnan(x) Check if float x is a NaN (not a number).
exp(x) exponential
log10(x) base 10 log
log(x) return the natural logarithm of x
sqrt(x) square root
acos(x) arccosine
asin(x) arcsine
atan(x) arctangent
atan2(y,x) arctangent of y/x in correct quadrant
cos(x) cosine
cosh(x) hyperbolic cosine
sin(x) sine
sinh(x) hyperbolic sine
tan(x) tangent
tanh(x) hyperbolic tangent
degrees(x) Convert angle x from radians to degrees.
radians(x) Convert angle x from degrees to radians.

y constantes dentro del módulo


16 Primeros pasos en Python

pi valor de pi=3.14159265...
e valor de la constante e=2.718281...

2.5. Sobre formatos


Python permite desplegar en la terminal los números y caracteres en dife-
rentes formatos. Acá algunos ejemplos útiles
%5i = entero, con 5 espacios, justificado a la derecha

%5.4i = igual, pero con ceros a la izquierda (88 es 0088)

%8.3f = real, 8 espacios, con 3 a la derecha del punto decimal

%12.4e = real con exponente, 4 valores a la derecha del decimal


p.e., b-0.2342E+02 donde "b" es un espacio en blanco
(sirve para escribir valores grandes y pequeños,
o cuando no se sabe que tamaño tendrán los valores)

%8s = lista de caracteres, ocho espacios, justificado a la


derecha. Si la lista de caracteres es mayor a 8, se
imprimen todas.

%.8s = igual, pero sólo los primeros 8 caracteres se imprimen.


2.5 Sobre formatos 17

Problemas
2.1. Escriba un programa de Python que imprima una frase célebre.

2.2. Escriba un programa en Python que imprima en la pantalla una tabla con

x sinh(x) cosh(x)

las funciones hiperbólicas del seno y coseno, para valores de X entre 0.0 a
6.0 con incrementos de 0.5. Utilice un formato para el resultado que sea
presentable. No convierta x a radianes.
2.3. Modifique el programa inicial, para imprimir en la Terminal, dos números
enteros y el resultado de las 4 operaciones +, -, *, /. Use un formato
de impresión adecuado para cada caso.

2.4. Genere una tabla de multiplicar para los números del 1 al 9, es decir
1 × 1, 1 × 2, . . . , 1 × 10, la siguiente línea 2 × 1, 2 × 2, . . . , 2 × 10 y así hasta
el 9.
2.5. Genera una tabla, con los siguientes valores
p
x log 10(x) log(x) (x)

Haga tantos loops como sea posible, empezando con i = 0, x = 1,01. Para
el siguiente loop

i = 0, xi = 1,01
i = 1, xi = xi−1 (i + 1)
i = 2, ···

En cada loop calcule los logaritmos y la raíz cuadrada. Eventualmente el


resultado no va a caber en el computador (los números serán muy grandes).
En su equipo, hasta cuándo puede hacer esto? Esto muestra el límite de
precisión del computador.
Los primeros valores de x deben ser 1.01, 2.02, 6.06, 24.24, ...

2.6. Asumiendo que la velocidad absoluta de una placa tectónica es de 55


mm/a, calcule a que distancia de la dorsal se encuentra una roca de 1Ma,
de 8Ma y de 60Ma.
2.7. Una placa tectónica tiene una velocidad (horizontal) absoluta de 60 mm/a
y subduce con un ángulo de 60 grados por debajo de otra placa. A qué
profundidad estaría la placa después de 1Ma, de 5Ma y de 40Ma de co-
menzar a subducir? Cuánto tardaría la placa en llegar al límite Manto
Superior - manto Inferior (660 km)?

.
18 Primeros pasos en Python

También podría gustarte