NOME DURAÇÃO
Curso de Python
Primeira Aula de Python
Como Instalar o Python no Windows
Características do Python
Recursos do Python
IDLE - Modo Interativo do Python
Instalando o PyCharm no Windows
Primeiro programa em Python
Comentários em Python
Indentação do código Python
Variáveis em Python
Características das Variáveis em Python
Nomenclatura das Variáveis em Python
Tipos de dados em Python
Variáveis do tipo Ponto Flutuante do Python
Entrada de Dados em Python
Operadores Aritméticos do Python
Módulo da Divisão em Python
Potenciação e Radiciação em Python
Operadores Relacionais do Python
Tomada de Decisão em Python
Estrutura if e else em Python
Depurando código Python
Operadores Relacionais Compostos do Python
Operadores Relacionais na Prática em Python
Operadores Lógicos em Python
Blocos de Instrução em Python
Blocos de Instrução em Python (Parte II)
Blocos de Instrução Python na Prática
Escopo de Nomes em Python
Estrutura de Atribuição Simples do Python
Atribuição Múltipla em Python
Operadores de Atribuição Compostos do Python
Atribuição Condicional em Python
Iteração em Python
Laços de Repetição do Python
Estrutura de repetição while em Python
A instrução for em Python
A função range() do Python
O for loop e a função range() do Python
Instrução break do Python
Instrução continue em Python
Estruturas de Dados Lista em Python
Lista, Pilha, Array, Set em Python
A classe list do Python
Classe list - Conceitos Avançados do Python
Funções da Classe list do Python
Iteração de Listas em Python
Fatiando Listas em Python
Incluindo, Alterando e Excluindo Elementos no Python
Ordenamento de Listas em Python
Quantidade de Itens em Python
Tuplas em Python
Operadores in e not in do Python
Operadores and, or e in do Python
Exemplo com Operador in em Python
Introdução às Strings em Python
Fatiando Strings com Python
Funções das Strings no Python
Comparação de Strings em Python
Iterando Strings em Python
Introdução aos Dicionários do Python
Dicionários na Prática com Python
Funções dos Dicionários no Python
Introdução às Funções em Python
Parâmetros de Função em Python
Parâmetros default em Python
Argumento de Função Nomeado vs Posicional em Python
Retornando Valores pelas Funções em Python

Nesta aula estudaremos a definição de depuração e como podemos depurar códigos Python com o uso da IDE PyCharm

DEPURAÇÃO

IDE PyCharm em modo de depuração com um breakpoint na primeira linha

Depuração é uma técnica de programação em que é possível manipular a execução de cada linha e verificar os valores das variáveis (instâncias).

Segundo o dicionário Aurélio, depurar significa: Procurar, detectar e corrigir erros em programa .

Hoje em dia, ferramenta para depuração de código estão presente nas IDE modernas e nos proporcionam uma forma de executar nossa aplicação passo-a-passo e ir verificando o valor das variáveis e o que nosso programa vai executando, ou seja, quais funções vão sendo invocadas.

É correto dizer que depurar um código significa a execução de cada linha vagarosamente, onde o programador é quem diz quando que determinada instrução deve ser executada. E também, a cada linha executada, é possível verificar o valor das variáveis que estão no escopo local e global

Algumas IDEs permitem a alteração do valor das variáveis e a executação de código paralelamente. Desta forma, conseguimos simular situações onde talvez, não fosse possível através do nosso programa.

A depuração é comumente utilizada para na detecção de erros e para entender o estado do programa e de suas variáveis num determinado instânte, ou numa determinada função.

Podemos dizer que é possível depurar qualquer código de qualquer linguagem, até porque, esse é um recurso atualmente considerado elementar para a correta construção de software. Algumas vezes a depuração é um recurso encontrado em determinada IDE, outras vezes, a capacidade de depuração acaba sendo uma ferramenta disponibilizada pela linguagem, isto é, a Máquina Virtual ou o Compilador da linguagem é quem disponibilizam esses recursos e capacidades.

Neste Curso de Python, estamos utilizando a IDE PyCharm e a mesma oferece-nos grande capacidade para depuração e análise interna em tempo de execução.

O RECURSO DE DEPURAÇÃO

A depuração é um recurso disponibilizado pelo compilador ou interpretador da linguagem. Portanto, nativamente, conseguimos depurar o código através da linha de comando, semelhate a forma como executamos o código.

As IDE ao implementarem os recursos de depuração estão de fato negociando com o compilador ou interpretador o local em que deve haver interrupções e todos os demais recursos.

É importante sabermos que não são as IDE que implementam a capacidade de depurar o código, elas apenas dialogam com o compilador ou interpretador e fornecem uma forma gráfica para depuração.

PRIMÓRDIOS DA DEPURAÇÃO

Todas as vezes em que utilizamos a função print() para enviar à saída padrão o valor de variáveis estamos depurando nosso código de forma primitiva. Ou seja, estamos inspecionando o valor das variáveis e o estado do programa utilizando a função print.

É comum que novas linguagens de programação não tragam a funcionalidade de depurar o código implementado, portanto, o programar é obrigado a trabalhar enviando para a saída padrão o valor dos membros que ele deseja conhecer os valores.

Linguagens como JavaScript, PHP e ASP são exemplos notáveis de linguagens que foram lançadas no mercado sem que os desenvolvedores disponibilizassem uma forma de depurar o código de forma eficiente.

PERFORMANCE

A execução em modo de depuração só deve ser executada quando necessário, até porque, a perfomance é muito inferior ao que temos com a execução normal. Por isso, só execute um código em forma de depuaração quando houver um razão para isso.

O QUE SIGNIFICA CURSOR DE EXECUÇÃO?

Cursor de execução é o termo que utilizamos para nos referirmos a linha de código em que estamos, ou melhor, na linha onde estamos.

Na imagem a seguir podemos ver a execução de um simples código. Observe na linha 9, em azul, o cursor de execução e na linha 11 podemos ver o uso de um breakpoint. É importante lembrar que o sistema de cor pode ser personalizado, portanto, não existe um padrão e não podemos nos referir ao cursor ou ao breakpoint como sendo uma linha de uma determinada cor.

IDE PyCharm com breakpoint e cursor de execução

O QUE SIGNIFICA breakpoint?

A palavra breakpoint, significa, na depuração de programas, o número da linha em que a execução do código será interrompido para o início da depuração.

Esse é um recurso permite interrompermos a execução do nosso programa num determinado ponto. Assim, podemos marcar em qual local do programa desejamos iniciar a depuração e quando o cursor de execução chegar na linha demarcada, a execução será interrompida e a IDE trará o código em que ocorreu a interrupção.

Na imagem acima, é possível ver um breakpoint na primeira linha da IDE PyCharm. Normalmente, os breakpoints são representados por uma bola vermelha no canto esquerdo [margem] dos editores de código.

O MODO DE DEPURAÇÃO

Ao executarmos um código em modo de depuração, teremos uma tela semelhante a que temos na imagem a seguir. Como podemos ver, os menus estão habilitados, até porque, estamos executando em modo de depuração.

IDE PyCharm em modo de depuração com um breakpoint e menu com as opções

OPÇÕES DE EXECUÇÃO

Normalmente desejaremos somente executar a instrução em que o cursor está posicionado, outras vezes, desejaremos depurar a função que será executada e noutras vezes, desejaremos finalizar a depuração da função e voltar ao fluxo anterior.

Pra todas essas situações há teclas de atalho que facilitam o trabalho e a verificação dos valores.

  • Shift+F10 (Run): executa o script
  • Shift+F9 (Debug): executa em modo de depuração (debug)
  • Ctrl+F5 (Rerun): executa da mesma forma que a anterior
  • Shift+Alt+F10 (Choose configuration and ru): exibe o menu que contém as configurações de execução e roda o script
  • Shift+Alt+F9 (Choose configuration and debug): exibe o menu que contém as configurações de execução e roda o script em modo de depuração
  • F8 (Step Over): executa a linha onde o cursor está
  • F7 (Step Into): entra na função e posiciona o cursor na primeira linha
  • Shift+F8(Step Out): termina a depuração da função e o cursor retorna ao local anterior
  • Shift+Alt+F8 (Force Step Over): o cursor não entra no código da função mesmo que haja um breakpoint

A DEPURAÇÃO COMO ESTUDO

Neste artigo tratamos a depuração principalmente como uma ferramenta para o desenvolvimento e correção de problemas em nossos códigos, o que de fato está correto, porém, utilizar somente para isso é não aproveitar ao máximo o poder da ferramenta.

A depuração deve ser utilizada durante toda a fase de estudo e, posteriormente, quando desejarmos entender como o interpretador do Python está lidando com determinada situação.

Em vista de que temos a disposição todas as variáveis e que podemos criar e/ou invocar funções, devemos ver a depuração como um recurso que vai muito além de simplesmente procurar por erros e sim, como uma ferramenta que devemos utilizar durante todo o estudo do desenvolvimento de software.



Tags curso, python, depuração, pycharm, blog

Comentários

comments powered by Disqus