Identificar código y salidas
Para hacer más fácil la identificación de los diferentes códigos que se usarán en la página, se emplearán los siguientes colores en las ventanas de código.
Para el código presentado en Python se empleará un fondo de color rojo tal como se presenta a continuación.
'Ejemplo código Python'
Mientas que, para los resultados o salidas obtenidas en Python se empleará un fondo de color gris, tal como se presenta a continuación.
'Ejemplo código de salida'
Palabras reservadas
El lenguaje Python posee una serie de palabras reservadas que no permite que sean modificadas debido a que éstas poseen atributos especiales dentro del lenguaje de programación, y por ello, sus nombres no pueden ser usados como nombre de variables, funciones, etc.
El listado de palabras reservadas en el lenguaje Python son.
False | True | None | and | as |
assert | async | await | break | class |
continue | def | del | elif | else |
except | finally | for | from | global |
if | import | in | is | lambda |
nonlocal | not | or | pass | raise |
return | try | while | with | yield |
en donde
- False, True: Son carácteres especiales para indicar constantes lógicas.
- None: Es un carácter especial que representa la ausencia de un valor o un valor nulo.
- and, or, not: Son carácteres especial que representa operadores lógicos.
- await, async: Son funciones que se usan para definir corutinas.
- as: Es un carácter especial que se usa para crear un alias al importar un módulo.
- assert: Es un carácter especial que emplea con fines de depuración.
- if, else, elif, for, break, continue, while: Son carácteres especial usadas en loops, condicionales y funciones.
- def: Es un función usada para definir funciones
- del: Es una función usada para eliminar un objeto.
- class: Es una función usada para definir una nueva clase.
- except, raise, try, finally: Son carácteres especiales que se usan para intentar realizar operaciones, establecer excepciones o o cerrar recursos.
- from, import: Son funciones que se usan para importar módulos.
- global, nonlocal Es una función que se usa para establecer variables dentro de funciones, en el entorno global, o por fuera de funciones anidadas.
- in, is: Son carácteres especiales que se emplean para hacer comparaciones o probar si hay elementos dentro de objetos.
- lambda: Es una función que se usa para crear una función anónima (función sin nombre).
- pass: Es una función que se usa como un indicador de posición, no pasa nada cuando se ejecuta.
- return, yield: Son funciones que se emplean para presentar los resultados o salidas que hay dentro de una función.
- with: Es una función para ajustar la ejecución de un bloque de código.
Estas también pueden ser consultadas en Python mediante el código
import keyword
keyword.kwlist
Estructura de asignación
Generalmente cuando se trabaja en programación, se desea que el programa recuerde ciertos valores para usarlos más adelante, y por ello, la idea de esta sección es explicar los métodos de asignación de objetos.
La estructura de asignación en el lenguaje Python puede llevarse a cabo mediante cuatro formas diferentes, donde, cada una de ellas lleva al mismo resultado
variable = expresión # Método de asignación
en donde, la expresión que se desea guardar siempre debe estar a la
derecha del signo =
. mientras la variable en donde se desea guardar el
valor resultante debe estar a la izquierda del símbolo =
.
Es de anotar que, el carácter #
, se emplea para comentar el
código o una línea específica, lo cual implica que posterior a #
, no
se ejecutará ningún tipo de código en la linea específica en la cual se
encuentre #
.
Ayuda sobre funciones
En muchas situaciones, podemos conocer la función que deseamos emplear pero no sabemos con exactitud cuales son los argumentos o el significado de los mismos, lo cual hace que no podamos usar adecuadamente la función de interés.
Es por ello que Python posee información, sobre las funciones que pueden emplearse en los lenguajes de programación, mostrando los diferentes argumentos que posee, su significado, los valores que pueden extraerse de la función y ejemplos sobre su empleo.
En donde para obtener información concreta sobre una función o carácter en Python, debe emplearse la función help(). Para ilustrar dichos métodos, empleamos la función abs() y el carácter +, para consultar su ventana de ayuda.
help("+") # Primer método
?abs # Segundo método
Operadores aritméticos y precedencias
Existen diferentes operadores aritméticos que pueden emplearse en los lenguajes de programación. Estos se resumen en la siguiente tabla.
Operación | Operador en Python | Asociatividad | Precedencia |
---|---|---|---|
Potencia | ** | Por la derecha | 1 |
Producto | * | Por la izquierda | 2 |
División | / | Por la izquierda | 2 |
División Entera | // | Por la izquierda | 2 |
Módulo o Resto | % | Por la izquierda | 2 |
Suma | + | Por la izquierda | 3 |
Resta | - | Por la izquierda | 3 |
Operadores lógicos
También es posible que se quieran realizar operaciones lógicas entre objetos cuando se realiza programación en los diferentes lenguajes, ya sea para establecer condicionales, o para hacer algunas verificaciones. Estos se resumen en la siguiente tabla.
Operación | Operador en Python | Precedencia |
---|---|---|
Igual que | == | 4 |
Distinto que | != | 4 |
Menor que | < | 4 |
Menor o igual que | <= | 4 |
Mayor que | > | 4 |
Mayor o igual que | >= | 4 |
Negación | not | 5 |
Conjunción | and | 6 |
Disyunción | or | 7 |
Funciones matemáticas
Hay una gran variedad de funciones matemáticas que suelen usarse en la práctica, y es por ello que se listan las funciones aritméticas que suelen emplearse comunmente por lenguaje de programación. Estos se resumen en la siguiente tabla.
Operación | Operador en Python |
---|---|
Valor absoluto | abs() |
Raíz cuadrada | math.sqrt() |
Redondear | round() |
Techo | math.floor() |
Piso | math.ceil() |
Exponencial | math.exp() |
Logaritmo | math.log() |
Factorial | math.factorial() |
Gamma | math.gamma() |
Seno | math.sin() |
Coseno | math.cos() |
Tangente | math.tan() |
Operadores matriciales básicas
Existen diferentes operadores matriciales que pueden emplearse en los lenguajes de programación. Estos se resumen en la siguiente tabla.
Operación | Operador en Python |
---|---|
Suma | A+B |
Resta | A-B |
Elementos por Elemento | A*B |
Multiplicación Matricial | numpy.dot(A,B) |
Trasponer | numpy.transpose(A) |
Diagonal | numpy.diag(A) |
Inversa | numpy.linalg.inv(A) |
Determinante | numpy.linalg.det(A) |
Tipo de datos
Existen diferentes tipos de datos en los lenguajes de programación, de estos tipos dependerá las operaciones o funciones que pueden o no emplearse con éstos, y es por ello que debe tenerse especial cuidado cuando se deseen manipular.
Los tipos de datos más que pueden encontrarse en Python son:
- integer: Datos enteros, los cuales soportan números que
se encuentren en el conjunto de los enteros,
$\mathbb{Z}$
, y en consecuencia, solo soporta números enteros. - float: Datos númericos, los cuales soportan números que
se encuentren en el conjunto de los reales,
$\mathbb{R}$
, y por tanto soporta tanto números enteros (integer) y números de doble presición (double). - complex: Datos complejos, los cuales soportan números
que se encuentren en el conjunto de los complejos,
$\mathbb{C}$
, y por tanto, soporta tanto números reales como imaginarios. - string: Datos de carácter, los cuales soportan uno o más carácteres alfanuméricos, es decir, datos numéricos y alfabéticos. Éstos deben ser escritos entre comillas simples, dobles o triples.
- boolean: Datos lógicos, los cuales soportan carácteres lógicos tales como True o False.
Para verificar el tipo de almacenamiento en Python, puede emplearse la función type()
A continuación se presenta un ejemplo en donde se muestran los diferentes tipos de objetos en Python
Dato tipo entero
# Integer
a = 55
type(a)
<class 'int'>
Dato tipo flotante
# Float
b = 3.3
type(b)
<class 'float'>
Dato tipo complejo
# Complex
c = 6+4j
type(c)
<class 'complex'>
Dato tipo carácter
# String
d = "hello"
type(d)
<class 'str'>
Dato tipo booleano
# Boolean
e = True
type(e)
<class 'bool'>
Estructura de datos
La idea de esta sección es resumir las estructuras básicas más importantes que puede tener un conjunto de datos en Python, debido a que éstas permiten la manipulación de datos. Algunas de las estructuras más usadas se encuentran dentro del entorno base de Python, mientras que otras provinientes de modulos externos.
Entre las estructuras de datos que pueden construirse con la base de Python tenemos
- Listas: Permite construir una colección ordenada de uno o más
datos númericos, alfanuméricos o lógicos, mutables (es decir que
se pueden modificar). Para establecer estructuras de tipo lista,
deben emplearse corchetes,
[]
, o la función list().
A continuación se presenta un ejemplo en donde se muestra como construir una lista para diferentes tipos de datos en Python
ListA = [1, 13.7, -3-2j, 21, 2j] # Numeric
ListA
[1, 13.7, (-3-2j), 21, 2j]
ListB = ["a", "c", "a", "b", "c", "a"] # String
ListB
['a', 'c', 'a', 'b', 'c', 'a']
ListC = [False, True, None, False, True, False] # Boolean
ListC
[False, True, None, False, True, False]
- Tuplas: Permite construir una colección ordenada de uno o más
datos númericos, alfanuméricos o lógicos, inmutables (es decir que
no se pueden modificar). Para establecer estructuras de tipo tupla,
deben emplearse parentesis,
()
, o la función tuple().
A continuación se presenta un ejemplo en donde se muestra como construir una tupla para diferentes tipos de datos en Python
TuplA = (1, 13.7, -3-2j, 21, 2j) # Numeric
TuplA
(1, 13.7, (-3-2j), 21, 2j)
TuplB = ("a", "c", "a", "b", "c", "a") # String
TuplB
('a', 'c', 'a', 'b', 'c', 'a')
TuplC = (False, True, None, False, True, False) # Boolean
TuplC
(False, True, None, False, True, False)
- Diccionarios: Permite agregar una colección de uno o más datos
en pares, que pueden ser númericos, alfanuméricos o lógicos, con el
fin de asociar “claves” (nombres) a “valores”
(detalles). Una colección de tales pares está encerrada entre llaves
{}
, separando las claves y los valores mediante dos puntos:
.
A continuación se presenta un ejemplo en donde se muestra como construir un diccionario para diferentes tipos de datos en Python
DictA = {"Primera": 1, "Segunda":13.7, "Tercera":-3-2j, "Cuarta":21, "Quinta":2j} # Numeric
DictA
{'Primera': 1, 'Segunda': 13.7, 'Tercera': (-3-2j), 'Cuarta': 21, 'Quinta': 2j}
DictB = {"Uno":"a", "Dos":"c", "Tres":"a", "Cuatro":"b", "Cinco":"c"} # String
DictB
{'Uno': 'a', 'Dos': 'c', 'Tres': 'a', 'Cuatro': 'b', 'Cinco': 'c'}
DictC = {"D:":False, ":o":True, ">:c":None, ":D":False, ":c":True, ":|":False} # Boolean
DictC
{'D:': False, ':o': True, '>:c': None, ':D': False, ':c': True, ':|': False}
- Conjuntos: Permite construir una colección desordenada de uno o más datos númericos, alfanuméricos o lógicos, similares y se suele usar cuando solo interesa que el objeto se encuentre en una colección y realmente no importa la posición en la que se encuentre, ni cuantas veces ocurra. Para establecer estructuras de tipo conjunto, deben emplearse la función set([]).
A continuación se presenta un ejemplo en donde se muestra como construir un conjunto para diferentes tipos de datos en Python
SetA = set([12, 12, -3-2j, 21, 2j, 12]) # Numeric
SetA
{12, 21, 2j, (-3-2j)}
SetB = set(["a", "c", "a", "b", "c", "a"]) # String
SetB
{'a', 'b', 'c'}
SetC = set([False, True, None, False, True, False]) # Boolean
SetC
{False, True, None}
Módulo numpy
Adicionalmente, se poseen otras estructuras básicas que pueden ser de
nuestro interés, las cuales se pueden encontrar en el módulo numpy
.
Este paquete posee una gran variedad de funciones matemáticas para
realizar computación científica, y ofrece gran soporte para un objetos
de matriciales $N$
-dimensionales.
Para importar el módulo numpy
puede emplearse cualquiera de las dos
lineas de código
import numpy # Cargar módulo
import numpy as np # Cargar y establecer nombre al módulo
- Arreglos: Permite crear arreglos númericos. Puede construirse mediante la función numpy.array([]), mediante la función np.array([]) en caso de establecer el nombre nd al módulo, o simplemente array([]) si se importa solo la función.
from numpy import array # importa función array del módulo
A continuación se presenta un ejemplo en donde se muestra como construir un arreglo numérico para diferentes tipos de datos en Python
ArrA = numpy.array([12, 2, 21, 2, 13]) # Integer
ArrA
array([12, 2, 21, 2, 13])
ArrB = np.array([[3.2, 1.7], [8.0, -12.2], [2.3, 3]]) # Float
ArrB
array([[ 3.2, 1.7],
[ 8. , -12.2],
[ 2.3, 3. ]])
ArrC = array([[1-0j, 2j, 2], [5, 5.3+2.8j,2.2j]]) # Complex
print(ArrC)
[[1. +0.j 0. +2.j 2. +0.j ]
[5. +0.j 5.3+2.8j 0. +2.2j]]
- Matriz: Permite crear matrices númericas. Puede construirse mediante la función numpy.matrix([]), mediante la función np.matrix([]) en caso de establecer nombre al módulo, o simplemente matrix([]) si se importa solo la función.
from numpy import matrix # Importa función matrix del módulo
A continuación se presenta un ejemplo en donde se muestra como construir un arreglo numérico para diferentes tipos de datos en Python
MatA = numpy.matrix([12, 2, 21, 2, 13]) # Integer
MatA
matrix([[12, 2, 21, 2, 13]])
MatB = np.matrix([[3.2, 1.7], [8.0, -12.2], [2.3, 3]]) # Float
MatB
matrix([[ 3.2, 1.7],
[ 8. , -12.2],
[ 2.3, 3. ]])
MatC = matrix([[1-0j, 2j, 2], [5, 5.3+2.8j,2.2j]]) # Complex
print(MatC)
[[1. +0.j 0. +2.j 2. +0.j ]
[5. +0.j 5.3+2.8j 0. +2.2j]]
Módulo pandas
Otro módulo de interés, que posee otra estructura básica que pueden ser
de nuestro interés, es el módulo pandas
, la cual permite construir
marcos de datos.
Para importar el módulo pandas
puede emplearse cualquiera de las dos
lineas de código
import pandas # Cargar módulo
import pandas as pd # Cargar y establecer nombre al módulo
- Dataframe: Permite crear marcos de datos, que pueden contener simultaneamente diferentes tipos de datos, numéricos, carácteres o booleanos. Puede construirse mediante la función pandas.DataFrame(), o mediante la función pd.DataFrame() en caso de establecer el nombre pd al módulo.
from pandas import DataFrame # Importa función matrix del módulo
A continuación se presenta un ejemplo en donde se muestra como construir un dataframes de datos en Python
DatfA = pd.DataFrame([ListB, ListA, ListC])
DatfA
0 1 2 3 4 5
0 a c a b c a
1 1 13.7 (-3-2j) 21 2j None
2 False True None False True False
datos = {'Nombre':['Susana', 'Fredy', 'Santiago', 'Natalia'],
'Edad':[22, 32, 22, 19],
'Carrera':['Industrial', 'Industrial', 'Industrial', 'Economía']}
DatfB = DataFrame(datos)
DatfB
Nombre Edad Carrera
0 Susana 22 Industrial
1 Fredy 32 Industrial
2 Santiago 22 Industrial
3 Natalia 19 Economía
Coerción de datos
Muchas veces cuando tenemos una variable, puede que esta no tenga almacenados los datos bajo el tipo que queremos tenerlo realmente, por ello, existen en los lenguajes de programación funciones de coercionar que permiten redefinir un objeto, para transformarlo al tipo que necesitamos.
Coerción de datos en Python
Para convertir una variable de un tipo a otro, existen una serie de funciones básicas en Python que permiten hacer dicho procedimiento, estas funciones son
- int(): Convierte una variable numérica o carácter numérico a tipo entero (integer).
- float(): Convierte una variable numérica o carácter numérico a tipo flotante (float).
- complex(real,imag): Convierte una variable numérica o carácter numérico de tamaño uno o dos a tipo complejo (complex).
- str(): Convierte una variable a tipo carácter (string).
- list(): Convierte una variable a tipo lista (list).
- tuple(): Convierte una variable a tipo tupla (tuple).
- dict(key,value): Convierte una variable a tipo lista o tupla de tamaño dos a tipo diccionario (dictionary).
- set(): Convierte una variable a tipo numérica, carácter, lista, tupla, diccionario a tipo conjunto (set).