PYTHON (Breve curso por Zamy)

 




Tabla de contenido


2. Sobre Python

3. Instalación de Python

4. Instalación del editor de código Visual Studio Code

5. Uso de las comillas

6. Uso de los comentarios

7. Como mostrar un texto por pantalla

8. Tipo de Datos

9. Operadores Matemáticos

10. Las variables

11. Ingreso de texto / Ingreso por teclado

12. Decisiones y validación de errores

13. Listas

14. Tuplas

15. Diccionarios

16. Bucles

17. Funciones

18. Uso de algunas librerías

19. Escritura de documentos

20. Importación de documentos

21. Programación Orientada a Objetos

22. Conexión a base de datos

23. Interfaz grafica

24. Empaquetado


        Sobre Python


Historia de Python:

Python fue creado a finales de los 80 por Guido van Rossum en los Países Bajos. Su desarrollo se inició en diciembre de 1989 y la primera versión pública, Python 0.9.0, fue lanzada en febrero de 1991. Guido diseñó Python con un enfoque en la legibilidad del código y la simplicidad, lo que lo hace ideal para programadores principiantes y experimentados.


¿Qué es Python?:

Python es un lenguaje de programación de alto nivel, interpretado y multipropósito. Su filosofía se centra en la legibilidad y la claridad del código, lo que lo hace muy expresivo y fácil de aprender. Python es conocido por su sintaxis clara y su comunidad activa de desarrolladores que han creado una amplia gama de bibliotecas y módulos para diversas aplicaciones.


Usos Comunes de Python:

Python se utiliza en una variedad de aplicaciones, incluyendo:

- Desarrollo web con frameworks como Django y Flask.

- Ciencia de datos y análisis de datos con librerías como NumPy, Pandas y Matplotlib.

- Automatización de tareas y scripting.

- Desarrollo de aplicaciones de escritorio con herramientas como PyQt o Tkinter.

- Inteligencia artificial y aprendizaje automático con TensorFlow y PyTorch.

- Ciberseguridad, automatización de pruebas y análisis forense.


Implementación en Ciberseguridad:

Python se ha convertido en una herramienta esencial en ciberseguridad. Su simplicidad y versatilidad hacen que sea una elección popular para:

- Desarrollo de herramientas de seguridad y exploits.

- Análisis de vulnerabilidades y pruebas de penetración.

- Automatización de tareas de seguridad, como escaneo de puertos o análisis de logs.

- Desarrollo de scripts para detectar y responder a amenazas en tiempo real.


Conclusión Personal:

En resumen, Python es un lenguaje de programación versátil y poderoso que se destaca por su facilidad de uso y legibilidad. Su amplio alcance lo hace ideal tanto para principiantes como para expertos en programación. En el ámbito de la ciberseguridad, su capacidad de automatización y su comunidad activa de desarrolladores lo convierten en una herramienta valiosa para proteger sistemas y datos en un mundo cada vez más digital y conectado. El aprendizaje de Python abre un mundo de oportunidades en la programación y la seguridad informática. ¡Así que no dudes en comenzar tu viaje de aprendizaje en Python hoy mismo!



        Instalación de Python


Windows:

1. Visita el sitio web oficial de Python en [python.org](https://www.python.org/).

2. Ve a la sección "Downloads" (Descargas) y haz clic en "Python x.x.x" (donde "x.x.x" representa la versión más reciente de Python).

3. Desplázate hacia abajo en la página y elige la versión de Python adecuada para tu sistema:

   - Si tienes un sistema de 64 bits, elige la versión de 64 bits.

   - Si tienes un sistema de 32 bits, elige la versión de 32 bits.

4. Haz clic en el archivo de instalación descargado para ejecutarlo.

5. En la primera ventana de instalación, asegúrate de marcar la casilla "Add Python x.x to PATH" (Agregar Python x.x al PATH) antes de hacer clic en "Install Now" (Instalar ahora).

6. El instalador de Python copiará los archivos necesarios y configurará Python en tu sistema.

7. Una vez completada la instalación, puedes verificar si Python se instaló correctamente abriendo el símbolo del sistema o PowerShell y escribiendo `python --version`. Deberías ver la versión de Python que acabas de instalar.


MacOS:

1. Abre una terminal en tu macOS. Puedes encontrar la Terminal en la carpeta "Utilidades" dentro de la carpeta "Aplicaciones" o usar Spotlight para buscarla.

2. Verifica si Python ya está instalado en tu sistema escribiendo `python3 --version`. Algunas versiones de macOS ya incluyen Python 3.

3. Si Python 3 no está instalado, puedes instalarlo utilizando Homebrew (un administrador de paquetes para macOS):

   - Instala Homebrew si aún no lo tienes siguiendo las instrucciones en su sitio web.

   - Después de instalar Homebrew, abre la terminal y ejecuta el siguiente comando para instalar Python 3:

     

     brew install python

     

4. Verifica que Python 3 se haya instalado correctamente ejecutando `python3 --version`.


Linux (Ubuntu/Debian):


1. Abre una terminal en tu sistema Linux.

2. Verifica si Python ya está instalado en tu sistema escribiendo `python3 --version`. Muchas distribuciones de Linux ya incluyen Python 3.

3. Si Python 3 no está instalado, puedes instalarlo ejecutando los siguientes comandos en la terminal:

  

   sudo apt update

   sudo apt install python3

   

4. Verifica que Python 3 se haya instalado correctamente ejecutando `python3 --version`.


Estas instrucciones te ayudarán a instalar Python en tu sistema, ya sea Windows, macOS o Linux. Una vez que Python esté instalado, estarás listo para empezar a escribir y ejecutar programas en Python.



       Instalación del editor de código Visual Studio Code


Para Windows:

1. Visita el sitio web oficial de Visual Studio Code en [https://code.visualstudio.com/](https://code.visualstudio.com/).

2. Haz clic en el botón "Download for Windows" (Descargar para Windows) para descargar el instalador.

3. Una vez que se complete la descarga, haz doble clic en el archivo de instalación descargado (`VSCodeSetup-x64-x.xxx.xxx.exe`, donde "x.xxx.xxx" representa la versión más reciente).

4. Aparecerá una ventana de instalación. Sigue las instrucciones en pantalla, acepta los términos de la licencia y elige las opciones de instalación según tus preferencias.

5. Haz clic en "Install" (Instalar) para comenzar la instalación.

6. Después de la instalación, puedes abrir Visual Studio Code desde el menú Inicio o buscándolo en la barra de búsqueda.



Para MacOS:

1. Visita el sitio web oficial de Visual Studio Code en [https://code.visualstudio.com/](https://code.visualstudio.com/).

2. Haz clic en el botón "Download for Mac" (Descargar para Mac) para descargar el archivo .dmg.

3. Abre el archivo .dmg descargado.

4. Arrastra el icono de Visual Studio Code a la carpeta de Aplicaciones para instalarlo en tu sistema.

5. Una vez que se complete la instalación, puedes encontrar Visual Studio Code en tu carpeta de Aplicaciones y abrirlo desde allí.



Para Linux (Ubuntu/Debian):

1. Abre una terminal en tu sistema Linux.

2. Ejecuta los siguientes comandos uno por uno para agregar el repositorio oficial de Visual Studio Code y la clave GPG:

   

   sudo apt update

   sudo apt install software-properties-common apt-transport-https wget

   wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add -

   sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main"

   

3. Después de agregar el repositorio, actualiza la lista de paquetes e instala Visual Studio Code:

   

   sudo apt update

   sudo apt install code

   

4. Una vez que se complete la instalación, puedes abrir Visual Studio Code desde el menú de aplicaciones o ejecutando `code` en la terminal.


Ahora que has instalado Visual Studio Code, puedes comenzar a usarlo como tu editor de código para programar en Python y muchas otras tecnologías.



      Uso de las comillas

La elección del uso entre comillas generalmente se basa en preferencias personales, o en la necesidad de incluir comillas del tipo opuesto dentro de la cadena.


Forma de implementación entre comillas.

Las comillas simples y las comillas dobles son cadenas de texto de una línea, las comillas triples son multilínea y puedes acomodar el texto como e parezca en cambio las simples y dobles generan un error al interrumpir la línea por ejemplo multilínea seria así.



Las comillas simples y las comillas dobles al interrumpir su línea generan un error, no solo se puede ver el error en la línea 4 y 5 que fue donde se interrumpio la línea también se refleja el error de la línea de mas abajo en la línea 8.




 Uso de los comentarios

Los comentarios se utilizan para proporcionar explicaciones o anotaciones dentro del código fuente, así como también comentar el mismo código para realizar pruebas



Como mostrar un texto por pantalla

Mostrar una salida de texto por pantalla o salida de datos, implementamos print().

Se utiliza para mostrar información en la salida estándar, que generalmente es la consola o la terminal.

Puedes utilizar print() de diferente manera, para mostrar diferentes tipos de datos y mensajes.

Formas de mostrar texto con print().


Este sería el resultado seria


A continuación, podemos ver algunos errores…


Aquí se puede ver que cuando se parte el texto a la mitad en comillas simples y dobles me genera error pero no en donde están las comillas triples, esto es porque el print() solo muestra dicho contenido pero no interfiere con  la función que implementa cada instrucción como por ejemplo la forma correcta e incorrecta de implementar las comillas.

Las comillas tripes se mantienen sin errores ya que estas no tienen problema alguno para que se le pueda dividir a modo de multilíneas.

El resultado del error seria el siguiente.

Este me indica también en que línea comienza el error y me indica el tipo de error que tengo.


También podemos ver un error cuando ponemos un texto sin un entrecomillado y sin un valor(variables las cuales veremos más abajo).


El error generado se vería algo así.



Tipo de Datos

Numericos:

Enteros (int) : Los números enteros son son valores sin parte desimal.( 1, 2, 3, 4… )


Coma Flotante (float): Los números Coma Flotantes o también conocidos como decimal son aquellos números que los divide un punto.( 1.5, 3.4, 16.50… )


Boleanos (Verdadero/ Falso): Los datos booleanos son un tipo de dato fundamental en programación que se utilizan para representar dos valores: Verdadero (True) y Falso (False).

1. Valores Booleanos:

   - Verdadero (True): Representa un valor afirmativo o cierto.

   - Falso (False): Representa un valor negativo o falso.


2. Uso de Datos Booleanos:

   - Los datos booleanos se utilizan principalmente en expresiones condicionales para tomar decisiones en el código.

   - Se usan en comparaciones, como igualdades (==), diferente que (!=), mayor que (>), menor que (<), mayor o igual que (>=), y menor o igual que (<=).


3. Valores Resultantes:

   - Las expresiones condicionales devuelven un valor booleano (True o False) como resultado de la evaluación.



4. Operadores Lógicos:

   - Se pueden combinar expresiones booleanas utilizando operadores lógicos como "and" (y), "or" (o) y "not" (no) para crear condiciones más complejas.


En resumen, los datos booleanos son esenciales para la toma de decisiones en programación, permitiéndonos controlar el flujo de ejecución del código según condiciones que pueden ser Verdaderas o Falsas. Estos valores son fundamentales en lenguajes de programación para implementar lógica y control de flujo en programas.



Operadores Matemáticos


Operadores matemáticos.

+ Suma

- Resta

* Multiplicación

/ División Decimal

% Modulo, entrega el resto de un numero decimal

** Exponente

// División Entera



Operadores Comparativos:

  == Igual que

  != Diferente que

  > Mayor que

  >= Mayor o igual que

  < Menor que

  <= Menor o igual que



Operadores Lógicos:

  and Operador lógico "Y" (ambas condiciones deben ser verdaderas)

  or Operador lógico "O" (al menos una condición debe ser verdadera)

  not Operador lógico "NO" (invierte el valor de la condición)


Operadores de Asignación:

  = Igual (asigna un valor a una variable)

  += Incremento (suma y asigna)

  -= Decremento (resta y asigna)

  *= Multiplicación y asignación

  /= División y asignación

  %= Módulo y asignación

  **= Exponente y asignación

  //= División entera y asignación


  Python sigue las reglas matemáticas estándar en la mayoría de las operaciones numéricas. A continuación, se presentan algunas de las reglas matemáticas clave que Python sigue:


1. Jerarquía de Operaciones: Python sigue la jerarquía de operaciones matemáticas estándar, que dicta el orden en el que se realizan las operaciones. Esto significa que primero se realizan las operaciones dentro de paréntesis, luego las multiplicaciones y divisiones, y finalmente las sumas y restas.


2. Operaciones Aritméticas: Python realiza operaciones aritméticas como suma (`+`), resta (`-`), multiplicación (`*`), división (`/`), módulo (`%`), exponente (`**`) y división entera (`//`) de acuerdo con las reglas matemáticas convencionales.


3. Paréntesis: Puedes utilizar paréntesis para forzar el orden de las operaciones. Las operaciones dentro de paréntesis se evalúan primero.


4. Asociatividad: Python sigue las reglas de asociatividad de las operaciones. Por ejemplo, en operaciones de suma y multiplicación, se realizan de izquierda a derecha.


5. Prioridad de Operadores: Los operadores tienen diferentes niveles de prioridad. Por ejemplo, la multiplicación y la división tienen prioridad sobre la suma y la resta.


6. Manejo de Enteros y Flotantes: Python realiza conversiones automáticas entre enteros y flotantes según sea necesario en las operaciones. Por ejemplo, si divides dos enteros y el resultado es un número no entero, Python devuelve un valor de tipo flotante.


7. Errores en la División: La división por cero (`0`) en Python genera una excepción (`ZeroDivisionError`), ya que no está permitida en matemáticas.


8. Precisión Numérica: Los números en coma flotante en Python tienen una precisión limitada debido a la representación binaria. Esto puede llevar a pequeños errores de redondeo en cálculos muy precisos.


9. Operadores de Comparación: Python utiliza operadores de comparación como `==` (igual), `!=` (no igual), `<` (menor que), `>` (mayor que), `<=` (menor o igual que) y `>=` (mayor o igual que) para comparar valores numéricos y devolver resultados booleanos (`True` o `False`).


10. Operaciones con Números Complejos: Python admite operaciones matemáticas con números complejos utilizando la notación `j` para la parte imaginaria.


Es importante recordar que Python sigue las reglas matemáticas estándar en la mayoría de las operaciones, lo que lo hace consistente con las expectativas matemáticas. Sin embargo, siempre es recomendable verificar y validar los resultados de tus cálculos, especialmente en casos críticos o donde la precisión es crucial.



Las variables

  - Son cajas que nos permiten almacenar variedad de valores que se pueden mantener o cambiar según se requiera, como por ejemplo números o cadenas de caracteres, se comienza con minúsculas o mayúsculas y que contiene únicamente letras, cifras y adicionalmente si es necesario el carácter subrayado es decir cuando añaden un guion bajo para remplazar espacios.

De esta manera creamos una variable y le asignamos un valor numérico entero 


Ahora conoceremos type() que nos indica que tipo de datos o dato almacena una variable


Luego conocemos la función format()

La función format() en Python se usa para crear cadenas de texto con valores variables. Imagina que quieres imprimir un mensaje que incluye tu nombre y tu edad, pero no sabes qué valores tendrán. Puedes usar format() para hacerlo de la siguiente manera:



Ingreso de texto / Ingreso por teclado

Ingresar datos por teclado en Python se puede lograr utilizando la función `input()`. Esta función permite al usuario ingresar texto desde el teclado, que luego puede ser almacenado en una variable para su posterior procesamiento.


Con esta función ya logramos hacer que el usuario interactúe con nuestro sistema…

  1. Entrada de texto simple:


La respuesta seria


Decisiones y validación de errores

CONDICIONALES 


Las condicionales son estructuras de control que permiten tomar decisiones en función de si una expresión es verdadera o falsa. Las principales condicionales en Python son:



1. if: Se utiliza para ejecutar un bloque de código si una expresión es verdadera.


if condicion:

       # Bloque de código si la condición es verdadera



2. else: Se utiliza junto con `if` para ejecutar un bloque de código cuando la condición no es verdadera.


if condicion:

       # Bloque de código si la condición es verdadera

else:

       # Bloque de código si la condición no es verdadera



3. elif: Se utiliza para evaluar múltiples condiciones en secuencia y ejecutar el bloque de código correspondiente al primer `elif` o al `else` si ninguna de las condiciones anteriores es verdadera.


if condicion1:

       # Bloque de código si la condición1 es verdadera

elif condicion2:

       # Bloque de código si la condición2 es verdadera

else:

       # Bloque de código si ninguna de las condiciones es verdadera



4. Operadores de comparación: Se utilizan en las condiciones para comparar valores. Algunos operadores comunes son 

== (igual), 

!= (no igual), 

< (menor que), 

> (mayor que), 

<= (menor o igual que) y 

>= (mayor o igual que).



if numero > 10:

       # Bloque de código si numero es mayor que 10



Estas estructuras condicionales permiten controlar el flujo de ejecución de un programa en función de las condiciones que se cumplan, lo que hace que Python sea muy versátil para tomar decisiones en la programación.


MANEJO DE EXCEPCIONES


En Python, el manejo de excepciones es una técnica que permite controlar y gestionar situaciones excepcionales que pueden ocurrir durante la ejecución de un programa. Las excepciones son errores que pueden interrumpir el flujo normal del programa.


Los bloques principales para manejar excepciones son:


1. try: Se utiliza para encerrar un bloque de código que puede generar una excepción.


try:

       # Bloque de código que puede generar una excepción


2. except: Se utiliza junto con `try` para manejar una excepción específica que puede ocurrir en el bloque `try`. Si se produce la excepción, se ejecuta el bloque `except`.


except TipoDeExcepcion as e:

       # Bloque de código para manejar la excepción


3. finally: Este bloque es opcional y se ejecutará siempre, ya sea que se produzca una excepción o no. Se utiliza para realizar tareas de limpieza o liberación de recursos.


finally:

       # Bloque de código que se ejecutará siempre


El manejo de excepciones es útil para prevenir que un programa se bloquee incluso cuando ocurren errores, y para tomar medidas adecuadas cuando se producen excepciones.


Ejemplo:


try:

    numero = int(input("Ingrese un número entero: "))

    resultado = 10 / numero

    print("El resultado es:", resultado)


except ZeroDivisionError as e:

    print("Error: No se puede dividir entre cero.")


except ValueError as e:

    print("Error: Ingrese un número entero válido.")


finally:

    print("Siempre se ejecutará este bloque, ya sea que haya excepciones o no.")



Listas

Las listas son una estructura de datos que te permite almacenar y organizar múltiples elementos en una sola variable. Puedes utilizar estas operaciones en listas para realizar diversas tareas:


1. Acceso a elementos: Las listas están indexadas, lo que significa que cada elemento de la lista tiene una posición única. Puedes acceder a elementos específicos utilizando índices positivos o negativos. Los índices positivos comienzan desde 0 y avanzan hacia la derecha, mientras que los índices negativos comienzan desde -1 y avanzan hacia la izquierda.


2. Añadir elementos: Puedes agregar elementos a una lista de varias formas. Usar `.append()` agrega un elemento al final de la lista. `mi_lista.append('sandra')` agrega 'sandra' al final de la lista `mi_lista`. También puedes insertar elementos en posiciones específicas con `.insert()`, como en `mi_lista.insert(2, 'sandy')`.


3. Extender la lista: Si deseas agregar múltiples elementos a una lista al final, puedes usar `.extend()`. Por ejemplo, `mi_lista.extend(['lalita', 'carlitos', 'pupis'])` agrega estos elementos al final de la lista.


4. Insertar una lista dentro de otra lista: Puedes insertar una lista dentro de otra lista. Por ejemplo, `mi_lista.insert(0, ['lalita', 'carlitos', 'pupis'])` inserta la lista `[lalita', 'carlitos', 'pupis']` en la posición 0 de `mi_lista`.


5. Encontrar el índice de un elemento: Si deseas saber en qué posición se encuentra un elemento en la lista, puedes usar `.index()`. `mi_lista.index('pupis')` devuelve el índice de 'pupis' en la lista.


6. Comprobar la existencia de un elemento: Puedes verificar si un elemento está presente en una lista con la expresión `elemento in lista`. Por ejemplo, `'maria' in mi_lista` devolverá `True` si 'maria' está en `mi_lista`.


7. Eliminar elementos: Puedes eliminar elementos de una lista utilizando `.remove()`, que elimina el elemento especificado. `mi_lista.remove('camil')` eliminará 'camil' de la lista. También puedes usar `.pop()` para eliminar el último elemento de la lista, como en `mi_lista.pop()`.


8. Unir listas: Puedes combinar dos o más listas concatenándolas con el operador `+`. `listaA + listaB` crea una nueva lista que contiene todos los elementos de `listaA` seguidos de todos los elementos de `listaB`.


9. Crear una lista repetida: Puedes crear una lista que contenga elementos repetidos multiplicando la lista por un número entero. `['lalita', 'carlitos', 'pupis'] * 3` crea una nueva lista que contiene tres copias de la lista original.

Ejemplos: 



Tuplas

Una tupla es algo inmutable, es algo que no se puede modificar


No se permiten:

# append. 

# extend. 

# remove.


# si puede comprobar si un elemento se encuentra en la tupla.

# son mas rapidas.

# menos espacio

# formatean strings

# puedan utilizarse para claves de un diccioario las listas no.

# se puede buscar cual es el index


# SINTAXIS DE UNA TUPLA

Diccionarios

Estructura de datos que nos permite almacenar valores de diferentes tipos (números enteros, números decimales, cadenas de texto) la principal característica de los diccionarios es que los datos se almacenan asociados a una clave de tal forma que se crea una asociación de tipo clave:valor para cada elemento almacenado.

Los elementos almacenados no están ordenados, el orden es indiferente a la hora de almacenar información en un diccionario. 

  1. Bucles

Los bucles son estructuras de control que permiten

repetir un bloque de código múltiples veces. Los dos bucles

principales en Python son:


1. Bucle for: Se utiliza para iterar sobre una secuencia (como una lista, tupla, cadena de caracteres, etc.) o un objeto iterable.

   for elemento in secuencia:

       # Bloque de código a ejecutar para cada elemento


2. Bucle while: Se utiliza para repetir un bloque de código mientras se cumple una condición.

   while condicion:

       # Bloque de código a ejecutar mientras la condición sea verdadera


Dentro de los bucles, puedes utilizar sentencias como `break` para salir del bucle antes de que se cumpla la condición o `continue` para saltar la iteración actual y continuar con la siguiente.

Ejemplo de bucle for:


Ejemplo de bucle while:





Funciones

Una función es un bloque de código que realiza una tarea específica y puede ser llamado desde otras partes del programa, ósea reutilizar código que ya se implementó en otra área del archivo o en otro archivo.

     




Uso de algunas librerías

Las librerías en el contexto de la programación, también conocidas como bibliotecas, son conjuntos de código predefinido que contienen funciones, clases y recursos adicionales para realizar tareas específicas en un lenguaje de programación.


En términos generales:

- Las librerías son como herramientas o cajas de herramientas que los programadores utilizan para realizar tareas comunes de manera más eficiente. Estas tareas pueden incluir cálculos matemáticos, manipulación de archivos, comunicación en red, procesamiento de datos y muchas otras.

- Cada librería se enfoca en un conjunto específico de tareas o problemas, y proporciona funciones y objetos que simplifican la implementación de esas tareas.

- Las librerías permiten a los programadores reutilizar el código que otras personas han escrito, lo que acelera el desarrollo de aplicaciones y reduce la necesidad de crear todo desde cero.

- En Python, muchas librerías están disponibles en la librería estándar, lo que significa que se incluyen automáticamente con la instalación de Python y se pueden utilizar sin necesidad de una instalación adicional.

Por lo tanto, cuando se hace referencia a librerías en el contexto de programación, se está hablando de estos conjuntos de código que extienden las capacidades de Python y facilitan la implementación de diversas tareas.



Como instalar librerías de Python:


   - Abre la línea de comandos (CMD) en tu computadora, o anda a la parte inferior de tu computadora y escribe CMD, ábrelo ejecutar como administrador.


   - En la ventana de la línea de comandos, copia y pega el siguiente comando y presiona Enter:

     pip install nombre_de_la_libreria_aqui


     Esto descargará e instalará la librería

Recuerda que debes tener Python instalado previamente en tu computadora. Si aún no tienes Python instalado, regresa al comienzo del libro e instala lo que nesecites.



1. Librería math:

   - Utilidad: Ofrece funciones y constantes matemáticas para realizar cálculos avanzados.

   - Instalación: No se requiere instalación adicional, ya que es parte de la librería estándar de Python.

   - Importación: `import math`

   - Descripción: Útil para cálculos matemáticos precisos, como trigonometría, exponenciación, logaritmos y raíces cuadradas.

   - [Documentación de `math`](https://docs.python.org/3/library/math.html


2. Librería random:

   - Utilidad: Genera números aleatorios y facilita operaciones relacionadas con la aleatoriedad.

   - Instalación: No se requiere instalación adicional, ya que es parte de la librería estándar de Python.

   - Importación: `import random`

   - Descripción: Importante para tareas que requieren introducir un componente aleatorio, como juegos, simulaciones y pruebas.

   - [Documentación de `random`](https://docs.python.org/3/library/random.html


3. Librería os:

   - Utilidad: Permite interactuar con el sistema operativo para tareas como navegación por directorios y manipulación de archivos.

   - Instalación: No se requiere instalación adicional, ya que es parte de la librería estándar de Python.

   - Importación: `import os`

   - Descripción: Esencial para tareas relacionadas con la gestión de archivos y directorios en el sistema operativo.

   - [Documentación de `os`](https://docs.python.org/3/library/os.html


4. Librería datetime:

   - Utilidad: Facilita el manejo de fechas y horas en Python.

   - Instalación: No se requiere instalación adicional, ya que es parte de la librería estándar de Python.

   - Importación: `import datetime`

   - Descripción: Útil para realizar tareas de programación relacionadas con fechas y horas, como cálculos de tiempo.

   - [Documentación de `datetime`](https://docs.python.org/3/library/datetime.html


5. Librería json:

   - Utilidad: Permite trabajar con datos en formato JSON (JavaScript Object Notation).

   - Instalación: No se requiere instalación adicional, ya que es parte de la librería estándar de Python.

   - Importación: `import json`

   - Descripción: Importante para el intercambio de datos estructurados entre aplicaciones y el almacenamiento de configuraciones.

   - [Documentación de `json`](https://docs.python.org/3/library/json.html


6. Librería csv:

   - Utilidad: Simplifica la lectura y escritura de archivos CSV (Comma-Separated Values).

   - Instalación: No se requiere instalación adicional, ya que es parte de la librería estándar de Python.

   - Importación: `import csv`

   - Descripción: Útil para procesar datos tabulares en hojas de cálculo y archivos CSV.

   - [Documentación de `csv`](https://docs.python.org/3/library/csv.html


7. Librería re (expresiones regulares):

   - Utilidad: Permite trabajar con patrones de búsqueda y manipulación de cadenas de texto utilizando expresiones regulares.

   - Instalación: No se requiere instalación adicional, ya que es parte de la librería estándar de Python.

   - Importación: `import re`

   - Descripción: Importante para buscar y manipular texto en situaciones donde se requiere flexibilidad en los patrones de búsqueda.

   - [Documentación de `re`](https://docs.python.org/3/library/re.html



8. Librería urllib.request:

   - Utilidad: Facilita la interacción con recursos en línea a través de URLs, como la descarga de contenido web.

   - Instalación: No se requiere instalación adicional, ya que es parte de la librería estándar de Python.

   - Importación: `import urllib.request`

   - Descripción: Útil para acceder a contenido en línea y realizar solicitudes HTTP.

   - [Documentación de `urllib.request`](https://docs.python.org/3/library/urllib.request.html


9. Librería collections:

   - Utilidad: Ofrece contenedores y estructuras de datos adicionales, como diccionarios con orden, colas y pilas.

   - Instalación: No se requiere instalación adicional, ya que es parte de la librería estándar de Python.

   - Importación: `import collections`

   - Descripción: Útil para tareas de programación que requieren estructuras de datos más avanzadas.

   - [Documentación de `collections`](https://docs.python.org/3/library/collections.html


10. Librería sqlite3:

    - Utilidad: Permite la interacción con bases de datos SQLite desde Python.

    - Instalación: No se requiere instalación adicional, ya que es parte de la librería estándar de Python.

    - Importación: `import sqlite3`

    - Descripción: Esencial para trabajar con bases de datos SQLite en aplicaciones Python.

    - [Documentación de `sqlite3`](https://docs.python.org/3/library/sqlite3.html


11. Librería mysql-connector-python:

    - Utilidad: La librería `mysql-connector-python` permite a los desarrolladores de Python conectarse y comunicarse con bases de datos MySQL. Es esencial para realizar operaciones de lectura y escritura en bases de datos MySQL desde una aplicación Python.

    - Instalación: pip install mysql-connector-python

    - Importación: import mysql.connector

    - Descripción: mysql-connector-python proporciona una interfaz eficiente para conectarse a servidores MySQL y realizar diversas operaciones de bases de datos, como consultas SELECT, inserciones de datos, actualizaciones y eliminaciones. Facilita la creación de conexiones, la gestión de cursores y la recuperación de resultados. Es una herramienta esencial para aplicaciones que requieren persistencia de datos utilizando MySQL como sistema de gestión de bases de datos.

La librería mysql-connector-python es valiosa para desarrolladores que trabajan con bases de datos MySQL en aplicaciones Python. Permite interactuar de manera efectiva con las bases de datos, lo que es esencial para aplicaciones web, sistemas de gestión, análisis de datos y muchas otras aplicaciones que requieren almacenamiento y recuperación de datos.

   - Documentación: Si deseas obtener más información detallada sobre `mysql-connector-python` y cómo utilizarla, puedes consultar la [documentación oficial de mysql-connector-python](https://pypi.org/project/mysql-connector-python/). 


12. Librería requests:

   - Utilidad: Permite realizar solicitudes HTTP, lo que facilita la comunicación con servidores web y la obtención de datos.

   - Instalación: Puedes instalarlo utilizando `pip` con el siguiente comando: `pip install requests`.

   - Importación: `import requests`

   - Descripción: Útil para acceder a recursos en línea, interactuar con APIs web y descargar contenido desde la web.

   - [Documentación de `requests`](https://docs.python-requests.org/en/master/


13. Librería numpy:

   - Utilidad: Ofrece soporte para arrays y matrices multidimensionales, junto con funciones para realizar cálculos numéricos.

   - Instalación: Puedes instalarlo utilizando `pip` con el siguiente comando: `pip install numpy`.

   - Importación: `import numpy`

   - Descripción: Ampliamente utilizado en ciencia de datos y cálculos científicos para realizar operaciones numéricas eficientes.

   - [Documentación de `numpy`](https://numpy.org/doc/stable/


14. Librería pandas:

   - Utilidad: Proporciona estructuras de datos y herramientas para el análisis y manipulación de datos tabulares.

   - Instalación: Puedes instalarlo utilizando `pip` con el siguiente comando: `pip install pandas`.

   - Importación: `import pandas`

   - Descripción: Ampliamente utilizado en análisis de datos y procesamiento de conjuntos de datos.

   - [Documentación de `pandas`](https://pandas.pydata.org/docs/


15. Librería matplotlib:

   - Utilidad: Facilita la creación de gráficos y visualizaciones de datos.

   - Instalación: Puedes instalarlo utilizando `pip` con el siguiente comando: `pip install matplotlib`.

   - Importación: `import matplotlib.pyplot as plt`

   - Descripción: Importante para la visualización de datos y la representación gráfica de resultados.

   - [Documentación de `matplotlib`](https://matplotlib.org/stable/contents.html


16. Librería tensorflow:

   - Utilidad: Ofrece herramientas para la creación y entrenamiento de modelos de aprendizaje automático, especialmente redes neuronales.

   - Instalación: Puedes instalarlo utilizando `pip` con el siguiente comando: `pip install tensorflow`.

   - Importación: `import tensorflow as tf`

   - Descripción: Ampliamente utilizado en aprendizaje automático y desarrollo de modelos de inteligencia artificial.

   - [Documentación de `tensorflow`](https://www.tensorflow.org/api_docs/python/tf


17. Librería flask:

   - Utilidad: Facilita la creación de aplicaciones web y API RESTful.

   - Instalación: Puedes instalarlo utilizando `pip` con el siguiente comando: `pip install Flask`.

   - Importación: `from flask import Flask`

   - Descripción: Importante para el desarrollo de aplicaciones web y servicios web.

   - [Documentación de `Flask`](https://flask.palletsprojects.com/en/2.1.x/


18. Librería sqlalchemy:

   - Utilidad: Proporciona una interfaz de alto nivel para interactuar con bases de datos relacionales.

   - Instalación: Puedes instalarlo utilizando `pip` con el siguiente comando: `pip install sqlalchemy`.

   - Importación: `from sqlalchemy import create_engine`

   - Descripción: Importante para la interacción con bases de datos y el mapeo objeto-relacional.

   - [Documentación de `sqlalchemy`](https://docs.sqlalchemy.org/en/20/


19. Librería beautifulsoup4:

   - Utilidad: Facilita la extracción de datos de páginas web, en particular, el análisis y la manipulación de documentos HTML y XML.

   - Instalación: Puedes instalarlo utilizando `pip` con el siguiente comando: `pip install beautifulsoup4`.

   - Importación: `from bs4 import BeautifulSoup`

   - Descripción: Importante para la web scraping y la extracción de información de sitios web.

   - [Documentación de `beautifulsoup4`](https://www.crummy.com/software/BeautifulSoup/bs4/doc/


20. Librería pygame:

   - Utilidad: Facilita el desarrollo de juegos y aplicaciones multimedia.

   - Instalación: Puedes instalarlo utilizando `pip` con el siguiente comando: `pip install pygame`.

   - Importación: `import pygame`

   - Descripción: Ampliamente utilizado en el desarrollo de juegos y aplicaciones interactivas.

   - [Documentación de `pygame`](https://www.pygame.org/wiki/GettingStarted


21. Librería selenium:

   - Utilidad: Permite la automatización de navegadores web y la interacción con páginas web.

   - Instalación: Puedes instalarlo utilizando `pip` con el siguiente comando: `pip install selenium`.

   - Importación: `from selenium import webdriver`

   - Descripción: Importante para la automatización de pruebas web y tareas repetitivas en navegadores.

   - [Documentación de `selenium`](https://selenium-python.readthedocs.io/


22. Librería openpyxl:

   - Utilidad: Facilita la creación y manipulación de archivos de hojas de cálculo de Excel.

   - Instalación: Puedes instalarlo utilizando `pip` con el siguiente comando: `pip install openpyxl`.

   - Importación: `from openpyxl import Workbook`

   - Descripción: Útil para la automatización de tareas relacionadas con hojas de cálculo de Excel.

   - [Documentación de `openpyxl`](https://openpyxl.readthedocs.io/en/3.0/)





Escritura de documentos

Entendido. A continuación, proporcionaré una lista de los modos de apertura de archivos comunes y luego generaré ejemplos completos para leer, escribir, modificar, agregar y eliminar datos en archivos CSV.


Modos de apertura de archivos:

r: Lectura (Read). Abre el archivo en modo lectura.


W: Escritura (Write). Abre el archivo en modo escritura. Si el archivo existe, lo sobrescribe; de lo contrario, crea uno nuevo.


a: Agregación (Append). Abre el archivo en modo de agregación. Si el archivo existe, agrega datos al final; de lo contrario, crea uno nuevo.


x: Exclusivo (Exclusive). Abre el archivo en modo exclusivo para escritura, creando uno nuevo si no existe.

b: Modo binario (Binary). Abre el archivo en modo binario, por ejemplo, 'rb' para lectura binaria o 'wb' para escritura binaria.


Ahora, generemos ejemplos completos para cada uno de estos modos:



Para profundizar mas visita:    https://realpython.com/python-csv/ 




Importación de documentos

La importación de documentos se refiere a la capacidad de Python para cargar y utilizar módulos o archivos externos en tu programa. Esto es especialmente útil cuando deseas utilizar funciones, clases o datos definidos en otros archivos Python o módulos preexistentes. Para importar documentos en Python, utilizas la palabra clave import.




Ejemplo de Importación de un Documento:


Supongamos que tienes un archivo llamado operaciones.py que contiene funciones matemáticas como suma y resta:


Puedes importar y utilizar estas funciones en otro archivo Python de la siguiente manera:


En este ejemplo, el archivo llamar_operaciones.py importa el archivo operaciones.py utilizando import operaciones. Luego, puede acceder a las funciones suma y restas definidas en operaciones.py y utilizarlas en el programa principal.


La importación de documentos es una técnica esencial para organizar y reutilizar código en Python, ya que te permite dividir tu código en módulos más pequeños y fáciles de mantener. Puedes importar tanto módulos estándar de Python como tus propios archivos personalizados.



Programación Orientada a Objetos

Introducción a la Programación Orientada a Objetos (POO):

- La POO es un paradigma de programación que se basa en la idea de tratar los datos y las acciones que se realizan sobre ellos como "objetos".

- Los objetos son instancias de "clases", que son como plantillas o moldes para crear objetos.

- En Python, todo es un objeto, desde números y cadenas hasta estructuras de datos más complejas.


Clases en Python:

- Una clase es una definición de un objeto. Define sus atributos (datos) y métodos (funciones) que pueden realizar operaciones en esos datos.

- Se define una clase utilizando la palabra clave `class` seguida del nombre de la clase.


Objetos en Python:

- Un objeto es una instancia de una clase. Puedes crear múltiples objetos a partir de la misma clase.

  


Atributos de Clase y de Instancia:

- Los atributos pueden ser de clase (compartidos por todos los objetos de la clase) o de instancia (propiedad específica de cada objeto).


Métodos en Clases:

- Los métodos son funciones definidas dentro de una clase y operan en los atributos de la clase.

- El método `__init__` es el constructor y se llama automáticamente cuando se crea un objeto de la clase.


Encapsulación:

- En Python, no hay un control estricto sobre el acceso a los atributos, pero se usa una convención para indicar que un atributo es privado agregando un guion bajo antes del nombre (ejemplo: `_atributo_privado`).



Herencia:

- La herencia permite crear una nueva clase que hereda atributos y métodos de una clase existente.


Polimorfismo:

- El polimorfismo permite que diferentes clases implementen métodos con el mismo nombre, pero que funcionen de manera diferente.

Estos son los conceptos clave de la programación orientada a objetos en Python. Con una comprensión sólida de estos conceptos, puedes crear programas más organizados y reutilizables mediante la creación de clases y objetos.



Conexión a base de datos

Para esta parte del libro necesitas ya tener conocimientos en base de datos.


Python con MySQL y SQLite

- Importación de las librerías de bases de datos.

- Establecimiento de una conexión a la base de datos.

- Creación de una tabla.

- Inserción de datos.

- Consulta de datos.

- Actualización de datos.

- Eliminación de datos.

- Cierre de la conexión.


MySQL y SQLite:

- Ambas bases de datos admiten SQL estándar, pero difieren en términos de escalabilidad y configuración.

- MySQL es una base de datos de servidor que se utiliza en aplicaciones más grandes y requiere un servidor MySQL en ejecución.

- SQLite es una base de datos de un solo archivo que es ideal para aplicaciones más pequeñas y no requiere un servidor.


1. MySQL (conector mysql-connector-python)

   - Comando de instalación: `pip install mysql-connector-python`

   - [Documentación de MySQL Connector/Python](https://dev.mysql.com/doc/connector-python/en/

   - Ejemplo de conexión MySQL:


Se crea un objeto cursor. En el contexto de bases de datos, un cursor es un objeto que te permite interactuar con la base de datos, enviar consultas y recuperar resultados.


Explicación detallada:

1. conexión es el objeto que representa la conexión a la base de datos que se estableció previamente.

2. `cursor()` es un método de este objeto `conexion`. Cuando se llama a conexion.cursor(), se crea un nuevo objeto cursor que está asociado con la conexión a la base de datos. Este cursor actúa como un puntero o marcador de posición que te permite ejecutar consultas SQL y recuperar resultados de esas consultas.

Por lo tanto, después de crear este objeto cursor, puedes usarlo para realizar varias operaciones en la base de datos, como ejecutar consultas SELECT, INSERT, UPDATE o DELETE, y recuperar los resultados de esas operaciones.

Si deseas interactuar con la base de datos, generalmente primero creas un cursor, ejecutas tus consultas o comandos SQL usando ese cursor y luego cierras el cursor y la conexión cuando hayas terminado.


Ejemplo de conexión SQLite:


Operaciones CRUD de ejemplo en ambas bases de datos:(debajo de cada conexión viene el Crud)




Interfaz grafica

Tkinter: La Biblioteca de Interfaz Gráfica de Usuario (GUI) de Python


Tkinter es una biblioteca estándar de Python que se utiliza para crear interfaces gráficas de usuario (GUI). Con Tkinter, puedes crear ventanas, etiquetas, botones, cuadros de texto, y muchos otros componentes de GUI para interactuar con tus programas de Python.


Características Clave de Tkinter:


1. Facilidad de Uso: Tkinter es conocido por su simplicidad y facilidad de uso. Es una excelente elección para principiantes en programación GUI.

2. Portabilidad: Las aplicaciones creadas con Tkinter funcionan en múltiples sistemas operativos, como Windows, macOS y Linux.

3. Ampliamente Utilizado: Tkinter es una de las bibliotecas GUI más utilizadas en Python y es compatible con muchas aplicaciones y proyectos de código abierto.


Pasos Básicos para Crear una Aplicación Tkinter:


1. Importar Tkinter: Debes importar el módulo Tkinter con from tkinter import *. (con * indicamos que llamamos a todo o que abarca esta librería para no ir poniendo los nombres de los elementos de uno en uno.


2. Crear una Ventana Principal: Utiliza Tk() para crear una ventana principal que actuará como el contenedor de tus componentes de GUI.


3. Agregar Componentes: Puedes agregar etiquetas, botones, cuadros de texto, etc., a la ventana principal.


4. Definir Funciones (def): Debes definir funciones que se ejecutarán cuando los usuarios interactúen con los componentes (por ejemplo, al hacer clic en un botón).


5. Ejecutar la Aplicación: Llama a ventana.mainloop(), para iniciar la aplicación y permitir que los usuarios interactúen con la GUI.(El nombre de la función no necesariamente tiene que ser ventana esa es tu elección).


Tkinter es una herramienta poderosa para crear aplicaciones de escritorio con interfaces de usuario intuitivas y visualmente atractivas. A medida que profundices en Tkinter, descubrirás que puedes personalizar y extender tus aplicaciones GUI de muchas maneras, lo que te permite crear aplicaciones útiles y atractivas en Python.


Componentes de Tkinter:


1. Ventana (‘Tk’):

   - Propósito: La ventana principal de la aplicación. Es el contenedor principal para todos los otros componentes.

   

2. Etiqueta (‘Label’):

   - Propósito: Muestra texto o imágenes.

   

3. Cuadro de Texto de Entrada (‘Entry’):

   - Propósito: Permite al usuario introducir texto o datos.

   

4. Botón (‘Button’):

   - Propósito: Activa una acción cuando se hace clic.

   

5. Cuadro de Texto (‘Text’):

   - Propósito: Permite la entrada o visualización de texto de varias líneas.

   

6. Área de Desplazamiento (‘Scrollbar’):

   - Propósito: Proporciona barras de desplazamiento para componentes como cuadros de texto.

   

7. Lista (‘Listbox’):

   - Propósito: Muestra una lista de elementos para que el usuario seleccione.

   

8. Cuadro de Verificación (‘Checkbutton’):

   - Propósito: Permite al usuario seleccionar una o más opciones de una lista.

   

9. Botón de Radio (‘Radiobutton’):

   - Propósito: Permite al usuario seleccionar una sola opción de un conjunto de opciones mutuamente excluyentes.

   

10. Cuadro de Opción (‘OptionMenu’):

   - Propósito: Proporciona una lista desplegable de opciones para que el usuario seleccione una.


11. Marco (‘Frame’):

    - Propósito: Un contenedor que agrupa otros componentes para facilitar la organización y disposición.


12. Ventana emergente (‘Toplevel’):

    - Propósito: Crea ventanas secundarias o emergentes que son independientes de la ventana principal.


13. Imagen (‘PhotoImage’):

    - Propósito: Permite la incorporación de imágenes en tu aplicación Tkinter.


14. Canvas (‘Canvas’):

    - Propósito: Proporciona un área en blanco donde puedes dibujar gráficos, figuras y más.


15. Menús (‘Menu’):

    - Propósito: Agrega barras de menú y menús desplegables a tu aplicación.


16. Barra de progreso (‘ProgressBar’):

    - Propósito: Muestra el progreso de una tarea o proceso en la aplicación.


17. Cuadro de Diálogo (‘DialogBox’):

    - Propósito: Crea ventanas de diálogo para interactuar con el usuario.


Los métodos de posicionamiento en Tkinter: pack(), grid(), y place().


1. Método pack():

- Descripción: El método pack() se utiliza para organizar los componentes de manera que se ajusten automáticamente en una ventana principal de Tkinter. Coloca los componentes uno debajo del otro en una dirección (vertical u horizontal) y ajusta automáticamente el espacio entre ellos. 


- Uso Típico: pack() se utiliza comúnmente cuando deseas que los componentes se alineen en una única dirección, ya sea vertical o horizontal, y permites que Tkinter ajuste automáticamente el espacio entre ellos.

- Ejemplo:

  etiqueta1 = tk.Label(ventana, text="Etiqueta 1")

  etiqueta2 = tk.Label(ventana, text="Etiqueta 2")

  

  etiqueta1.pack()

  etiqueta2.pack()


2. Método grid():

- Descripción: El método grid() se utiliza para organizar los componentes en una cuadrícula (filas y columnas) en una ventana principal de Tkinter. Esto te permite un control preciso sobre la ubicación y alineación de los componentes en relación con otros componentes.


- Uso Típico: grid() se utiliza cuando necesitas una disposición en forma de cuadrícula y deseas controlar la ubicación exacta de los componentes en filas y columnas.


- Ejemplo:

  etiqueta1 = tk.Label(ventana, text="Etiqueta 1")

  etiqueta2 = tk.Label(ventana, text="Etiqueta 2")

  

  etiqueta1.grid(row=0, column=0)

  etiqueta2.grid(row=0, column=1)

3. Método place():

- Descripción: El método place() se utiliza para posicionar los componentes de manera precisa en una ventana principal de Tkinter mediante coordenadas X e Y. Esto te permite un control preciso sobre la ubicación de los componentes en la ventana.


- Uso Típico: place() se utiliza cuando necesitas un control detallado y específico sobre la ubicación de los componentes en la ventana y deseas posicionarlos en coordenadas exactas.


- Ejemplo:

  etiqueta1 = tk.Label(ventana, text="Etiqueta 1")

  etiqueta2 = tk.Label(ventana, text="Etiqueta 2")

  

  etiqueta1.place(x=50, y=30)

  etiqueta2.place(x=100, y=60)

  

En resumen, la elección de pack(), grid(), o place() depende de tus necesidades de diseño. pack() es útil para diseños simples y automáticos, grid() proporciona un control detallado en una cuadrícula, y place() es útil para un posicionamiento preciso en coordenadas específicas. Puedes usar estos métodos según tus necesidades específicas para diseñar interfaces de usuario personalizadas en Tkinter.


Propiedades de Diseño de Componentes:


1. Fondo (‘bg’): Define el color de fondo del componente.


2. Tamaño (‘width’, ‘height’): Especifica el tamaño del componente en píxeles.


3. Texto (‘text’): Define el texto que se mostrará en el componente (por ejemplo, en una etiqueta o botón).


4. Fuente (‘font’): Permite especificar el tipo de fuente, tamaño y estilo del texto.


5. Color de Texto (‘fg’): Establece el color del texto del componente.


6. Borde (‘borderwidth’): Define el ancho del borde del componente.


7. Cursor (‘cursor’): Especifica el cursor del mouse que se mostrará cuando el puntero esté sobre el componente.


8. Imagen (‘image’): Permite asignar una imagen a un componente.


9. Variedad de Opciones (‘options’): Cada componente puede tener opciones específicas adicionales para personalizar su comportamiento y diseño.


Ejemplo de Uso de Propiedades de Diseño:


Resultado

Este ejemplo muestra cómo personalizar el diseño de una etiqueta, un botón y un cuadro de texto de entrada utilizando las propiedades mencionadas. Puedes ajustar estas propiedades según tus preferencias y necesidades de diseño específicas que tu requieras.

Documentación oficial de Tkinter en Python](https://docs.python.org/3/library/tkinter.html

La documentación oficial proporciona una descripción detallada de los componentes de Tkinter, métodos, ejemplos y más. Puedes explorarla para obtener información completa y detallada sobre cómo trabajar con Tkinter en tus aplicaciones de GUI de Python.



Empaquetado 


Como pasar un archivo Python de .py a .exe.


INSTRUCCIONES:

1) - PONE EN UNA CARPETA EL ARCHIVO PYTHON EN CUALQUIER LUGAR DE TU PC PERO DENTRO DEL DISCO C

2) - ABRE EL CMD

3) - ESCRIVE EN EL CMD LA DIRECCION DE TU ARCHIVO EN MINUSCULAS ANTEPONIENDO CD ESPACIO Y LA RUTA EJEMPLO:
cd C:\Users\hacke\Desktop\CARPETAS IMPORTANTES\PORTAFOLIO\calculadora_simple
//cd tiene que ir en minuscula y lo demas copiar y pegar tal cual y luego dar enter//

4) - luego de lo anterior indicado sigue los sigientes pasos...
_______________________________________________________________

#crea un ejecutable .exe con ejecucion en cmd
pyinstaller calculadora.py
_______________________________________________________________

# para un programa de ejecucion con grafica sin la pantalla cmd
pyinstaller --windowed calculadora.py
_______________________________________________________________

# comprime todos los archivos
pyinstaller --windowed --onefile calculadora.py
_______________________________________________________________

# agrega un icono
pyinstaller --windowed --onefile --icon=./img_calculadora.ico calculadora.py
_______________________________________________________________

DESCRIPCION:

# pyinstaller --> crea el ejecutable
# calculadora.py --> añade el nombre del archivo .py
# --windowed --> quita la ventana cmd del programa con grafica
# --onefile --> alinea todos los archivos para crear un solo archivo independiente
# --icon=./ --> agrega una imagen de icono pero en formato .ico es importante que sea .ico
# img_calculadora.ico --> añade el nombre de la imagen .ico
_______________________________________________________________

IMPORTANTE:
# Si el comando --windowed se añade al programa que no tiene grafica es decir 
  que se ejecuta en cmd entonces este no se ejecutara y solo se vera un pequeño pestañeo

# La imagen .ico te recomiendo que la hagas tu para que no tengas inconvenientes con las 
  imagenes de google no siempre quedan bien, por experiencia en algunas ocaciones no me las tomo
  y en otras solo me quedaban al abrir el programa pero no se miran en el programa en si como puede 
  que queden bien por eso recomiendo hacerlas uno mismo

# Adjunto una sugerencia de web que yo utilizo para que puedan convertir sus imagenes a .ico
  https://imagen.online-convert.com/es/convertir-a-ico

# El tamaño de la imagen no se cual es realmente yo la hago siempre de 200 x 200 y no me a dado inconvenientes
  las hago en photoshop

# Por ultimo al terminal el programa se encuentra en la carpeta dist

--------------------------------------------------------------------------------------------------------------
\                                             !!!OJO CON ESTO!!!                                                                                                                                                        
\    EN CASO DE NO COMPILAR TODOS LOS ARCHIVOS !!IMPORTANTISIMO!! EL           
\    PROGRAMA NESECITA DE LOS ARCHIVOS          
\    QUE QUEDAN SUELTOS EN LA CARPETA DIST PARA FUNCIONAR YA TODO 
\    COMPILADO EL PROGRAMA SE PUEDE DISTRIBUIR   
\    SOLITO SI NO COMPILAN SE DEBEN MANDAR TODOS LOS ARCHIVOS DE LA     
\   CARPETA dist                                                                                                                           
\                                                                                                            
--------------------------------------------------------------------------------------------------------------

IMPLEMENTA CODIGO COMPLETO PARA CMD
# pyinstaller --onefile --icon=./ico2.ico horario.py


IMPLEMENTA CODIGO COMPLETO PARA GRAFICA
# pyinstaller --windowed --onefile --icon=./img.ico Calculadora.py



DESCARGA AQUI EL CODIGO DEL HORARIO DE CLASES CON SU CONECCION A BASE DE DATOS COMPLETO

Comentarios