| Server IP : 165.22.154.248 / Your IP : 216.73.217.0 [ Web Server : Apache/2.4.29 (Ubuntu) System : Linux droplet-integra 4.15.0-197-generic #208-Ubuntu SMP Tue Nov 1 17:23:37 UTC 2022 x86_64 User : www-data ( 33) PHP Version : 7.2.24-0ubuntu0.18.04.15 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, Domains : 1 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/data-avanza.bak.old1584234/filedir/3e/ee/ |
Upload File : |
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Depuración"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"La depuración es una de las herramientas más poderosas disponibles para cualquier desarrollador. En pocas palabras, se trata de ejecutar el código línea a línea, parando en momentos claves para analizar el estado de los procedimientos y las variables. Esto nos permitirá identificar y corregir errores en nuestro código que de otra forma serían mucho más difíciles de encontrar.\n",
"\n",
"De acuerdo con estadísticas reportadas por la Universidad de Cambridge, los programadores gastan en promedio la mitad del tiempo de desarrollo trabajando en la etapa de depuración de código. ¡No está mal cometer errores al programar!"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Depurando en Spyder"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Para iniciar la depuración de nuestro programa desde spyder utilizaremos la barra de tareas, dando click a la pestaña \"Depurar\" / \"Debug\".\n",
"\n",
"De igual forma, una vez iniciado el proceso, los botones azules nos permitirán movernos dentro del código, paso a paso. Los principales atajos que facilitarán esta tarea son: Ctrl + F10 para ejecutar la línea actual y Ctrl + F12 para ejecutar el código hasta su siguiente parada o finalización."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src=\"https://i.imgur.com/xYJnJLw.png\">"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Explorador de variables y breakpoints"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A continuación introduciremos dos elementos fundamentales al proceso de depuración: Los puntos de quiebre (breakpoints) y la ventana de variables (variable explorer).\n",
"\n",
"Al depurar nuestro programa, este se detendrá en la linea dónde encuentre el prier breakpoint de forma que podamos iniciar con el proceso de ejecución paso a paso. Para colocar un punto de quiebre debemos dar click sobre la barra gris a la izquierda de nuestro código, al lado del número de linea. Lo se visualizará cómo un punto rojo.\n",
"\n",
"Una vez nuestro código se encuentra en proceso de depuración, podemos ver el valor de las variables en tiempo real en la pestaña \"Variable explorer\" que se encuentra encima de la consola de spyder. Esto nos dará una intuición de lo que realmente está pasando en nuestro programa."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src=\"https://i.imgur.com/Xk7fVsO.png\">"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Introducción a la programación organizada: Módulos"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"La programación modular es una técnica utilizada para separar las funcionalidades de un programa, organizándolas en módulos independientes. Esto es bastante útil cuándo se trabaja en proyectos a gran escala ya que nos permite seccionar el código de manera que sea más fácil de utilizar y leer. Por ejemplo, es mucho mejor que tener mil declaraciones de funciones en un solo archivo!\n",
"\n",
"Adicionalmente, Python es un lenguaje OpenSource en el que sus usuarios de todo el mundo son libres de compartir sus propias funciones y módulos. Esto nos permitirá acceder y utilizar una infinidad de librerías públicas, ahorrandonos tiempo, esfuerzo y dinero."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src=\"https://i.imgur.com/sMsvbu3.png\">"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.15"
}
},
"nbformat": 4,
"nbformat_minor": 4
}