por Jaime E. Villate. Universidade do Porto, Portugal.
Python é uma linguagem de programação que tem ganho muita popularidade no ensino e na investigação, por ser fácil de aprender e devido à sua facilidade de extensão que faz com que existam muitos módulos disponíveis.
Python, é software livre, que pode ser instalado e utilizado em todos os principais sistemas operativos. Nas distribuições do sistema GNU/Linux Python costuma vir já instalado, porque muitos outros programas dependem dele.
Idle é uma interface gráfica para Python. Idle faz parte integral de Python e pode já estar instalada junto com o Python, mas em alguns sistemas vem num pacote separado. Por exemplo, em Ubuntu é necessário instalar o pacote adicionalidle.
Idle pode ser iniciado desde um menu ou escrevendo o comando "idle" numa consola. O programa Idle cria uma janela chamada Python Shell (figura 1), onde podem ser escritos comandos do Python de forma interativa. Os três caracteres >>> indicam o ponto na janela onde deve ser escrito o próximo comando Python.
O menu "File" permite abrir um programa já escrito, em outra janela, e executá-lo. A janela Python Shell continuará aberta e nela serão apresentadas as mensagens de erro e tudo o que seja enviado pelo programa para a saída padrão.
Uma primeira aplicação do Python é como calculadora para fazer algumas contas. Por exemplo, para calcular o tempo que demora a luz do Sol a chegar à Terra, uma pesquisa na Internet mostra que a distância entre da Terra ao Sol, é 1.496×1011 m e a velocidade da luz que é 3.0×108 m/s. Como tal, o tempo em segundos que a luz demora em chegar do Sol até à Terra é o quociente:
E dividido por 60, dará o tempo em minutos. A conta pode ser feita na Shell do Python assim:
>>> 1.146e11/3e8/60 6.366666666666666
Podem usar-se variáveis para guardar resultados intermédios; por exemplo:
>>> tsegundos = 1.146e11/3e8 >>> tminutos = tsegundos/60
o valor que é guardado na variável não é mostrado no ecrã, mas pode ser mostrado dando o nome da variável:
>>> tminutos 6.366666666666666
As funções matemáticas habituais (logaritmo, seno, etc) não estão definidas previamente, mas podem ser incorporadas importando o módulo de funções matemáticas. Uma forma de importar todas as funções e símbolos existentes num módulo, neste caso o módulo com nome math, é a seguinte:
>>> from math import *
Uma vez importado o módulo matemático math, ficam disponíveis dois símbolos predefinidos, o valor de e a constante de Euler, e as 12 funções apresentadas na tabela 1.1
Símbolo ou função | Descrição |
---|---|
pi | Número |
e | Número de Euler |
fabs(x) | Valor absoluto de x |
sqrt(x) | Raiz quadrada de x |
log(x) | Logaritmo natural de x |
exp(x) | Função exponencial de x |
log10(x) | Logaritmo em base 10 de x |
sin(x) | Seno de x (x em radianos) |
cos(x) | Cosseno de x (x em radianos) |
tan(x) | Tangente de x (x em radianos) |
asin(x) | Seno inverso de x (em radianos) |
acos(x) | Cosseno inverso de x (em radianos) |
atan(x) | Tangente inversa de x (em radianos) |
floor(x) | Elimina casas decimais de x, ficando inteiro |
Como em qualquer linguagem de programação, Python inclui vários tipos de blocos iterativos e condicionais. Uma característica peculiar do Python, diferente de outras linguagens de programação, é que não são usados símbolos especiais para indicar o fim de uma linha ou de um bloco. Para indicar quais os comandos que fazem parte de um bloco basta com que esse bloco esteja alinhado de forma consistente: Todos os comandos num mesmo bloco devem ter o mesmo número de espaços em branco no início e um bloco interno deverá ter mais espaços do que o bloco externo. Em vez de espaços podem usar-se caracteres TAB, mas convém usar apenas um ou o outro, sem os misturar.
Idle ajuda na tarefa de alinhar os blocos. Por exemplo, para apresentar no ecrã uma lista com os cubos dos 5 primeiros números naturais, as seguintes duas linhas de código são suficientes:
>>> for i in [1, 2, 3, 4, 5]: i**3 1 8 27 64 125
o símbolo chave são os dois pontos; após escrever os dois pontos e clicar em &quo;enter", Idle já não escreve os caracteres >>> no início da linha, porque está a espera de um bloco. A segunda linha é alinhada automaticamente pelo Idle. Após termos escrito a segunda linha, foi necessário clicar duas vezes seguidas em &quo;enter" para que o bloco seja finalizado e executado e o ciclo iterativo seja executado.
Para obter uma lista unicamente dos cubos dos primeiros 40 naturais, que comecem pelo algarismo 2, acrescenta-se um bloco condicional if determinar quais dos números ao cubo começam por 2:
>>> for n in range(1, 41): cubo = n**3 ordem = floor(log10(cubo)) if floor(cubo/10**ordem) == 2: print(n, "ao cubo é", cubo) 3 ao cubo é 27 6 ao cubo é 216 13 ao cubo é 2197 14 ao cubo é 2744 28 ao cubo é 21952 29 ao cubo é 24389 30 ao cubo é 27000 31 ao cubo é 29791
Neste caso, em vez de usar uma lista (entre parêntesis retos) com os números de 1 até 40, usou-se a função range(1,41), que produz essa mesma lista. Observe-se que Idle identifica as funções próprias de Python a roxo, mas outras funções definidas por módulos adicionais, por exemplo floor, não é identificada como função própria de Python.
Usou-se também a função print para imprimir variáveis e texto no ecrã (o conjunto de caracteres alfanuméricos, entre aspas, é sublinhado a verde pelo Idle).
Outros operadores para comparar números são <, >, <=, >= e != (diferente). Um bloco if pode ter um sub-bloco else, que pode incluir outro bloco if, abreviado como elif. Por exemplo:
>>> n = 2 >>> if 0 < n < 3: print("entre 0 e 3") elif n >= 3: print("maior ou igual a 3") else: print("menor ou igual a zero") entre 0 e 3
Para definir funções, por exemplo a função floor definida pelo módulo math, escreve-se o procedimento dentro de um bloco que começa com a palavra chave def, seguida pelo nome da função e a lista de variáveis de entrada, entre parêntesis.
Por exemplo, uma função rad que converta um ângulo em graus para radianos, pode ser definida assim:
>>> def rad(x): return pi*x/180
a seguir, a função rad poder usar-se para calcular funções trigonométricas de ângulos em graus. Por exemplo, o seno de 30°:
>>> sin(rad(30)) 0.49999999999999994
Uma função em Python pode chamar-se a si própria de forma recursiva.