Introdução à programação e aos algoritmos

João Araujo Ribeiro · Capítulo 28 de 103

Páginas do PDF

Introdução à programação e aos algoritmos

2.6.1 Identificadores em Python

Uma vez que você tenha decidido qual formato usar para os nomes de suas variáveis e constantes, use o mesmo para todos os

nomes. Isso cria uma unidade em seu programa e mostra seu estilo de programação. Os programadores de determinada linguagem

de programação podem adotar um padrão informal de nomes. Fica a seu critério seguir ou não a maioria. Nada impede que você

mude o formato entre programas diferentes, mas dentro de um mesmo programa, não mude seu estilo.

Existe uma tendência atual de considerar o estilo CamelCase mais “elegante”, porém um estudo mostrou que o estilo snake

permite uma maior rapidez na identi cação de nomes dentro de um programa, sendo, portanto, mais indicado para novatos em

programação[SM10].

 

EXERCÍCIO 2.8

Reescreva de forma correta os seguintes identi cadores:

1. duas+palavras

2. 123var

3. campo minado

4. var?

5. Número

 

2.6.1 IDENTIFICADORES EM PYTHON

Em Python, os nomes, ou identificadores das variáveis, são sensíveis às letras maiúsculas e minúsculas, isto é, Python diferencia se você escreve o nome de uma variável com letra maiúscula ou minúscula. A expressão usada em inglês para isso é case sensitive. Esta expressão não tem uma tradução direta em português. Alguns usam sensível ao caso, em um aportuguesamento que pode confundir, ou sensível à capitalização, que também confunde com outra palavra em português que não tem o mesmo sentido. De qualquer forma, isto quer dizer que os identificadores

umNomeQualquer,

UmNomeQualquer e

UMNomeQualquer

representam três entidades diferentes em Python.

Dica 2.8 – Não use nomes cuja única diferença seja o uso de letras maiúsculas e minúsculas.

 

Apesar de muitas linguagens fazerem essa distinção, não é uma boa prática usar identi cadores de entidades distintas cuja única

diferença seja a caixa das letras. Uma convenção usada em algumas linguagens é não usar letras maiúsculas para nomes de

variáveis. Mas isso não é su ciente. Ao usar palavras iguais, diferenciadas apenas pelo uso do tipo de letras, você será obrigado a se

lembrar sempre da entidade que está sendo manipulada. A possibilidade de erro aumenta e é melhor evitar essa possível confusão.

Em Python, ao atribuir com o sinal = um valor qualquer a um identificador de variável,

x = 1;

você está criando um objeto na memória com o valor 1 e x é uma referência a esta região da memória. Um identificador é uma referência a um valor; a representação mais próxima seria uma referência para a localização do valor 1 na memória.

 

Se você em seguida atribui o valor 2 a x:

x = 2;

Python abandona a antiga referência a 1 e cria uma nova, indicando o valor 2:

 

Aqui há uma sutileza. Note que Python não substituiu o valor 1 pelo valor 2 na memória. Criou outra

região de memória, escreveu ali o valor 2 e fez x referenciar esta nova região, deixando a antiga região de memória sem nenhuma referência.

Quando um objeto na memória fica sem nenhuma referência, a memória que o objeto ocupa é

devolvida para o sistema, que pode reutilizá-la. O objeto assim desaparece de vez da memória. Esse mecanismo é conhecido como coleta de lixo. Para Python, toda memória sem referência é considerada lixo e será devolvida ao sistema como memória livre para ser reutilizada. Ao criar uma nova variável y atribuindo x à mesma,

y = x;

os dois referenciam o mesmo objeto na memória:

Se, em seguida, você atribui novo valor a x:

x = 3;

Python cria um novo objeto na memória e faz x apontar para esse objeto:

 

Como pode ser notado, para todos os efeitos, o resultado até aqui é exatamente como se houvesse

caixas para os valores e que substituímos simplesmente os valores dentro dessas caixas (veja dica 2.9), mas é importante entender esse funcionamento de Python, pois não será assim para toda variável. Algumas vezes será importante entender que identificadores são referências a objetos dentro da memória, e que esses objetos não podem ser modificados.

Dica 2.9 – Identi cadores em outras linguagens.

Linguagens como C de nem o conceito de “variável” de forma semelhante a Python, porém sua execução na memória se faz de

maneira diferente. Podemos pensar que um nome de variável em C é uma caixa que contém um valor. O sinal de igual (=) é usado

para fazer uma atribuição de um valor a uma variável. Assim, quando você faz, em um programa C, uma de nição do tipo:

int x = 1;

você está criando uma variável x, que pode ser representada por uma caixa, e colocando o valor inteiro 1 nessa caixa.

 

Neste momento, a caixa x contém o valor 1. Em seguida, ao fazer uma atribuição de outro valor, por exemplo 2,

x = 2;

este novo valor vai ocupar a mesma caixa em que estava 1, apagando o valor antigo. Essa caixa ca com o novo valor:

 

Se criamos uma nova variável y e atribuímos o valor de x a essa variável,

y = x;

camos com duas caixas: