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 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.

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")
VEJA TAMBÉM
Tags curso, python, blocos, instrução, blocos de instrução, blog
Comentários
comments powered by Disqus