ficha 1 - Departamento de Física da Universidade de Coimbra

Propaganda
Computadores e Programação
Engª Biomédica
Departamento de Física
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Ano Lectivo 2003/2004
FICHA 1
AMBIENTE DE PROGRAMAÇÃO PYTHON
1.1. Objectivos
Objectivos que o aluno é suposto atingir com esta ficha:
- Ser capaz de lançar o intérprete Python;
- Utilizar sem dificuldade os comandos de edição de linha;
- Executar algumas instruções Python interactivamente;
- Introduzir, executar e modificar scripts Python.
1.2. O Intérprete da Linguagem Python
A linguagem Python é uma linguagem interpretada. Isso significa que uma sequência de instruções sob a
forma de um script (ou seja um programa) ou uma instrução isolada é traduzida para instruções de mais
baixo nível (linguagem máquina) no momento de execução, em vez de ser previamente traduzida para um
programa em linguagem máquina, como é o caso nas linguagens compiladas.
O intérprete que vai ser utilizado nas aulas práticas desta disciplina permite não só a execução de
scripts, como a execução de instruções isoladas, interactivamente.
Como primeira tarefa pretende-se que o aluno lance o intérprete Python, procurando para tal no
menu de Iniciar->Programas a pasta do Python. Nessa pasta deve encontrar algo como o que se ilustra
de seguida
Computadores e Programação – Engª Biomédica 2003/04 – Ficha 1
Página 1 de 6
Clique em IDLE (Python GUI) e verá surgir uma janela como a que se mostra;
Repare no símbolo >>> . Este símbolo indica o local onde devem ser introduzidas as instruções Python
que serão interpretadas assim que se carregue no <Enter>. Por vezes designa-se esse símbolo por
prompt.
Por exemplo, se escrevermos cidade=”Coimbra” <Enter>1 em frente ao prompt, o intérprete
vai criar internamente um objecto contendo a cadeia de caracteres “Coimbra”, dando-lhe de seguida o
nome cidade. Referências posteriores a esta cadeia de caracteres terão de ser feitas através deste nome,
cidade. Se por exemplo pretender visualizar na consola o conteúdo do objecto a que se refere o nome
cidade poderei fazê-lo executando a instrução print cidade <Enter>. Esta sequência de duas
instruções está ilustrada na figura seguinte,
1
Quando se apresenta <Enter> pretende-se indicar que se deve premir a tecla Enter
Computadores e Programação – Engª Biomédica 2003/04 – Ficha 1
Página 2 de 6
Como pode verificar o intérprete utiliza várias cores para facilitar a identificação das várias palavras
introduzidas e/ou apresentadas.
1.3. Scripts
O tipo de utilização do intérprete que foi apresentado na secção anterior não é muito adequado à execução
de listas longas de instruções, pois nessa situação teríamos de as introduzir uma a uma, e se
cometêssemos um só erro pelo meio teríamos que recomeçar a tarefa desde o início ! O mesmo
problema se coloca se pretendermos executar várias vezes a mesma sequência de instruções.
O que há a fazer quando temos muitas instruções seguidas que queremos executar sequencialmente (isto é
um programa), é criar um ficheiro contendo as instruções a executar. Este ficheiro em Python designa-se
por script e pode ser invocado a partir da linha de comando do intérprete.
No caso concreto do ambiente ao nosso dispôr (IDLE), podemos criar um script indo ao menu
File do intérprete, escolhendo New Window. Surgirá uma janela de edição em que podemos introduzir as
instruções Python constituintes do programa.
No caso que estávamos a ver, e após introduzir (dactilografar) as instruções em causa, fica assim:
Agora salve o script, indo ao menu File e clicando em Save (guarde o script num local fácil de encontrar,
por exemplo no Desktop).
De seguida pode executar este script, indo ao menu Run e escolhendo Run Module. Qual é o resultado ?
Reparou que a primeira linha do script começa por # ? Trata-se de uma linha de comentário, destinada a
ser lida por pessoas e que não é executada pelo intérprete. Os comentários são muito úteis para incluir
Computadores e Programação – Engª Biomédica 2003/04 – Ficha 1
Página 3 de 6
informação adicional que permita a alguém que esteja a analisar o programa (por vezes o próprio criador
do programa), perceber melhor o funcionamento de certas partes menos claras do script.
Vamos agora alterar o nosso programa introduzindo algumas instruções mais interessantes, por exemplo,
leitura do teclado.
Usando o mesmo editor altere o script para obter o seguinte:
#
# Autor : Luis Cruz
# Data : 18 Setembro 2003
#
# Observações : O meu programa esta agora muito maior !
#
cidade="Coimbra"
# Cria uma cadeia de caracteres
nome=raw_input("Qual o seu nome ? ") # Le uma cadeia de caracteres
print "Olá "+nome+" de "+cidade
# Imprime uma saudação personalizada
idade=input("Qual a sua idade (em anos)? ") # Le um inteiro
print "O ",nome," tem ",idade," anos,",
# Imprime mensagem com idade
print "ou aproximadamente ",idade*12," meses."
# Apresenta idade em meses
Examine cuidadosamente o programa, e execute-o. Verifique se as instruções fazem o que esperava.
Se não for esse o caso peça ajuda ao professor.
1.4. Tipos de Dados
No programa anterior foram usados dois tipos diferentes de dados, cadeias de caracteres e inteiros.
As cadeias de caracteres (ou strings em Inglês), servem para representar palavras, ou pedaços de texto ou
ainda qualquer informação que seja uma sequência de caracteres. No exemplo dado, mostrou-se também
uma operação muito comum que consiste em criar uma cadeia de caracteres por junção de outras cadeias
de caracteres, operação que em geral se designa por concatenação de cadeias de caracteres . Um
exemplo é a construção em print "Olá "+nome+" de "+cidade , em que a cadeia “Olá” é
concatenada com o conteúdo de nome com a cadeia “ de ” e também com a cadeia cujo nome é
cidade . Outra operação executada é a leitura de uma cadeia de caracteres, nome=raw_input("Qual o
seu nome ? ").
Os dados de tipo inteiro servem como é óbvio para representar informação numérica inteira e sobre eles
podemos efectuar as operações aritméticas usuais. No programa mostra-se a multiplicação de um literal
numérico pelo conteúdo de uma variável inteira (em idade*12). Também se mostra como se pode pedir
ao utilizador para introduzir um inteiro colocando o valor introduzido em memória sob um determinado
nome: idade=input("Qual a sua idade (em anos)? ") .
A linguagem Python suporta outros tipos de dados, que iremos estudar em aulas futuras. Para já fica a
saber que também pode utilizar números reais e complexos, sendo ainda suportadas as operações mais
vulgares associadas a esses tipos de números.
Computadores e Programação – Engª Biomédica 2003/04 – Ficha 1
Página 4 de 6
Um número é considerado real sempre que nele figura um ponto decimal (por exemplo 3.1415) ou se este
for introduzido usando a representação mantissa e expoente (por exemplo 31415e-4). Experimente
introduzir a instrução
>>> pi=3.1415
que criará um real com valor 3.1415 com nome pi. De seguida escreva apenas
>>> pi <Enter>
O resultado é o esperado ?
Verifique o tipo do objecto do objecto executando
>>> type(pi)
O intérprete indica que se trata de um float , isto é, um número em vírgula flutuante, que é um dos
formatos utilizados para representar números reais.
Introduza agora as instruções
>>> raio=1.5
>>> perimetro=2*pi*raio
>>> perimetro
o valor apresentado é obviamente o perímetro de um círculo de raio 1.5.
Poderia ter obtido o mesmo valor fazendo simplesmente
>>> 2*3.1415*1.5
Os números complexos são introduzidos usando o formato <parte_real>+<parte_imaginária>j tal como
em
>>> complexo=1+1j
sendo também possível introduzir um número complexo usando a função complex(), tal como se ilustra
>>> complexo_2=complex(2,2)
Entre as operações suportadas pelos números complexos contam-se a obtenção da sua parte real e
imaginária, como se exemplifica a seguir
>>> complexo.real
Computadores e Programação – Engª Biomédica 2003/04 – Ficha 1
Página 5 de 6
e
>>> complexo.imag
Termina aqui esta breve introdução ao Python. Nas próximas aulas há mais. I´ll be back J
1.5. Exercícios sugeridos
1.
2.
3.
4.
5.
6.
Altere o programa anterior para que este peça ao utilizador além do nome (tal com está feito),
também o dia, o mês e o ano de nascimento. Grave o novo programa sob o nome de
prob_1_1.py
Tomando por base o programa apresentado nos parágrafos anteriores, crie um programa que
leia dois valores numéricos e imprima a sua soma, diferença, produto e quociente. Teste-o
com (pelo menos) os pares de valores 4 e 2, 5 e 2, 2 e 3 e ainda 2 e 0. Nota: Os operadores
necessários são +,-,* e /
Efectue os cálculos do ponto anterior interactivamente.
Divida 5 por 2 . Repita o cálculo dividindo 5 por 2.0. Explique a diferença.
Introduza um número complexo 3+4j e calcule o quadrado do seu módulo.
Escreva um programa que peça os comprimentos dos catetos de um triângulo rectângulo e
devolva o valor da hipotenusa. Nota: Terá de incluir no início do script a instrução
from math import * para poder chamar a função
sqrt(<valor_cuja_raiz_pretende>)
Computadores e Programação – Engª Biomédica 2003/04 – Ficha 1
Página 6 de 6
Download