Python aplicado ao ensino de física - Prof. João Cláudio Nunes Carvalho
Prof. João Cláudio Nunes Carvalho
Python
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
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.
Python como calculadora
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×108m/s. Como tal, o tempo em segundos que a luz demora em chegar do Sol até à Terra é o quociente:>>> 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.1Sí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 |
Blocos iterativos e condicionais
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 ifdeterminar 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
Funções
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.
Comentários