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

Os blocos de instrução fazem parte de qualquer código Python como também, organizando o escopo de variáveis de funções.

BLOCO DE INSTRUÇÃO

Bloco de instrução é o conjunto das instrução que estejam num mesmo nível de indentação, mesmo nível hierárquico.

A imagem demonstra um trecho de código Python em que todas as instruções estão no mesmo bloco de instrução, o bloco de instrução global, o bloco de instrução a nível de aqruivo.

A imagem acima mostra um trecho de código em que todas as instrução de um arquivo estão contidas no bloco global. Na imagem a seguir, temos um código semalhante a imagem anterior, porém, foi adicionado uma instrução if e dentro desta, foram adicionadas várias linhas e todas estas estão num segundo bloco de instrução, o bloco de instrução da instrução if e só serão executados caso a avaliação da instrução if seja verdadeira.

A imagem demonstra um trecho de código Python onde há 2 blocos de instrução. O primeiro bloco está no nível global, no nível de arquivo. O segundo bloco, delineado com um retângulo vermelho, exibe outro bloco que só será executado caso a instrução if seja verdadeira.

Programas em Python podem conter centenas de linhas. É comum em toda aplicação que, códigos que desempenham determinada ação possuam a mesma quantidade de espaços, isto é, tenham a mesma indentação.

A linguagem Python oferece algumas notações para delimitarmos, ou melhor, definirmos, o que chamamos de blocos de instrução ou somente: blocos. Um conjunto de linhas marcadas com comentários também formam blocos, porém, blocos de de comentário. Como estudamos, nossa aplicação quando executada, ignora qualquer linhas marcada como sendo comentários. Do contrário, todo conjunto de linhas que estejam indentadas estarão formando um bloco - um bloco de instrução e que será executado linha-a-linha.

A principal características dos blocos, é que estes serão executados por inteiro, salvo nas vezes em que usarmos uma instrução para a interromper o fluxo normal.

O Python diferencia um bloco de instrução de outro através da indentação, isto é, do espaçamento a contar da margem esquerda do vídeo. Por isso temos que a linguagem Python, nos obriga a trabalharmos de maneira organizada - organizando os blocos em níveis hierarquicos diferentes, o que melhora a legibilidade e diminui a quantidade de linhas e caracteres utilizados.

DEFININDO BLOCOS

Vamos fazer um exemplo utilizando 2 blocos de instrução. O primeiro bloco estará rente a margem esquerda do vídeo, enquanto o segundo, estará 4 espaçamentos da margem.

#coding: utf-8

print("Nível 0. Este código está rente a margem do vídeo.")

var = 10
if(var == 10):
    print("Estamos no bloco 1, isto é, a 4 espaçamentos da margem.")
    print("Essa é a segunda linha do bloco 'if'. ")

print("Agora, voltamos para o bloco principal do programa.")

No exemplo acima, utilizamos 2 blocos de instrução. O primeiro bloco, que podemos dizer, o bloco de instrução principal, é a indentação rente a margem esquerda, ou melhor, corresponde as linhas que não possuem indentação.

O segundo bloco de instrução, é o bloco que está a 4 espaços da margem esquerda e este só será executado nas situações em que a instrução if for verdadeira.

NOMES

É comum chamarmos de nome toda e qualquer declaração de variável, seja ela uma instrução, classe, variável, constante e etc.

Todo nome pertencerá, por definição, ao escopo onde foi declarado, podendo ser acessada somente, em níveis superiores, mas nunca em níveis inferiores da hierarquia formada com a indentação. Até porque, quando o cursor de execução volta ao nível inferior, todos os nomes declarados nas hierarquias acima, serão desalocados da memória e por conseguinte, não poderão ser acessados e todos valores ali definidos serão removidos da memória.

HIERARQUIA

Os blocos de instrução constroem hierarquias e estas, podem ser reconhecidas visualmente, até porque, níveis hierarquicos diferentes, estarão a distâncias diferentes da margem esquerda do editor.

Todo bloco é único e será executado plenamente após o cursor iniciar sua execução. Nomes declarados dentro de blocos, serão desalocados da memória quando estes tiverem sua execução finalizada e, todo bloco contido dentro de outro, terá visibilidade restrita a todos os nomes ali definidos.

A seguir, temos um código que exemplifica o uso de vários blocos de instrução.

#coding: utf-8

#bloco 1
#bloco 1
#bloco 1
    #bloco 2
    #bloco 2
    #bloco 2
        #bloco 3
        #bloco 3
        #bloco 3
        #bloco 3
    #bloco 4
    #bloco 4
    #bloco 4
    #bloco 4
#bloco 1
#bloco 1
#bloco 1

No código acima, utilizamos 3 níveis hierarquicos, porém, utilizamos 4 blocos diferentes, mesmo que hierarquicamente, temos somente 3 níveis.

O bloco 2 e o bloco 4 estão, hierarquicamente, no mesmo nível. Porém, após a execução do bloco 2, todos os nomes utilizados dentro deste serão desalocados da memória e assim, quando o bloco 4 for executado, não será possível enxergar nomes utilizados no bloco 2!

Todas as vezes que o cursor de execução do programa retorna um nível da hierarquia, ou seja, volta para o bloco de instrução que contém as instruções que estava sendo executadas, o bloco que estava sendo executado é desalocado, junto a todos os nome ali declarados.

EXEMPLO FEITO EM AULA

#coding: utf-8
if(True):
  print("Imprime um texto")

  print("Imprime um texto")
  print("Imprime um texto")
  print("Imprime um texto")


if(False):
    print("Não irá imprimir")
    print("Não irá imprimir")
    print("Não irá imprimir")
    print("Não irá imprimir")
    print("Não irá imprimir")


Tags curso, python, blocos, instrução, blocos de instrução, blog

Comentários

comments powered by Disqus