Tema 0-Clase1
Tema 0-Clase1
Tema 0-Clase1
Física Computacional
Para comenzar el trabajo con python, abrimos una terminal de comandos (para entornos
linux/mxc) o una ventana de comandos si estamos trabajando bajo Windows.
Inmediatamente debemos de reconocer la versión de python que tenemos instalada y notamos
que el prompt ya ha cambiado dejando ahora tres símbolos mayor que: >>> que nos dice que la
terminal está lista para recibir comandos.
1. Operadores aritméticos.
1.1 Python como calculadora.
Una vez abierta la sesión en python, podemos aprovechar al máximo este lenguaje: contamos con
una calculadora a la mano, sólo hay que ir escribiendo las operaciones en la línea de comandos.
In [32]: 3+4
Out[32]: 7
In [3]: 3/4
Out[3]: 0.75
In [4]: 3.0/4.0
Out[4]: 0.75
In [5]: 3//4
Out[5]: 0
In [6]: 4//3
Out[6]: 1
In [7]: 4/3
Out[7]: 1.3333333333333333
In [8]: 5.0 / 10 * 2 + 5
Out[8]: 6.0
1
¿por qué obtenemos este resultado??
Out[9]: 0.2
Como podemos ver, el uso de paréntesis en las expresiones tiene una particular importancia sobre
la manera en que se evalúan las expresiones.
Podemos elevar un número a una potencia en particular
In [11]: 2**3**2
Out[11]: 512
Vemos que elevar a una potencia, la manera en que se ejecuta la expresión se realiza en un sentido
en particular: de derecha a izquierda
In [17]: (2**3)**2
Out[17]: 64
El uso de paréntesis nos indica que la expresión contenida dentro de ellos, es la que se evalúa
primero, posteriormente se sigue la regla de precedencia de operadores.
El operador módulo (%) nos devuelve el residuo del cociente.
In [16]: 17%3
Out[16]: 2
2. Tabla de operadores.
Las siguientes son las operaciones matemáticas que se pueden realizar en python 3.
2
3. La multiplicación, división y módulo son las siguientes en ser aplicadas. Si una expresión
contiene muchas multiplicaciones, divisiones u operaciones de módulo, los operadores se
aplican de izquierda a derecha.
4. Suma y resta son las operaciones que se aplican por último. Si una expresión contiene
muchas operaciones de suma y resta, los operadores son aplicados de izquierda a derecha.
La suma y resta tienen el mismo nivel de precedencia.
3. Operadores relacionales.
Cuando se comparan dos (o más expresiones) mediante un operador, el tipo de dato que devuelve
es lógico: True o False, que también tienen una representación de tipo numérico:
• True = 1
• False = 0
In [1]: 1 + 2 > 7- 3
Out[1]: False
In [33]: 1 < 2 < 3
Out[33]: True
In [ ]: 1 > 2 == 2 < 3
In [34]: 1 > (2 == 2) <3
Out[34]: False
In [3]: 3 > 4 < 5
Out[3]: False
In [5]: 1.0 / 3 < 0.3333
Out[5]: False
In [6]: 5.0 / 3 >= 11 /7.0
Out[6]: True
In [8]: 2**(2. /3) < 3**(3./4)
Out[8]: True
3
3.2 Operadores boleanos.
En el caso del operador boleano and y el operador or evalúan una expresión compuesta por dos
(o más términos), en ambos operadores se espera que cada término tenga el valor de True, en
caso de que esto ocurra, el valor que devuelve la evaluación, es True, como se verá en la tabla de
verdad, se necesita una condición particular para que el valor que devuelva la comparación, sea
False.
Operador Operación Ejemplo Resultado
and conjunción False and True False
or disyunción False or True True
not negación not True False
4. Tipos de variables.
Las variables en python sólo son ubicaciones de memoria reservadas para almacenar valores.
Esto significa que cuando se crea una variable, se reserva un poco de espacio disponible en la
memoria.
Basándose en el tipo de datos de una variable, el intérprete asigna memoria y decide qué se puede
almacenar en la memoria reservada. Por lo tanto, al asignar diferentes tipos de datos a las vari-
ables, se pueden almacenar enteros, decimales o caracteres (cadenas) en estas variables.
4
>>> contador = 100 ;\
... distancia = 1000.0 ;\
... nombre = "Chucho"
En la última instrucción se teclea Enter para avisarle a python que ya concluimos de ingresar las
instrucciones, y podemos pedirle ahora que nos muestre el contenido de las variables:
>>> print (contador) ;\
... print (distancia) ;\
... print (nombre)
100
1000.0
Chucho
1
1
1
En el ejemplo, se crea un objeto entero con el valor 1, y las tres variables se asignan a la misma
ubicación de memoria.
También se puede asignar varios objetos a varias variables.
In [9]: A, b, c = 1, 2, "Alicia"
print (A)
print (b)
print (c)
1
2
Alicia
Aquí, dos objetos enteros con valores 1 y 2 se asignan a las variables A y b respectivamente, y un
objeto de cadena con el valor Alicia se asigna a la variable c.
5
1. Números.
2. Cadena.
3. Lista.
4. Tupla.
5. Diccionario.
4.3.1 Números
Los tipos de datos numéricos almacenan valores numéricos. Los objetos numéricos se crean
cuando se les asigna un valor.
10
10
del var
Un número complejo consiste en un par ordenado de números reales de coma flotante denotados
por
x + yj
donde x e y son números reales, yj es la unidad imaginaria. Todos los enteros en python 3 se
representan como enteros largos. Por lo tanto, no hay ningún tipo de número por separado.
6
Ejemplos de tipo de números
int float complex
10 0.0 3.14j
100 15.20 45.j
080 32.3 + e18 0.876j
−0490 −90. −.645 + 0j
−0x260 70.2 − E12 3e + 26j
0x69 −32.54e100 4.53e − 7j
4.3.2 Cadenas
Las cadenas en python se identifican como un conjunto contiguo de caracteres representados en
las comillas. Con python se permite cualquier par de comillas simples o dobles: "hola", ’hola’
Los subconjuntos de cadenas pueden ser tomados usando el operador de corte ([ ] y [:])
con índices comenzando en 0 al inicio de la cadena hasta llegar a −1 al final de la misma.
Hola Mundo!
H
la
la Mundo!
Hola Mundo!Hola Mundo!
Hola Mundo!PUMAS
4.3.3 Listas
Las listas es el tipo de dato más versátil de los tipos de datos compuestos de python.
Una lista contiene elementos separados por comas y entre corchetes ([ ]). En cierta me-
dida, las listas son similares a los arreglos (arrays) en el lenguaje C. Una de las diferencias entre
ellos es que todos los elementos pertenecientes a una lista pueden ser de tipo de datos diferente.
Los valores almacenados en una lista se pueden acceder utilizando el operador de división
([ ] y [:]) con índices que empiezan en 0 al principio de la lista y opera hasta el final con −1.
7
El signo más (+) es el operador de concatenación de lista y el asterisco (∗) es el operador
de repetición.
4.3.4 Tuplas
Una tupla es otro tipo de datos de secuencia que es similar a la lista. Una tupla consiste en un
número de valores separados por comas. Sin embargo, a diferencia de las listas, las tuplas se
incluyen entre paréntesis.
1. Las listas están entre corchetes [ ] y sus elementos y tamaño pueden cambiarse.
8
El siguiente código es inválido con la tupla, porque intentamos actualizar una tupla, que la acción
no está permitida. El caso es similar con las listas.
In [19]: mitupla = ( 'abcd', 786 , 2.23, 'edificio', 70.2 )
milista = [ 'abcd', 786 , 2.23, 'energia', 70.2 ]
mitupla[2] = 1000 # Sintaxis invalida para la tupla
milista[2] = 1000 # Sintaxis invalida para la lista
---------------------------------------------------------------------------
<ipython-input-19-a99f473d7b8f> in <module>()
1 mitupla = ( 'abcd', 786 , 2.23, 'edificio', 70.2 )
2 milista = [ 'abcd', 786 , 2.23, 'energia', 70.2 ]
----> 3 mitupla[2] = 1000 # Sintaxis invalida para la tupla
4 milista[2] = 1000 # Sintaxis invalida para la lista
Pero en la lista podemos agregar nuevos elementos que se colocan al final de la misma:
In [21]: print(milista)
milista.append('hola')
print(milista)
4.3.5 Diccionarios
Los diccionarios de python son de tipo tabla-hash.
Una clave de diccionario puede ser casi cualquier tipo de python, pero suelen ser números
o cadenas. Los valores, por otra parte, pueden ser cualquier objeto arbitrario de python.
Los diccionarios están encerrados por llaves { } y los valores se pueden asignar y acceder
mediante llaves cuadradas [ ].
In [30]: fisicos = dict()
fisicos ={
1 : "Eistein",
2 : "Bohr",
3 : "Pauli",
9
4 : "Schrodinger",
5 : "Hawking"
}
print(fisicos)
print (fisicos.keys())
print (fisicos.values())
fisicos["6"] = "Planck" #agrega un nuevo elemento al diccionario, tanto
print(fisicos)
• El primer carácter debe ser una letra o el carácter de subrayado (guión bajo)
10