Introdução à programação e aos algoritmos
2.8 Tipos de Variáveis
Para um algoritmo que não tem de seguir as restrições de nenhuma linguagem, isso funciona bem. O problema é que nem
sempre a comparação de strings de maneira tão direta é fornecida como um recurso da linguagem de programação. Em geral, a
comparação só é possível usando o recurso de funções. Felizmente, esse não é o caso em Python:
x = ‘Supercalifragilisticexpialidocious!’
y = ‘Supercalifragilisticexpialidocious!’
if x == y:
print (“São iguais”)
■ Programa 2.10: compara_strings.py.
Porém, ca o alerta. Strings não são tipos simples, fornecidos diretamente pelo computador. Como são fornecidos como uma
facilidade da linguagem, cada uma irá tratar strings de maneira diferente. Em C, por exemplo, a função de comparação é
strcmp(). Para piorar, o teste entre duas strings com == é uma sintaxe válida em C, mas com outro signi cado. O comando
correto em C seria:
if (strcmp (nome, “Teste”) == 0))
Na hora de implementar seu algoritmo, con ra os recursos que a linguagem fornece e adapte seu algoritmo a esses recursos.
2.8 TIPOS DE VARIÁVEIS
Muitas linguagens de programação obrigam o programador a definir a priori o tipo de dado a que se refere uma variável. Esse recurso é chamado de tipagem estática, pois uma vez definido o tipo de uma variável, esta permanece com este tipo até o final da execução do programa. Linguagens como C ou Java usam este tipo de tipagem. Assim, se você define que uma variável é do tipo inteiro, o compilador vai testar sempre que essa variável for referenciada, se a operação é adequada ao tipo inteiro. Com isso os erros podem ser detectados em tempo de compilação.
Em Python e em outras linguagens, os identificadores são dinamicamente ligados ao valor
referenciado, por isso um mesmo nome de variável pode indicar qualquer tipo de dado, bastando fazer uma atribuição. Uma variável pode ser criada referenciando um dado inteiro e depois mudar para ponto flutuante ou mesmo cadeia de caracteres. Para criar uma variável, e, portanto, uma referência a um valor, basta atribuir um valor de determinado tipo à variável. Simples assim. Depois basta atribuir outro valor de qualquer tipo:
x = 23
print (x)
x = 12.4
print (x)
x = “Teste”
print (x)
■ Programa 2.11: Variáveis em Python (variaveis_dinamicas.py).
A execução deste programa resulta em:
23
12.4
Teste
Esse recurso tem vantagens e desvantagens em relação à tipagem estática. É claro que a
percepção do que seja vantagem ou desvantagem depende do programador e de suas preferências. O que é desvantagem para um, pode ser vantagem para outro programador. Feita essa ressalva, podemos dizer que linguagens com tipagem dinâmica permitem mais flexibilidade na hora de programar, porém têm a desvantagem de uma perda de desempenho na execução do programa; afinal o interpretador tem de testar em tempo de execução se as operações são adequadas ao tipo dinâmico.