• Nenhum resultado encontrado

CONCEITOS BÁSICOS DE PROGRAMAÇÃO PYTHON

N/A
N/A
Protected

Academic year: 2021

Share "CONCEITOS BÁSICOS DE PROGRAMAÇÃO PYTHON"

Copied!
9
0
0

Texto

(1)

Computadores e Programação – Engª Biomédica 2005/06 – Ficha 2 Página 1 de 9

Computadores e Programação

Engª Biomédica

Departamento de Física

Faculdade de Ciências e Tecnologia da Universidade de Coimbra

Ano Lectivo 2005/2006

F

F

I

I

C

C

H

H

A

A

2

2

C

ONCEITOS

B

ÁSICOS DE

P

ROGRAMAÇÃO

P

YTHON

2.1. Objectivos

Objectivos que o aluno deve atingir com esta ficha: - Compreender o conceito de variável;

- Compreender os vários tipos de dados;

- Operar e manipular diferentes tipos de dados.

2.2. Variáveis

O conceito de variável existe em Python, como em todas as linguagens de programação. Por definição, uma variável representa uma relação unívoca entre um valor numérico e um nome, valor esse que poderá ser acedido e alterado a qualquer instante, dependendo da execução do programa. Em Python o nome de uma variável pode ser composto por letras maiúsculas, minúsculas, dígitos e pelo caracter “_”.

2.3 Tipos de dados

A linguagem de programação Python suporta vários tipos de dados primitivos (iremos mais tarde estudar outros tipos de dados criados pelo próprio utilizador): - Números inteiros (em bases decimal, octal ou hexadecimal);

- Números de vírgula flutuante (reais); - Números complexos;

(2)

Computadores e Programação – Engª Biomédica 2005/06 – Ficha 2 Página 2 de 9

Também suporta de raiz tipos de dados compostos (não primitivos), como é o caso de:

- Listas; - Tuplas; - Dicionários.

Um número decimal é representado por uma sequência de algarismos entre ‘0’ (zero) e ‘9’ (nove). Um número decimal não deverá começar nunca por ‘0’:

>>> x = 40 >>> x 40

No caso de se pretender lidar com números octais (base 8), estes deverão ser representados por uma sequência de algarismos de ‘0’ (zero) a ‘7’ (sete) e ser sempre precedidos por ‘0’ (zero) para identificação da base, como se demonstra no exemplo seguinte, onde o número ‘010’ representado em base octal equivale a ‘8’ em base decimal:

>>> y = 010 >>> y

8

Finalmente, e para o caso dos números hexadecimais (de base 16), temos sequências de ‘0’ (zero) até ‘9’, ‘A’, ‘B’, ‘C’, ’D’, ’E’ e ’F’. Devem ser precedidas pelo

prefixo ‘0x’ ou ‘0X’ para que o intérprete as identifique na base correcta.

>>> 0xf 15

>>> 0x10 16

(3)

Computadores e Programação – Engª Biomédica 2005/06 – Ficha 2 Página 3 de 9

2.3.1 Números inteiros

Um número inteiro pode ser representado em qualquer uma das bases referidas anteriormente e, dependendo da arquitectura do computador e do sistema operativo, poderá tomar valores entre -231 e +231-1.

2.3.2 Números de vírgula flutuante

Números de vírgula flutuante representam números reais e possuem, portanto, parte inteira e parte fraccionária. Podem ser representados na notação decimal normal ou em notação científica:

>>> 0.002 0.002 >>> 2e-3 0.002

2.3.3 Números complexos

Os números complexos são representados da forma x + yj, ou seja:

>>> 3+7j (3+7j)

>>> complex(3,7) (3+7j)

Há em Python formas directas de extrair a parte real ou imaginária de um número complexo. Do mesmo modo, é possível obter directamente o seu valor absoluto através da função abs():

>>> z=4+3j >>> z.real 4.0 >>> z.imag 3.0 >>> abs(z) 5.0

Sempre que se pretender verificar o tipo de variável, pode-se usar o comando

(4)

Computadores e Programação – Engª Biomédica 2005/06 – Ficha 2 Página 4 de 9 >>> type(z)

<type 'complex'>

Obtém-se, portanto, a indicação de que se trata de um número complexo.

2.3.4 Cadeias de caracteres

Cadeias de caracteres ou strings são sequências de zero ou mais caracteres. Em

Python essas sequências são delimitadas por dois tipos possíveis de caracteres

especiais: plicas (‘ ’) ou aspas (“ ”):

>>> "ola" 'ola' >>> 'ola' 'ola'

No caso de se pretender usar plicas (‘ ’) ou aspas (“ ”) dentro da própria string, deverá proceder-se da seguinte forma: se o caracter que pertence à string é diferente do caracter de delimitação, não é necessário fazer nada. Em caso contrário, esse caracter deverá ser precedido por uma barra (\). Veja-se o exemplo:

>>> "bons dias" 'bons dias' >>> "bons d"ias"

SyntaxError: invalid syntax >>> "bons d\"ias"

'bons d"ias'

O caracter \n é interpretado como sendo um único caracter, e é usado para representar uma mudança de linha:

>>> print "OlaJoao" OlaJoao

>>> print "Ola\nJoao" Ola

(5)

Computadores e Programação – Engª Biomédica 2005/06 – Ficha 2 Página 5 de 9

É possível realizar diversas operações de manipulação de strings em Python. Uma dessas operações é a concatenação (que consiste em encadear strings, juntando sucessivamente umas no final de outras) que se realiza através da operação +

>>> sequencia = "frase de teste"

>>> print "Apresento uma "+sequencia+" concatenada!" Apresento uma frase de teste concatenada!

>>>

Outro tipo de operação realizável em strings consiste na sua repetição através do operador *

>>> print "bla "*17

bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla >>>

2.3.5 Listas

As listas definem uma estrutura de dados que agrupa um conjunto de

elementos de qualquer tipo, podendo esses elementos, por sua vez, ser também

listas:

>>> List=[12.0, 3, 'Pascal', -7, 440, [23, 'bio', 'a']] >>> List

[12.0, 3, 'Pascal', -7, 440, [23, 'bio', 'a']]

A função len() permite obter o número total de elementos que formam uma lista:

>>> len(List) 6

>>>

É possível aplicar a listas, operações (concatenação, repetição, etc.) que também se aplicam a strings:

>>> 2*List

[12.0, 3, 'Pascal', -7, 440, [23, 'bio', 'a'], 12.0, 3, 'Pascal', -7, 440, [23, 'bio', 'a']]

(6)

Computadores e Programação – Engª Biomédica 2005/06 – Ficha 2 Página 6 de 9

Adicionalmente, a linguagem Python permite alterar elementos ou sub-blocos de uma determinada lista. Essa alteração faz-se acedendo ao item que corresponde ao elemento que se deseja alterar:

>>> List[4:5]=['Lavoisier'] >>> List

[12.0, 3, 'Pascal', -7, 'Lavoisier', [23, 'bio', 'a']]

É possível remover um determinado elemento de uma lista (no caso de baixo elimina-se o primeiro elemento1) acedendo-se ao item correspondente através do

comando del:

>>> del List[0] >>> print List

[3, 'Pascal', -7, 'Lavoisier', [23, 'bio', 'a']]

Ou então remover um sub-bloco da lista (no exemplo seguinte elimina-se o segundo e terceiro elementos), através do mesmo comando del. Note-se que o limite superior do intervalo é não inclusivo:

>>> del List[2:4] >>> print List

[3, 'Pascal', [23, 'bio', 'a']]

Para eliminar completamente a lista da memória usa-se:

>>> del List >>> print List

Traceback (most recent call last):

File "<pyshell#227>", line 1, in -toplevel- print List

NameError: name 'List' is not defined >>>

1

(7)

Computadores e Programação – Engª Biomédica 2005/06 – Ficha 2 Página 7 de 9

2.3.6 Dicionários

Da mesma forma que as listas, também os dicionários agrupam elementos de tipos diferentes. A grande diferença reside no facto de, nos dicionários, cada elemento vir associado a uma chave. Tal como num dicionário convencional, onde primeiro se procura uma palavra para depois encontrar o seu significado, em

Python utiliza-se a chave para aceder ao elemento que lhe corresponde. A

declaração de um dicionário assemelha-se à de uma lista. Difere apenas no uso de chavetas em vez de parêntesis rectos e na declaração de cada um dos seus elementos separados por vírgulas, no formato ‘chave:valor’. Quer a chave, quer o valor, podem ser de qualquer um dos tipos de dados estudados:

>>> Dic={'vasco':22, 'ana':19, 'joana':18, 'francisco':20} >>> print Dic

{'francisco': 20, 'joana': 18, 'vasco': 22, 'ana': 19}

Para aceder a um valor de um dicionário usam-se parêntesis rectos:

>>> Dic['vasco'] 22

Para adicionar novos valores à lista, usa-se notação idêntica:

>>> Dic['rita']=21 >>> print Dic

{'francisco': 20, 'joana': 18, 'vasco': 22, 'rita': 21, 'ana': 19}

2.3.7 Tuplas

Vimos que strings e listas são dois tipos de dados sequenciais. Uma tupla (no inglês tuple) é apenas outro tipo de dados sequencial standard que consiste num conjunto de valores separados por vírgulas:

>>> tup=1,2,3,'ola' >>> tup[0]

1

>>> tup[3] 'ola'

(8)

Computadores e Programação – Engª Biomédica 2005/06 – Ficha 2 Página 8 de 9

Do mesmo modo que acontece com as strings, também as tuplas são imutáveis, isto é, não é possível atribuir um valor a um item individual de uma tupla.

A declaração anterior é um exemplo de empacotamento de uma tupla. Os valores 1, 2, 3 e ‘ola’ foram empacotados juntamente numa tupla. A operação inversa também é possível e designa-se por desempacotamento sequencial:

>>> x, y, w, z = tup >>> print x, y, w, z 1 2 3 ola

Esta última operação requer que a lista de variáveis do lado esquerdo tenha o mesmo número de elementos que a sequência do lado direito.

2.4 Exercícios sugeridos

1. Implemente um programa que, a partir de uma lista de 5 elementos chamada ListaDeOrigem (inicializada com valores aleatórios pelo programador), crie uma nova lista designada por ListaAoCubo, do mesmo tamanho, cujos elementos representem os da primeira elevados ao cubo. Grave o programa no seu directório sob o nome de prob_3_1.py

2. Elabore um programa que peça ao utilizador o seu nome, dia, mês e ano de nascimento. De seguida, armazene cada um desses dados numa lista. Finalmente, imprima os dados da lista no ecran. Grave o programa no seu directório sob o nome de prob_3_2.py

3. Crie um programa que peça ao utilizador dois valores numéricos e calcule a sua soma, diferença, produto, divisão e expoente. Deverá guardar os resultados num dicionário chamado DicioCalculo, na forma: {‘soma’: 6,

(9)

Computadores e Programação – Engª Biomédica 2005/06 – Ficha 2 Página 9 de 9

4. Implemente um programa que, pedindo a um aluno o nome das disciplinas do 1º ano da licenciatura de Engª Biomédica e as respectivas notas obtidas, vá armazenando esses dados num dicionário chamado

DicioNotas. No caso de o aluno ainda não ter obtido aproveitamento a

uma determinada cadeira, deverá constar a nota ‘--’.

5. Escreva um programa que, em função de uma lista de números inteiros, desenhe o diagrama de barras horizontais correspondente. Siga o exemplo para a lista [3, 10, 7]:

***

********** *******

Referências

Documentos relacionados

Após retirar, da maré observada, o valor da maré teórica, aplicou-se uma linha de tendência aos dados resultantes, a qual representa a variação do nível médio das águas no

Soma da dosagem de madeira não deve passar de 18 cm²/L, a menos que a cerveja tenha perfil para resistir por um longo tempo de armazenamento.... 39 0 0,2 0,4 0,6 0,8 1 1,2

Os candidatos que optarem por realizar a arguição do projeto por Skype se responsabilizarão por providenciar o equipamento necessário para tal, devendo garantir

Ao contrário da visão da diretora da escola “A”, a coordenadora da sua escola possui uma visão muito prática sobre os dos conteúdos da Educação Física, resumindo

(2006) e Wernke e Lembeck (2008) argumentam que a sua operacionalização e a consequente compreensão da estrutura dos custos indiretos de fabricação proporciona a obtenção

O software ATP/ATPDraw se apresenta como uma importante ferramenta para simulação de uma usina hidrelétrica e seu sistema de proteção, pois dispõe de vários

Resumindo: pode-se afirmar que a Danone, nesses anúncios, para driblar o possível entendimento de que ela continuaria a reproduzir o discurso que foi proibido pela

Marque a alternativa CORRETA: a) Nenhuma afirmativa está correta. b) Apenas uma afirmativa está correta. c) Apenas duas afirmativas estão corretas. d) Apenas três afirmativas