Podcast
Questions and Answers
¿Cuál es la forma correcta de desinstalar un paquete usando pip?
¿Cuál es la forma correcta de desinstalar un paquete usando pip?
Si deseas instalar paquetes desde un archivo de texto, ¿qué comando deberías utilizar?
Si deseas instalar paquetes desde un archivo de texto, ¿qué comando deberías utilizar?
¿Cuál es la longitud máxima recomendada para las líneas de código en Python según PEP 8?
¿Cuál es la longitud máxima recomendada para las líneas de código en Python según PEP 8?
¿Qué se debe incluir al inicio del documento según las pautas de PEP 8?
¿Qué se debe incluir al inicio del documento según las pautas de PEP 8?
Signup and view all the answers
¿Qué estilo se recomienda para nombrar variables y funciones en PEP 8?
¿Qué estilo se recomienda para nombrar variables y funciones en PEP 8?
Signup and view all the answers
¿Cómo se deben separar las funciones de alto nivel y definiciones de clase?
¿Cómo se deben separar las funciones de alto nivel y definiciones de clase?
Signup and view all the answers
¿Qué error se comete al utilizar una sentencia import según PEP 8?
¿Qué error se comete al utilizar una sentencia import según PEP 8?
Signup and view all the answers
¿Cuál es la principal función de una API en el desarrollo de software?
¿Cuál es la principal función de una API en el desarrollo de software?
Signup and view all the answers
¿Qué ventaja proporciona el uso de APIs en el desarrollo de aplicaciones?
¿Qué ventaja proporciona el uso de APIs en el desarrollo de aplicaciones?
Signup and view all the answers
Qué aspecto de la seguridad se debe considerar al utilizar librerías o módulos en aplicaciones que consumen APIs?
Qué aspecto de la seguridad se debe considerar al utilizar librerías o módulos en aplicaciones que consumen APIs?
Signup and view all the answers
¿Cuál de las siguientes afirmaciones sobre el desarrollo de APIs es correcta?
¿Cuál de las siguientes afirmaciones sobre el desarrollo de APIs es correcta?
Signup and view all the answers
¿Qué implica la comunicación a través de una API?
¿Qué implica la comunicación a través de una API?
Signup and view all the answers
¿Cuál es una función común de los comentarios en Python?
¿Cuál es una función común de los comentarios en Python?
Signup and view all the answers
¿Qué característica NO es esencial en la documentación técnica del software?
¿Qué característica NO es esencial en la documentación técnica del software?
Signup and view all the answers
En Python, ¿qué nivel de registro se debe ajustar para capturar información de nivel INFO y niveles inferiores?
En Python, ¿qué nivel de registro se debe ajustar para capturar información de nivel INFO y niveles inferiores?
Signup and view all the answers
¿Cuál de los siguientes NO es un uso apropiado de la biblioteca 'logging' en Python?
¿Cuál de los siguientes NO es un uso apropiado de la biblioteca 'logging' en Python?
Signup and view all the answers
¿Por qué es importante que la documentación sea creada por quienes escriben el código?
¿Por qué es importante que la documentación sea creada por quienes escriben el código?
Signup and view all the answers
¿Qué nivel de registro se utilizaría para mostrar eventos críticos que requieren atención inmediata?
¿Qué nivel de registro se utilizaría para mostrar eventos críticos que requieren atención inmediata?
Signup and view all the answers
¿Cuál de los siguientes elementos es importante incluir en la documentación de soporte comunitario?
¿Cuál de los siguientes elementos es importante incluir en la documentación de soporte comunitario?
Signup and view all the answers
¿Qué aspecto de los registros en Python se considera más crucial durante la depuración de una aplicación?
¿Qué aspecto de los registros en Python se considera más crucial durante la depuración de una aplicación?
Signup and view all the answers
¿Cuál de los siguientes tipos de errores se detecta durante la fase de desarrollo inicial en lenguajes compilados?
¿Cuál de los siguientes tipos de errores se detecta durante la fase de desarrollo inicial en lenguajes compilados?
Signup and view all the answers
¿Qué tipo de error podría ocurrir al intentar acceder a un archivo que no existe?
¿Qué tipo de error podría ocurrir al intentar acceder a un archivo que no existe?
Signup and view all the answers
Al sumar un número entero con una cadena en Python, ¿qué tipo de error se genera?
Al sumar un número entero con una cadena en Python, ¿qué tipo de error se genera?
Signup and view all the answers
¿Cuál de las siguientes estrategias es útil para identificar errores lógicos en el programa?
¿Cuál de las siguientes estrategias es útil para identificar errores lógicos en el programa?
Signup and view all the answers
¿Qué se sugiere implementar para evitar que se ingresen tipos de datos inadecuados como argumentos en una función?
¿Qué se sugiere implementar para evitar que se ingresen tipos de datos inadecuados como argumentos en una función?
Signup and view all the answers
En el contexto de errores, ¿qué significa que un código sea 'robusto'?
En el contexto de errores, ¿qué significa que un código sea 'robusto'?
Signup and view all the answers
¿Cuál es un componente esencial para detectar errores de sintaxis en lenguajes interpretados?
¿Cuál es un componente esencial para detectar errores de sintaxis en lenguajes interpretados?
Signup and view all the answers
¿Cuál de los siguientes es un posible error en la implementación lógica de una función?
¿Cuál de los siguientes es un posible error en la implementación lógica de una función?
Signup and view all the answers
¿Cuál es la función principal de la cláusula finally en el manejo de excepciones?
¿Cuál es la función principal de la cláusula finally en el manejo de excepciones?
Signup and view all the answers
¿Qué excepción se puede manejar utilizando una declaración try y except en el caso de que un archivo no se encuentre?
¿Qué excepción se puede manejar utilizando una declaración try y except en el caso de que un archivo no se encuentre?
Signup and view all the answers
¿Qué se logra al manejar múltiples excepciones en una única declaración except?
¿Qué se logra al manejar múltiples excepciones en una única declaración except?
Signup and view all the answers
¿Cuál es el propósito de la declaración try en el manejo de excepciones?
¿Cuál es el propósito de la declaración try en el manejo de excepciones?
Signup and view all the answers
Cuando se utiliza el bloque finally, ¿qué garantía se tiene sobre la ejecución de su contenido?
Cuando se utiliza el bloque finally, ¿qué garantía se tiene sobre la ejecución de su contenido?
Signup and view all the answers
¿Cuál de las siguientes afirmaciones sobre las excepciones estándar es correcta?
¿Cuál de las siguientes afirmaciones sobre las excepciones estándar es correcta?
Signup and view all the answers
¿Qué puede ocurrir si un bloque try no tiene un bloque except correspondiente?
¿Qué puede ocurrir si un bloque try no tiene un bloque except correspondiente?
Signup and view all the answers
En el contexto del manejo de excepciones, ¿qué implicaría un uso incorrecto de las declaraciones try y except?
En el contexto del manejo de excepciones, ¿qué implicaría un uso incorrecto de las declaraciones try y except?
Signup and view all the answers
¿Cuál es el propósito de permitir ingresar argumentos desde la invocación de un script en línea de comandos?
¿Cuál es el propósito de permitir ingresar argumentos desde la invocación de un script en línea de comandos?
Signup and view all the answers
En el ejemplo proporcionado, ¿qué representa 'sys.argv'?
En el ejemplo proporcionado, ¿qué representa 'sys.argv'?
Signup and view all the answers
¿Qué implicación tiene que un script de Python se ejecute en un entorno Linux o iOS con una 'shebang'?
¿Qué implicación tiene que un script de Python se ejecute en un entorno Linux o iOS con una 'shebang'?
Signup and view all the answers
Al imprimir 'sys.argv[1:]', ¿qué información se está mostrando?
Al imprimir 'sys.argv[1:]', ¿qué información se está mostrando?
Signup and view all the answers
Si un script se ejecuta sin proporcionar argumentos, ¿qué puede resultar de esto según el uso de 'sys.argv'?
Si un script se ejecuta sin proporcionar argumentos, ¿qué puede resultar de esto según el uso de 'sys.argv'?
Signup and view all the answers
¿Qué función realiza la biblioteca 'argparse' en Python?
¿Qué función realiza la biblioteca 'argparse' en Python?
Signup and view all the answers
En el código proporcionado, ¿qué hará 'parser.parse_args()'?
En el código proporcionado, ¿qué hará 'parser.parse_args()'?
Signup and view all the answers
¿Qué se debe especificar para agregar un nuevo argumento utilizando 'add_argument'?
¿Qué se debe especificar para agregar un nuevo argumento utilizando 'add_argument'?
Signup and view all the answers
En el código, ¿qué hará 'print(params.param1)' si no se proporciona un argumento 'param1' al ejecutar el script?
En el código, ¿qué hará 'print(params.param1)' si no se proporciona un argumento 'param1' al ejecutar el script?
Signup and view all the answers
Cuando se llama a un script de Python que utiliza 'argparse', ¿cuál es la forma correcta de pasar el argumento 'param1'?
Cuando se llama a un script de Python que utiliza 'argparse', ¿cuál es la forma correcta de pasar el argumento 'param1'?
Signup and view all the answers
¿Cuál es la principal función de un entorno virtual en Python?
¿Cuál es la principal función de un entorno virtual en Python?
Signup and view all the answers
Al crear un entorno virtual en Windows, ¿cuál de las siguientes secuencias de comandos es correcta para activarlo?
Al crear un entorno virtual en Windows, ¿cuál de las siguientes secuencias de comandos es correcta para activarlo?
Signup and view all the answers
¿Qué se requiere hacer para desactivar un entorno virtual una vez activado?
¿Qué se requiere hacer para desactivar un entorno virtual una vez activado?
Signup and view all the answers
¿Cuál es el propósito principal de utilizar 'virtualenvwrapper' junto con 'virtualenv'?
¿Cuál es el propósito principal de utilizar 'virtualenvwrapper' junto con 'virtualenv'?
Signup and view all the answers
¿Qué comando se utilizaría para instalar las dependencias de un proyecto desde un archivo de requerimientos una vez activado el entorno virtual?
¿Qué comando se utilizaría para instalar las dependencias de un proyecto desde un archivo de requerimientos una vez activado el entorno virtual?
Signup and view all the answers
¿Cuál es la principal función de pythonw.exe en comparación con python.exe?
¿Cuál es la principal función de pythonw.exe en comparación con python.exe?
Signup and view all the answers
¿Cuál de las siguientes afirmaciones es correcta respecto a la ejecución de programas en terminal?
¿Cuál de las siguientes afirmaciones es correcta respecto a la ejecución de programas en terminal?
Signup and view all the answers
¿En qué situación es preferible utilizar la extensión .pyw en lugar de .py?
¿En qué situación es preferible utilizar la extensión .pyw en lugar de .py?
Signup and view all the answers
Qué característica de python.exe limita la ejecución de otros programas .py?
Qué característica de python.exe limita la ejecución de otros programas .py?
Signup and view all the answers
¿Cuál es una desventaja de utilizar la extensión .py para un programa que necesita ejecutar tareas en segundo plano?
¿Cuál es una desventaja de utilizar la extensión .py para un programa que necesita ejecutar tareas en segundo plano?
Signup and view all the answers
¿Cuál es el propósito de usar el comando 'cd' antes de crear un ejecutable con Pyinstaller?
¿Cuál es el propósito de usar el comando 'cd' antes de crear un ejecutable con Pyinstaller?
Signup and view all the answers
¿Qué comando se ejecuta para crear un archivo ejecutable a partir de un script de Python llamado 'hello.py'?
¿Qué comando se ejecuta para crear un archivo ejecutable a partir de un script de Python llamado 'hello.py'?
Signup and view all the answers
¿Qué sucede después de ejecutar el comando 'pyinstaller --onefile hello.py'?
¿Qué sucede después de ejecutar el comando 'pyinstaller --onefile hello.py'?
Signup and view all the answers
Después de crear el ejecutable, ¿dónde es probable que se encuentren los archivos creados por Pyinstaller?
Después de crear el ejecutable, ¿dónde es probable que se encuentren los archivos creados por Pyinstaller?
Signup and view all the answers
¿Qué debe hacer un usuario para asegurar que el comando 'pip install pyinstaller' funcione correctamente?
¿Qué debe hacer un usuario para asegurar que el comando 'pip install pyinstaller' funcione correctamente?
Signup and view all the answers
¿Cuál es la principal función de un sistema de control de versiones?
¿Cuál es la principal función de un sistema de control de versiones?
Signup and view all the answers
¿Cuál de las siguientes características distingue un VCS local de uno centralizado?
¿Cuál de las siguientes características distingue un VCS local de uno centralizado?
Signup and view all the answers
¿Qué problema intentan resolver los sistemas de control de versiones distribuidos?
¿Qué problema intentan resolver los sistemas de control de versiones distribuidos?
Signup and view all the answers
¿Cuál de los siguientes ejemplos es un sistema de control de versiones centralizado?
¿Cuál de los siguientes ejemplos es un sistema de control de versiones centralizado?
Signup and view all the answers
¿Qué limitación tiene el método de control de versiones local que se basa en copiar archivos manualmente?
¿Qué limitación tiene el método de control de versiones local que se basa en copiar archivos manualmente?
Signup and view all the answers
¿Cuál es la función principal de un VCS como Git en comparación con otros sistemas de control de versiones?
¿Cuál es la función principal de un VCS como Git en comparación con otros sistemas de control de versiones?
Signup and view all the answers
¿Cuál de las siguientes afirmaciones sobre los sistemas de control de versiones es incorrecta?
¿Cuál de las siguientes afirmaciones sobre los sistemas de control de versiones es incorrecta?
Signup and view all the answers
¿Por qué un sistema de control de versiones centralizado fue una solución común en el pasado?
¿Por qué un sistema de control de versiones centralizado fue una solución común en el pasado?
Signup and view all the answers
¿Cuál es la función principal del área de preparación en Git?
¿Cuál es la función principal del área de preparación en Git?
Signup and view all the answers
¿Qué significa que un archivo se encuentre en estado 'modificado' en Git?
¿Qué significa que un archivo se encuentre en estado 'modificado' en Git?
Signup and view all the answers
¿Cuál de las siguientes afirmaciones acerca de Git y GitHub es correcta?
¿Cuál de las siguientes afirmaciones acerca de Git y GitHub es correcta?
Signup and view all the answers
¿Cuál de las siguientes operaciones en Git requiere conexión a Internet?
¿Cuál de las siguientes operaciones en Git requiere conexión a Internet?
Signup and view all the answers
En el flujo de trabajo básico de Git, ¿qué acción sigue a la preparación de los archivos?
En el flujo de trabajo básico de Git, ¿qué acción sigue a la preparación de los archivos?
Signup and view all the answers
¿Qué garantiza Git para evitar la pérdida de información durante la transmisión?
¿Qué garantiza Git para evitar la pérdida de información durante la transmisión?
Signup and view all the answers
¿Cuál es uno de los estados principales que un archivo puede tener en Git?
¿Cuál es uno de los estados principales que un archivo puede tener en Git?
Signup and view all the answers
¿Qué indica la acción de clonar un repositorio en Git?
¿Qué indica la acción de clonar un repositorio en Git?
Signup and view all the answers
¿Cuál es el propósito del directorio de trabajo en un proyecto de Git?
¿Cuál es el propósito del directorio de trabajo en un proyecto de Git?
Signup and view all the answers
¿Qué modalidad de repositorios ofrece GitHub de manera gratuita?
¿Qué modalidad de repositorios ofrece GitHub de manera gratuita?
Signup and view all the answers
Cuál de las siguientes opciones describe correctamente la forma de utilizar la función next() en Python 3?
Cuál de las siguientes opciones describe correctamente la forma de utilizar la función next() en Python 3?
Signup and view all the answers
Qué excepción se genera al intentar usar el método .next() con un generador en Python 3?
Qué excepción se genera al intentar usar el método .next() con un generador en Python 3?
Signup and view all the answers
Cómo se comporta Python 2 respecto a la comparación de tipos diferentes?
Cómo se comporta Python 2 respecto a la comparación de tipos diferentes?
Signup and view all the answers
Cuál de las siguientes declaraciones sobre las diferencias entre Python 2 y Python 3 es correcta?
Cuál de las siguientes declaraciones sobre las diferencias entre Python 2 y Python 3 es correcta?
Signup and view all the answers
Cuál es el resultado de intentar realizar la comparación 1 < '1' en Python 3?
Cuál es el resultado de intentar realizar la comparación 1 < '1' en Python 3?
Signup and view all the answers
¿Cuál es una diferencia clave en la declaración print entre Python 2 y Python 3?
¿Cuál es una diferencia clave en la declaración print entre Python 2 y Python 3?
Signup and view all the answers
¿Qué operación permite simular el comportamiento de división de Python 3 en Python 2?
¿Qué operación permite simular el comportamiento de división de Python 3 en Python 2?
Signup and view all the answers
¿Cuál es el resultado de la operación 1/2 en Python 2?
¿Cuál es el resultado de la operación 1/2 en Python 2?
Signup and view all the answers
¿Qué método para iterar diccionarios ha sido eliminado en Python 3?
¿Qué método para iterar diccionarios ha sido eliminado en Python 3?
Signup and view all the answers
¿Qué función se utiliza para imprimir en Python 3?
¿Qué función se utiliza para imprimir en Python 3?
Signup and view all the answers
¿Qué resultado se obtendrá al usar 1//2 en Python 3?
¿Qué resultado se obtendrá al usar 1//2 en Python 3?
Signup and view all the answers
¿Qué implica importar el módulo future en Python 2?
¿Qué implica importar el módulo future en Python 2?
Signup and view all the answers
En Python 2, ¿qué método se utiliza para obtener solo las claves de un diccionario?
En Python 2, ¿qué método se utiliza para obtener solo las claves de un diccionario?
Signup and view all the answers
Study Notes
Pip: Sistema de gestión de paquetes para Python
- Pip es un sistema de gestión de paquetes utilizado para instalar y administrar paquetes de software escritos en Python.
- Pip es un acrónimo que se interpreta como Pip Installer Package or Pip Installer Python.
Instalación y desinstalación de paquetes
- Para instalar un paquete, usa el comando
pip install
seguido del nombre del paquete.- Ejemplo:
pip install beautifulsoup4
- Ejemplo:
- Para desinstalar un paquete, usa el comando
pip uninstall
seguido del nombre del paquete.- Ejemplo:
pip uninstall beautifulsoup4
- Ejemplo:
- Para instalar paquetes en masa, crea un archivo
requirements.txt
con una lista de paquetes y ejecutapip install -r requirements.txt
. - Para instalar un paquete para una versión específica de Python, usa
pip3 install
seguido del nombre del paquete.- Ejemplo:
pip3 install BeautifulSoup4
- Ejemplo:
Actualización de Pip
- Para actualizar Pip y Python, ejecuta el comando
python -m pip install --upgrade pip
. - Se recomienda ejecutar este comando cada vez que se lanza una nueva versión estable de Python.
Instalación de paquetes sin conexión a internet
- Para instalar paquetes sin conexión a internet:
- Descarga los archivos del módulo deseado.
- Encuentra el archivo
setup.py
dentro de la carpeta de archivos descargados. - Abre la terminal (como administrador) y dirígete a la carpeta donde se encuentran los archivos descargados.
- Ejecuta el comando
python setup.py install
.
Gestión de dependencias de proyectos
- Usa el módulo
pipreqs
para gestionar las dependencias de tu proyecto. - Instala
pipreqs
conpip install pipreqs
. - Ejecuta el comando
pipreqs "ruta del proyecto"
para generar un archivorequirements.txt
.
PEP 8: Guía de Estilo para Código Python
- Es importante adoptar estándares de estilo en programación, especialmente en Python, donde la indentación define bloques de código.
- La comunidad de Python desarrolló la PEP 8 para guiar el estilo de código Python, disponible para consulta.
- La PEP 8 recomienda:
- Usar 4 espacios por nivel de indentación.
- Limitar las líneas a un máximo de 79 caracteres.
- Separar funciones y clases de alto nivel con 2 líneas en blanco.
- Usar codificación ASCII o UTF-8.
- Un
import
por cada módulo a importar. - Ordenar las sentencias
import
al inicio del documento, agrupando:- Módulos estándar
- Módulos de terceros
- Librerías locales
- Evitar espacios extra dentro de paréntesis, corchetes, llaves o antes de comas.
Estilos para Nombres
-
Funciones: minúsculas separadas por guiones bajos (snake_case), ej.
function
,my_function
. -
Variables: minúsculas separadas por guiones bajos, ej.
x
,var
,my_variable
. -
Clases: CamelCase (inicio de cada palabra en mayúscula), ej.
Model
,MyClass
. -
Métodos de Clases: minúsculas separadas por guiones bajos, ej.
class_method
,method
. -
Módulos: minúsculas con guiones bajos, ej.
module.py
,my_module.py
. -
Paquetes: minúsculas sin guiones bajos, ej.
package
,mypackage
.
API (Interfaz de Programación de Aplicaciones)
- Es un conjunto de definiciones y protocolos que se utilizan para crear e integrar el software de aplicaciones.
- Permiten la comunicación entre aplicaciones y servicios sin necesidad de conocer su implementación interna.
- Simplifican el desarrollo de aplicaciones, ofreciendo flexibilidad en el diseño e impulsando la innovación.
- Son comunes en el desarrollo de rutinas o aplicaciones que usan APIs para comunicarse o interactuar con otros servicios.
- Se debe considerar que las librerías o módulos utilizados en aplicaciones son herramientas físicas que pueden causar daños potenciales.
- Mientras que la creación de APIs no se cubre en este curso, consumir APIs de terceros para rutinas es una práctica habitual que debe tomarse en serio.
Documentación de Software
- La documentación de código es crucial para el desarrollo de software.
- La documentación debe ser sencilla y realizada por los autores del código.
- En Python, los comentarios (#) ayudan a:
- Planificar la estructura del código
- Indicar la sección en la que se trabaja
- Explicar algoritmos
- Proporcionar información legal
- Identificar al autor del script
- Describir funciones
Documentación Técnica
- La documentación técnica conecta el código con el lenguaje humano.
- Es utilizada en repositorios como GitHub, frameworks y librerías.
- Los elementos clave en la documentación técnica son:
- Descripción concisa del problema que resuelve el software.
- Licencia de distribución del software.
- Ejemplo de funcionamiento del código.
- Instrucciones de instalación.
- Enlaces a soporte comunitario, listas de correo, foros, etc.
- Enlace al sistema de seguimiento de errores (si lo tiene).
- Enlace al código fuente para descarga.
Registro en Python
- El registro facilita la depuración de aplicaciones al identificar la fuente de errores.
- Python proporciona la librería logging para un sistema de registro simple y potente.
- La librería logging se importa y se inicializa con el nombre del archivo de registro y el nivel de registro.
- Se pueden configurar cinco niveles de registro: DEBUG, INFO, WARNING, ERROR y CRITICAL.
- El nivel de registro (como INFO en este caso) determina qué tipo de registros se capturan.
Tipos de Errores en Desarrollo de Software
- Los errores de sintaxis se producen debido a una sintaxis incorrecta y suelen detectarse durante la fase de desarrollo inicial.
- Los errores lógicos ocurren debido a una implementación lógica incorrecta y son más difíciles de rastrear.
- Los errores en tiempo de ejecución se producen cuando no se consideran todos los casos posibles y pueden relacionarse con factores externos.
Excepciones en Python
- Las excepciones son problemas que ocurren durante la ejecución de un programa y generalmente se producen por datos o instrucciones que no coinciden con el funcionamiento del programa.
- El manejo de excepciones permite crear aplicaciones robustas y tolerantes a fallas.
Manejo de Excepciones con try y except
- En Python, las declaraciones try y except se utilizan para controlar las excepciones.
- El bloque try contiene el código que podría generar una excepción.
- El bloque except se ejecuta si ocurre una excepción dentro del bloque try.
Excepciones Estándar
- Existen excepciones estándar como ArithmeticError, OverflowError e ImportError.
Manejo de Múltiples Excepciones
- Se pueden manejar múltiples excepciones a la vez mediante la agrupación de las excepciones estándar en el bloque except.
Clausula finally
- La cláusula finally se utiliza para limpiar recursos, como cerrar archivos, independientemente de si ocurre una excepción o no.
- Se ejecuta después del bloque try o except.
Scripts de línea de comandos con argumentos
- Los scripts que se ejecutan desde la línea de comandos permiten una interacción más nativa con el entorno de trabajo.
- Los argumentos de entrada se pueden utilizar para personalizar el comportamiento de los scripts.
- La variable
sys.argv
guarda una lista de cadenas, donde el primer elemento es el nombre del script y los siguientes son los argumentos proporcionados. - Para acceder a los argumentos, se puede utilizar el slice
sys.argv[1:]
. - La shebang
#!/usr/bin/env python
es necesaria en sistemas Linux o iOS para indicar al sistema cómo ejecutar el script.
Librería argparse
en Python
- La librería
argparse
se utiliza para analizar y manejar argumentos pasados a los scripts de Python desde la línea de comandos. -
argparse
permite a los desarrolladores definir los argumentos que un programa espera como entrada. - Usando
argparse
, puedes especificar los nombres, tipos y descripciones de los argumentos. - Esto facilita la creación de un script que se puede ejecutar desde la línea de comandos con diferentes configuraciones.
- En el ejemplo proporcionado, la línea
parser.add_argument("-p1", dest="param1", help="parámetro 1")
define un argumento llamado-p1
que se asignará a la variableparam1
. - La opción
help
establece una breve descripción de la función del argumento. - Finalmente,
parser.parse_args()
recopila y analiza los argumentos pasados a través de la línea de comandos y los almacena en un objeto llamadoparams
. - El código utiliza
print(params.param1)
para acceder al valor del argumento-p1
, que ahora está almacenado en la variableparam1
. - La librería
argparse
es una adición útil para crear scripts de Python que pueden recibir entrada de la línea de comandos y proporcionar una mejor experiencia de usuario.
Entornos Virtuales en Python
-
Aislamiento: Es recomendable aislar el proyecto a nivel de módulos y librerías instaladas, para evitar conflictos con otros proyectos o el ambiente global del sistema.
-
Virtualenv: Permite crear un espacio aislado para ejecutar proyectos Python, similar a una "sandbox".
-
Sandboxie (Windows): Para un aislamiento total del proyecto, se puede instalar una sandbox como Sandboxie.
-
virtualenvwrapper: Proporciona funcionalidades adicionales para trabajar con entornos virtuales, facilitando la creación, gestión y activación de los mismos.
-
Instalación de virtualenv y virtualenvwrapper:
-
Linux/Mac:
-
$ virtualenv env
Crea el entorno virtual. -
$ source env/bin/activate
Activa el entorno virtual. -
(venv) $ pip install -r requirements.txt
Instala las dependencias del proyecto.
-
-
Windows:
-
> virtualenv venv
Crea el entorno virtual. -
Forma 1:
venv\Scripts\activate
Activa el entorno virtual. -
Forma 2:
-
cd venv\Scripts
Navega a la carpeta de scripts del entorno virtual. -
activate
Activa el entorno virtual.
-
-
-
-
Activación del entorno virtual: Con el entorno virtual activado, se pueden instalar las dependencias del proyecto mediante
pip install -r requirements.txt
. -
Desactivación del entorno virtual:
deactivate
desactiva el entorno virtual, volviendo al ambiente global del sistema.
### Extensiones de archivos Python
- Los programas Python pueden tener dos extensiones: .py y .pyw.
- La extensión .py es la más común.
- No hay diferencia al ejecutar archivos .py o .pyw en IDLE.
- Python.exe ejecuta archivos .py, creando una ventana de terminal para interactuar con el usuario.
- Pythonw.exe ejecuta archivos .pyw, sin crear una ventana de terminal.
- Utilizar .pyw es adecuado si el programa gestiona su propia ventana de interfaz de usuario o no requiere interacciones con el usuario.
- En otros casos, es mejor usar la extensión .py.
Ejecución de archivos Python
- Python.exe ejecuta programas de forma síncrona, lo que significa que un nuevo programa .py solo se puede ejecutar después de finalizar el programa anterior.
- Pythonw.exe ejecuta programas de forma asíncrona, permitiendo ejecutar varios programas en paralelo.
Instalación de Pyinstaller
- Para instalar Pyinstaller, abre el símbolo del sistema de Windows y escribe
pip install pyinstaller
. - Presiona
Enter
para ejecutar el comando.
Guardar el script de Python
- Guarda tu script de Python en la ubicación deseada.
- Por ejemplo:
C:\Users\Ron\Desktop\MyPython\hello.py
.
Crear el ejecutable
- Abre el símbolo del sistema y navega a la carpeta donde se encuentra el script de Python.
- Por ejemplo:
cd C:\Users\Ron\Desktop\MyPython
. - Usa el siguiente comando para crear el ejecutable:
pyinstaller --onefile pythonScriptName.py
. - Reemplaza
"pythonScriptName.py"
con el nombre de tu script. - Por ejemplo:
pyinstaller --onefile hello.py
.
Encontrar el ejecutable
- El ejecutable se crea en una carpeta llamada
dist
dentro de la carpeta donde se encuentra el script.
Ejecutar el ejecutable
- Haz doble clic en el archivo ejecutable para ejecutar tu programa.
- Puedes encontrar más información sobre Pyinstaller en el manual de Pyinstaller.
Control de Versiones
- Es la gestión de los cambios realizados en un producto o configuración.
- Cada cambio crea una nueva versión, revisión o edición del producto.
- Un sistema de control de versiones (VCS) registra los cambios en archivos para recuperar versiones anteriores.
- Los VCS se pueden usar con cualquier tipo de archivo, no solo con código fuente.
Tipos de Control de Versiones
-
Locales: Copiar archivos a otro directorio con fecha y hora.
- Sencillo pero propenso a errores.
-
Centralizados: Un servidor central contiene todos los archivos versionados y los clientes descargan desde allí.
- Ejemplos: CVS, Subversion, Perforce.
-
Distribuidos: Cada cliente tiene una copia completa del repositorio.
- Ejemplos: Git, Mercurial, Bazaar, Darcs.
- Si un servidor deja de funcionar, cualquier cliente puede restaurarlo.
Git
- Sistema de control de versiones distribuido y de código abierto.
- Permite guardar, gestionar y navegar por el historial de cambios de un proyecto.
- Disponible para Windows, Ubuntu (Linux) y Mac.
- Permite trabajar sin conexión a internet.
- No se pierde información durante la transmisión ni se corrompen archivos.
Estados de los Archivos en Git
- Confirmado (committed): Datos almacenados en la base de datos local.
- Modificado (modified): Archivo modificado pero no confirmado.
- Preparado (staged): Archivo modificado listo para ser confirmado en la siguiente confirmación.
Secciones de un Proyecto Git
-
Directorio de Git: Almacena metadatos y la base de datos de objetos.
- Se copia al clonar un repositorio.
-
Directorio de Trabajo: Copia de una versión del proyecto.
- Se saca de la base de datos comprimida del directorio de Git.
- Área de Preparación: Almacena información sobre los cambios que se incluirán en la próxima confirmación.
Flujo de Trabajo Básico en Git
- Modificar archivos en el directorio de trabajo.
- Preparar los archivos añadiéndolos al área de preparación.
- Confirmar los cambios (guardar el estado actual en el directorio de Git).
Instalación de Git
- Consultar la guía de instalación de Git para su sistema operativo.
Uso de Git
- Primeras Configuraciones: Personalizar el uso de Git.
- Obtener Ayuda: Documentación y tutoriales disponibles.
- Clonar un Repositorio: Obtener una copia del proyecto desde otro sistema.
Diferencia entre Git y GitHub
-
Git: Sistema de control de versiones.
- Administra el código fuente de un proyecto.
-
GitHub: Servicio de alojamiento de repositorios Git.
- Permite crear repositorios públicos y privados.
- Los repositorios públicos son gratuitos, los privados requieren una cuenta comercial.
Diferencias entre Python 2 y Python 3
-
Sentencia print: En Python 2,
print
es una sentencia, por lo que no se necesitan paréntesis. En Python 3,print
es una función, por lo que se requieren paréntesis. -
División de números enteros: En Python 2, la división entre números enteros devuelve un resultado entero. En Python 3, la división entre enteros produce un resultado de punto flotante.
-
Módulo future: Este módulo permite a los usuarios usar características nuevas de Python en versiones anteriores de Python. Esto permite a los desarrolladores adaptar código de Python 2 a la sintaxis de Python 3.
-
Iterar sobre diccionarios: En Python 2, podemos usar
iteritems()
oitems()
para iterar sobre las claves-valor de un diccionario. En Python 3, soloitems()
funciona. Los métodositerkeys()
eitervalues()
no existen en Python 3, se usankeys()
yvalues()
en su lugar. -
Función next() y método .next(): En Python 2, la función
next()
y el método.next()
se pueden usar para obtener el siguiente elemento de un iterador. En Python 3, solo la funciónnext()
funciona. -
Comparación entre tipos: Python 2 permitía la comparación entre tipos diferentes. Python 3 es más estricto y lanza una excepción
TypeError
si se intenta comparar tipos incompatibles.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Description
Este cuestionario aborda el uso de Pip, el sistema de gestión de paquetes para Python. Aprenderás a instalar, desinstalar y actualizar paquetes utilizando comandos específicos. También se cubrirá la gestión de dependencias a través de un archivo 'requirements.txt'.