Un entorno virtual de Python sirve para crear un directorio aislado con su propia versión de Python y los paquetes necesarios para un proyecto evitando conflictos entre dependencias u otros proyectos. Para crear un entorno virtual en la consola de comandos seguir los pasos:
1. Entrar en la carpeta donde se almacenará el proyecto e ingresar el siguiente comando:
python -m venv nombre_del_entorno
2. Se debe activar el entorno:
source nombre_del_entorno/bin/activate
3. Deberá aparecer un (env) antes de la dirección de la carpeta

4. Instalar paquetes o librerías necesarias
pip install nombre_del_paquete
5. Para salir del directorio virtual usar el comando: deactivate
6. Para volver a entrar al directorio → Activar nuevamente el entorno (Paso 2)
NOTA: Para comentar en Python se usa el símbolo (#) para una línea ó tres comillas dobles para varias líneas
””” Esto es un comentario en Python ”””
El tipo de variables en Python se colocan automáticamente, sin embargo con la librería Decimal se pueden transformar en el que el usuario desee o establecer desde el inicio.
#Tipos de VARIABLES EN PYTHON
from decimal import Decimal #Librería por defecto para transformar tipos de variables
x = int(5) #Puede ser cualquier valor ej: int("5") -> El resultado será entero
y = float(3.14) #Dato flotante
z = Decimal(5.5678) #Dato flotante pero más preciso se asemeja al Double en C
j = 5j #Números imaginarios
print(f"""
================================================
Al imprimir esto se puede usar código dentro de lo que se imprime
La variable x es: {x} y es de tipo Int
La varaible y es: {y} y es de tripo Float
""")

Tipos de cadenas de texto
#PARA CADENAS DE Texto
cadena = "Cadena de Texto"
f_string = f"Cadena de texto que permite agregar codigo {5+2}"
large_string = """
Hola esto es una cadena larga
Se verá este salto de línea y ya
siu
"""
s = str(x) #Transforma en una cadena de texto cualquier variable
print(f"""
===============================================
2) Imprmir cadenas de texto
Cadenas: {cadena}, variables con código dentro: {f_string}, y un large_string: {large_string}""")

Para Listas (Arrays)
#LISTAS
lista1 = [1,2,3,4]
lista2 = [5,6,7,8]
print(f"Lista1: {lista1}")
print(f"Lista2: {lista2}")
lista3 = lista1 + lista2 #Concatena las listas. Resultado: [1,2,3,4,5,6,7,8]
print(f"Lista1 y Lista2 concatenadas : {lista3}")
nuevo_item = 9
lista3.append(nuevo_item) #Agrega un nuevo item al final de la lista
#Resultado: [1,2,3,4,5,6,7,8,9]
print(f"Agregando un item : {lista3}")
lista3.remove(5) #Elimina el item por su valor específico Resultado: [1,2,3,4,6,7,8,9]
print(f"Eliminando el Valor 5 : {lista3}")
del lista3[2] #Elimina la posición 2 de la lista Resultado: [1,2,4,6,7,8,9]
print(f"Eliminando la posición 2 del array : {lista3}")
lista_final = ["si", 2, lista1] #Las listas pueden tener cualquier tipo de dato
print(f"Lista con cualquier dato: {lista_final}")
maximo1 = max(lista1) #Máximo Valor de la lista
print("El máximo valor de la lista 1 es: ",maximo1)
minimo1 = min(lista1) #Mínimo Valor de la lista
print("El mínimo valor de la lista 1 es: ",minimo1)