Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo apresenta a Etapa 4 da série de tutoriais Trabalhar com Python no Visual Studio.
O Visual Studio fornece capacidades para gerir projetos, uma experiência avançada de edição, a Janela Interativa , e uma depuração completa para código Python. Na Etapa 4 desta série de tutoriais, utiliza o Depurador para executar o seu código passo a passo, incluindo cada iteração de um loop. No Depurador, você pode pausar seu programa sempre que certas condições forem verdadeiras. A qualquer momento quando o programa é pausado, você pode examinar todo o estado do programa e alterar o valor das variáveis. Tais ações são essenciais para rastrear bugs do programa e também fornecem ajudas úteis para seguir o fluxo exato do programa.
Na etapa 4 do tutorial, você aprenderá a:
- Execute código Python no do Depurador no Visual Studio
- Definir pontos de interrupção e condições
- Examinar o estado do programa e alterar variáveis
- Explore Depurador janelas e ações
Pré-requisitos
- Um projeto de aplicativo Python que tem um arquivo Python (.py) com código criado em Etapa 2: Escrever e executar código Python e Etapa 3: Use a janela REPL interativa deste tutorial.
Preparar o arquivo Python
Para se preparar para o exercício de depuração, siga estas etapas para atualizar seu arquivo de projeto Python para incluir código mais robusto:
Abra seu arquivo de projeto Python (.py) no editor.
Substitua o código no arquivo com o código a seguir. Esta versão do código expande a função
make_dot_stringpara que você possa examinar suas etapas discretas no depurador. Ele move oforloop para umamainfunção e, em seguida, executa-o explicitamente chamando amainfunção:from math import cos, radians # Create a string with spaces proportional to a cosine of x in degrees def make_dot_string(x): rad = radians(x) # cos works with radians numspaces = int(20 * cos(rad) + 20) # Scale to 0-40 spaces st = ' ' * numspaces + 'o' # Place 'o' after the spaces return st def main(): for i in range(0, 1800, 12): s = make_dot_string(i) print(s) main()
Iniciar depuração
Agora você está pronto para começar a verificar seu código Python atualizado no Depurador.
Confirme se o código funciona corretamente selecionando Depurar>Iniciar Depuração na barra de ferramentas ou use o F5 atalho de teclado. Esses comandos executam o código no Depurador.
O do Depurador de não deteta nenhum problema, portanto, o programa é executado com êxito. Uma janela de saída é aberta e você vê algumas iterações do padrão de onda cosseno. Selecione qualquer tecla para fechar a janela de saída.
Dica
Nas versões anteriores do Visual Studio, pode fechar automaticamente a janela de saída quando o programa termina. Selecione Ferramentas>Opções, expanda o nó de Python>Depuração e desmarque a opção Esperar por entrada quando o processo termina normalmente.
Defina um ponto de interrupção na instrução de loop
forusando um dos seguintes métodos:- Selecione na margem esquerda ao lado da linha de código.
- Clique com o botão direito na linha de código e selecione Ponto de interrupção>Inserir ponto de interrupção.
- Coloque o cursor de inserção na linha de código e selecione Depurar>Alternar ponto de interrupção (ou use o F9 atalho de teclado).
Os pontos de interrupção interrompem a execução do código em um ponto marcado para que você possa inspecionar o estado do programa. Um ponto vermelho aparece em cada linha que tem um ponto de interrupção definido.
Inicie o Depurador novamente (F5). O código em execução para o programa para na linha com o ponto de interrupção definido. Agora você pode inspecionar a pilha de chamadas e examinar variáveis para esse estado do código do programa em execução.
Visual Studio fornece muitas maneiras de observar o código do programa e dados de execução, incluindo as seguintes janelas:
- A pilha de chamadas mostra o histórico de chamadas de função e método realizadas pelo código do programa.
- As variáveis definidas que estão no escopo aparecem na janela Autos.
- A vista Locals mostra todas as variáveis que o Visual Studio encontra no escopo atual (incluindo funções), mesmo antes de serem definidas no código.
Para ver a lista completa de janelas e ações disponíveis, selecione Debug>Windows.
Você pode abrir as janelas do Depurador para ver o estado do seu programa ao encontrar um ponto de interrupção.
Usar ações do Depurador
Quando o Visual Studio interrompe a execução de código num ponto de paragem, há vários comandos que pode usar para percorrer o seu código ou executar blocos de código antes de parar novamente. Os comandos estão disponíveis em alguns locais no Visual Studio, incluindo a barra de ferramentas Depurador, o menu Depurar, o menu de contexto do editor de código acionado com o botão direito do rato e por meio de atalhos de teclado.
A barra de ferramentas Depurador na parte superior da janela do Visual Studio fornece acesso rápido aos comandos de depuração mais comuns.
A tabela a seguir resume esses comandos como eles aparecem da esquerda para a direita na barra de ferramentas:
| Ação | Atalho | Descrição |
|---|---|---|
| Continuar | F5 | Execute o código até atingir o próximo ponto de interrupção ou até a conclusão do programa. |
| Break Tudo | Ctrl+Alt+Interr. | Interrompa a execução de um programa que está em execução há muito tempo. |
| Parar de depurar | Shift+F5 | Pare o programa no ponto atual e saia do Depurador. |
| Reiniciar | Ctrl+Shift+F5 | Pare o programa no ponto atual e reinicie a execução do programa desde o início no Depurador. |
| Mostrar próxima declaração | Alt+Num+\ | Retorne para a próxima instrução a ser executada no código. Este comando ajuda você a localizar o local em seu código onde o do Depurador de está parado. |
| Entre em | F11 | Execute a próxima instrução e pare. Se a próxima instrução for uma chamada para uma função, o depurador de entra na função e para na primeira linha. |
| passo sobre | F10 | Execute a próxima instrução, incluindo fazer uma chamada para uma função (executando todo o seu código) e aplicar qualquer valor de retorno. Este comando permite-lhe ignorar facilmente funções que não precisa de depurar. |
| Saia | Shift+F11 | Execute o código até o final da função atual, em seguida, vá para a instrução de chamada e pause. Este comando é útil quando você não precisa depurar o restante da função atual. |
Siga estas etapas para trabalhar com Depurador ações em seu código Python:
Percorra a instrução de loop
forusando a ação Step Over.de revisão faz com que o do Depurador de execute a linha de código atual, incluindo qualquer função chamada, e pause imediatamente novamente. Depois de avançar, observe que a variável
iagora está definida nas janelas Locais e Autos .Step Over a próxima linha de código, que chama a função
make_dot_string.Nesse caso, Step Over faz com que o Depurador execute completamente a função
make_dot_stringe pare após o retorno da função. O do Depurador de não para dentro da função, a menos que exista um ponto de interrupção separado.Continue passando por cima do código mais algumas vezes e observe como os valores na janela Locals ou Autos mudam.
Na janela Locais ou Autos, clique duas vezes na coluna Valor de uma variável para editar o valor. Neste exemplo, altere o valor da variável
spara'Hello, Python Application'. Certifique-se de colocar o valor entre aspas simples. Selecione Inserir ou qualquer área fora do valor para aplicar as alterações.Continue a percorrer o código usando Step Into até a chamada da função
make_dot_string.Para uma função, Step Into faz com que o do Depurador de chame a função e também entre no código da função. Quando o processo de depuração está dentro de uma função, você pode examinar suas variáveis locais e percorrer seu código especificamente. Neste exemplo, a ação de entrar em move-se para a função
make_dot_string.Continue com Step Into até ao retorno da função
make_dot_string.Quando se chegar ao final do
make_dot_stringcódigo da função, a próxima etapa faz com que o Depurador volte aoforloop com o novo valor de retorno na variávels.Ao entrar novamente na instrução
print, observe que a ação Step Into na instruçãoprintnão entra nessa função. Esse comportamento ocorre porque a funçãoprintnão está escrita em Python. É código nativo dentro do tempo de execução do Python.Continue usando Step Into até que você esteja novamente entrando na função
make_dot_stringe, em seguida, use Step out e observe que o do Depurador de retorna ao loopfor.Com Step Out, o Depurador executa o restante da função e, em seguida, pausa automaticamente no código de chamada. Esta ação é útil depois de passar por alguma parte de uma função longa e você deseja terminar sua observação da função. Sair executa o restante do código ou até atingir um ponto de paragem explícito definido no código de chamada.
Continue executando o programa até que o próximo ponto de interrupção seja atingido usando Continue (F5). Como você tem um ponto de interrupção definido no loop
for, interrompe na próxima iteração.Você pode confirmar que o programa continua a ser executado observando o valor variável
sna janela Locals.
Usar condições de ponto de interrupção
Percorrer centenas de iterações de um loop pode ser tedioso, portanto, o Visual Studio permite que você adicione uma condição a um ponto de interrupção. Quando se define uma condição do ponto de interrupção, o Depurador pausa o programa no ponto de interrupção somente quando a condição é satisfeita.
As etapas a seguir mostram como definir uma condição de ponto de interrupção na instrução de loop for para que o Depurador do pause somente quando o valor da variável i exceder 1600:
Para definir a condição do ponto de interrupção, clique com o botão direito do rato no ponto de interrupção vermelho e selecione Condições ou utilize o atalho de teclado Alt+F9>C.
Na caixa de diálogo Configurações do Ponto de Interrupção, configure as seguintes definições para criar a Condição:
Defina o tipo de condição como Expressão Condicional.
Defina a avaliação da condição para que seja verdadeiro.
Insira
i > 1600como o valor da condição.Selecione Fechar.
Selecione F5 para continuar a depuração e a execução do programa. Observe que o programa executa muitas iterações antes de atingir o ponto de interrupção condicional.
Você pode confirmar se o Depurador pausa corretamente a execução do programa quando atinge o ponto de interrupção condicional. Quando a condição é satisfeita, a janela de Locais mostra o valor da variável
icomo1608.Para executar o programa até a conclusão, você pode desativar o ponto de interrupção e continuar a execução do programa.
Passe o cursor sobre o ponto vermelho e selecione Desativarou clique com o botão direito do mouse no ponto vermelho e selecione Desativar ponto de interrupção.
Selecione Continue (ou pressione F5) para executar o programa.
Quando o programa termina, o Visual Studio interrompe a sessão de depuração e retorna ao modo de edição.
Você também pode excluir um ponto de interrupção. Selecione o ponto vermelho ou clique com o botão direito do mouse no ponto e selecione Excluir ponto de interrupção. Esta ação também exclui todas as condições definidas.
Dica
Em algumas situações, como uma falha ao iniciar o próprio interpretador Python, a janela de saída Python pode fechar imediatamente após o programa terminar sem pausar nem mostrar o aviso Prima qualquer tecla para continuar. Para forçar a pausa e o prompt, adicione o argumento -i ao campo Argumentos de Execução>do Interpretador na guia Depuração. Este argumento coloca o interpretador Python no modo interativo depois que o código é executado. O programa espera que você selecione Ctrl+Z+Enter para fechar a janela.