Você está na página 1de 38

Aplicações Inf.

B 12º Ano

Introdução a Linguagem de
Programação Python

© Prof. Francisco Fonseca


1
Aplicações Inf. B 12º Ano
Quem usa Python

2
© Prof. Francisco Fonseca
2
Aplicações Inf. B 12º Ano
Programação em Python

Duas formas de executar instruções Python

Interativamente: A instrução a executar é introduzida em frente ao prompt


e após <Enter> ela é interpretada

Exemplo : >>> dia=“Quarta-feira”


>>> print (dia)

Quarta-feira

Scripts: Cria-se um ficheiro com as instruções a executar (script) e utiliza-


se o interpretador para executar o script.

© Prof. Francisco Fonseca


3
Aplicações Inf. B 12º Ano
Programação em Python

No caso anterior o conteúdo do ficheiro programa (script) seria:

dia=“Quarta-feira”
print (dia)

que ao ser executado produziria:

Quarta-feira

Por convenção, ficheiros que contêm programas em Python têm


nomes que terminam com a extensão .py

© Prof. Francisco Fonseca


4
Aplicações Inf. B 12º Ano
Programação em Python

Variáveis e tipos de dados

Um valor é uma das coisas fundamentais (como uma palavra ou um


número) que um programa manipula.

Por exemplo os valores 5 (resultado da adição 2 + 3) e "Olá, mundo!“,


são frequentemente referidos como objetos. As palavras valor e objeto
são constantemente utilizadas.

Estes objetos são classificados em diferentes classes ou tipos de


dados: 5 é um inteiro e "Olá, mundo!" é um string ou cadeia de
caracteres.

© Prof. Francisco Fonseca


5
Aplicações Inf. B 12º Ano
Programação em Python

O Python tem uma função chamada type que pode dizer-nos qual é
a classe ou o tipo de dados. Por exemplo:

print(type("Ola, mundo!"))
print(type(17))
print(type(3.2))

<class 'str'>
<class 'int'>
<class 'float'>

© Prof. Francisco Fonseca


6
Aplicações Inf. B 12º Ano
Programação em Python

Qual será o resultado?

print(type("17"))
print(type("3.2"))

<class 'str'>
<class 'str'>

© Prof. Francisco Fonseca


7
Aplicações Inf. B 12º Ano
Funções para conversão de valores

print(3.14, int(3.14))
print(3.9999, int(3.9999)) # Isto não arredonda para o inteiro mais próximo
print(3.0,int(3.0))
print(-3.999,int(-3.999)) # Observe que o resultado está mais próximo de zero

print("2345",int("2345")) # examina um string para produzir um int


print(17,int(17)) # int também funciona sobre inteiros
print(int("23garafas"))

3.14 3
3.9999 3
3.0 3
-3.999 -3
2345 2345
17 17

Error
ValueError: invalid literal for int() with base 10: '23garafas' on line 8
© Prof. Francisco Fonseca
8
Aplicações Inf. B 12º Ano
Programação em Python

Variáveis
Uma das características mais poderosas de uma linguagem de programação é a
sua capacidade de manipular variáveis. Uma variável é um nome que se refere a
um valor.

O comando de atribuição cria uma nova variável e também fornece-lhe o valor


ao qual fará referência.

mensagem = “Está a chover?"


n = 17
pi = 3.14159

O operador de atribuição, = não deve ser confundido com igualdade, para


a qual usamos ==.

© Prof. Francisco Fonseca


9
Aplicações Inf. B 12º Ano
Programação em Python

INPUT
Função de entrada (input) para receber valores do utilizador. Por exemplo:

n = input("Por favor, entre com o seu nome: ")

A função input permite que apresentemos um texto ao utilizador. Quando a


função é executada o texto é exibido e o utilizador pode digitar e depois premir
a tecla enter. O texto que foi digitado é retornado pela função input e atribuído
à variável n.

n = input("Por favor, insira o seu nome: ")


print("Ola", n)

© Prof. Francisco Fonseca


10
Aplicações Inf. B 12º Ano
Programação em Python

Um script mais complexo...

Comentário

#
Criação de objecto “Coimbra”
# Autor : F.Fonseca E atribuição de nome cidade

# Data : 04 outubro 2021 Instrução de entrada de dados.


Espera entrada via teclado de uma
#
cadeira de caracteres, cria objecto
com conteúdo lido e atribui-lhe nome
#
nome
cidade="Coimbra" # Cria uma cadeia de caracteres
nome = input("Qual o seu nome ? ") # Le uma cadeia de caracteres
print ("Olá "+nome+" de "+cidade) # Imprime uma saudação personalizada

Instrução de saída.
Escreve no écran.

© Prof. Francisco Fonseca


11
Aplicações Inf. B 12º Ano
Programação em Python
Objectos e Nomes

O que acontece quando o interpretador encontra a instrução


cidade=“Coimbra” ?

1) É criado um objecto num determinado local da memória, que consiste na


sequência de valores ASCII relativos aos caracteres C,o,i,m,b,r,a

2) É criado um identificador (um nome) cidade que passa a referir o objecto


criado em 1.

Daqui para a frente sempre que se faça referência a cidade estaremos a


referir-nos ao objecto criado em 1.

© Prof. Francisco Fonseca


12
Aplicações Inf. B 12º Ano
Programação em Python
Nomes - Regras

1) O primeiro caracter tem de ser uma letra ou underscore (_), podendo os


seguintes ser quaisquer caracteres alfanuméricos. Ou seja:
• dois_pontos, _pontos são nomes válidos mas,
• 2_pontos não é um nome válido

2) Notar que Dois_pontos e dois_pontos são nomes diferentes (case


sensitive)

3) Há palavras reservadas que não podem ser utilizadas como nomes:

and, assert, break, class, continue, def, del, elif, else,


except, exec, finally, for, from, global, if, import, in,
is, lambda, not, or, pass, print, raise, return, try,
while

© Prof. Francisco Fonseca


13
Aplicações Inf. B 12º Ano
Programação em Python

Dados – Tipos Suportados

Básicos

Números inteiros
Números em vírgula flutuante
Cadeias de caracteres

© Prof. Francisco Fonseca


14
Aplicações Inf. B 12º Ano
Programação em Python

Inteiros

Permitem representar números inteiros com os seguintes limites :

Normal (32 bits)

– Valores de -231 = -2147483648 a

231-1 = 2147483647

Longos

– Gama de valores sem limite

© Prof. Francisco Fonseca


15
Aplicações Inf. B 12º Ano
Programação em Python
Inteiros

Representação de literais inteiros : são permitidos dígitos decimais,


hexadecimais ou octais.

Exemplos :
>>> print(123) # Literal decimal
123
>>> print(0xBABA) # Literal hexadecimal começa por 0x ou 0X (zero
X) 47802 Python converteu valor para decimal antes de imprimir
>>> print(0o77) # Literal Octal; começa por 0o (zero e a letra o)
63 Python converteu valor para decimal antes de imprimir
>>> 0o78

File "<stdin>", line 1


078
^
SyntaxError: invalid token
} Erro !
© Prof. Francisco Fonseca
16
Aplicações Inf. B 12º Ano
Programação em Python
Inteiros

Função type() devolve o tipo de dado. No caso de inteiros...

>>> type(1)
<type ´int´>
>>> a=2
>>> type(a)
<type ´int´>
>>> type(0xff)
<type ´int´>
>>> type(“0xff”) # ?
<type ´string´>

Porquê ?

© Prof. Francisco Fonseca


17
Aplicações Inf. B 12º Ano
Programação em Python

Operações sobre Inteiros

Os inteiros suportam as operações aritméticas usuais...

Adição (+) e Subtração (-) >>> 3+2


5
Multiplicação (*) >>> 3*2
6
Divisão (/) >>> 6/2
3.0
Divisão (//) >>> 5/2
2

© Prof. Francisco Fonseca


18
Aplicações Inf. B 12º Ano
Programação em Python

Operações sobre Inteiros e outras...

Potenciação (**) >>> 3**2 # Três ao quadrado


9
Resto de Divisão (%) >>> 3%2
1

Divisão com >>> divmod(5,2)


Quociente e (2,1)
Resto >>> divmod(-1,2)
(-1,1)

© Prof. Francisco Fonseca


19
Aplicações Inf. B 12º Ano
Programação em Python
Vírgula Flutuante

Permitem representar valores reais de acordo com a norma IEEE 754, com
precisão dupla (64 bits) que suporta valores com magnitude de 2.2e-308 a
1.8e308.

Os literais em vírgula flutuante seguem o formato +/- {mmm}e{exp},


+/-{mmm}E{exp} ou simplesmente ddd.ddd

Exemplos: >>> 1.2345e4


12345.0
>>> 1e-2
0.01
>>> 1.5
1.5

© Prof. Francisco Fonseca


20
Aplicações Inf. B 12º Ano
Programação em Python
Vírgula Flutuante

A função type() devolve neste caso <type ´float´>.

Exemplo: >>> pi_apr=3.1415926


>>> type(pi_apr)
<type 'float'>
>>> type(1.0)
<type 'float'>

As operações suportadas pelos número em vírgula flutuante são as


usuais; adição, subtração, multiplicação e divisão. No entanto...
>>> 5.0/2.0
2.5 Divisão Real

© Prof. Francisco Fonseca


21
Aplicações Inf. B 12º Ano
Programação em Python

Cadeias de Caracteres (Strings)

São (em geral) pequenas sequências de caracteres alfanuméricos, que


representam pedaços de texto.

Exemplos :
>>> cadeia_longa=“Uma cadeia de 27 caracteres”
>>> cadeia_curta="outra so com 15“
>>> cadeia_vazia=""
>>> print(cadeia_vazia)

>>> cadeia_multi_linha="""Esta cadeia comeca na linha 1


continua na linha 2 e
termina na linha 3"""
>>> print(cadeia_multi_linha)
Esta cadeia comeca na linha 1
continua na linha 2 e
termina na linha 3
>>>

© Prof. Francisco Fonseca


22
Aplicações Inf. B 12º Ano
Programação em Python

Cadeias de Caracteres (Strings)

Os marcadores de início e fim da cadeia podem ser aspas (“) ou pelicas (´).

Quando pretendemos utilizar aspas (ou pelicas) como um dos caracteres da


cadeia temos de o fazer usando uma sequência de escape que consiste na barra
(\) seguida da aspa (ou pelica).

Exemplos :

>>> cadeia=“Ele disse \”Terminei\” antes do fim”


>>> print(cadeia)
Ele disse “Terminei" antes do fim
>>> cadeia_pel=‘Cadeia com pelica (\’) dentro‘
>>> print(cadeia_pel)
Cadeia com pelica (') dentro
© Prof. Francisco Fonseca
23
Aplicações Inf. B 12º Ano
Programação em Python

Cadeias de Caracteres (Strings) - Concatenação

Podem juntar-se várias cadeias de caracteres para formar uma cadeia maior:
operação de concatenação.

Exemplos: >>> titulo=“Dr.”


>>> nome=“Egas”
>>> sobrenome=“Moniz”
>>> completo=titulo+nome+sobrenome
>>> print(completo)

Dr.EgasMoniz Oops... Faltam os espaços


!
>>> completo=titulo+” “+nome+” “+sobrenome
>>> print(completo)
Dr. Egas Moniz

© Prof. Francisco Fonseca


24
Aplicações Inf. B 12º Ano
Programação em Python

Cadeias de Caracteres (Strings) - Fatiagem

É possível retirar (ou aceder) a uma parte da cadeia de caracteres: operação


de fatiagem (slicing em Inglês).

A expressão <nome_da_cadeia>[primeiro:ultimo+1] designa a


secção desde o caracter na posição primeiro até ao caracter na posição
ultimo. O primeiro caracter tem índice 0.

Exemplos: >>> cadeia=“abcdef”


>>> print(cadeia[0:3])
abc
>>> print(cadeia[3:6]+cadeia[0:3])
defabc

© Prof. Francisco Fonseca


25
Aplicações Inf. B 12º Ano
Programação em Python

Cadeias de Caracteres (Strings) - Fatiagem

Para determinar o número de caracteres da cadeia usa-se a função len().

Exemplo: >>> cadeia=“abcdef”


>>> len(cadeia)
6

Há ainda formas particulares da especificação das fatias:

<nome_cadeia>[posicao] com posicao designa o caracter que se encontra na


posicao posicao a contar do início (a partir de 0). Se posicao for negativo, designa o
caracter que se encontra na posicao posicao a contar do fim,
<nome_cadeia>[:ultimo+1] designa todos os elementos desde o início até ao de
índice ultimo,
<nome_cadeia>[primeiro:] designa todos os elementos desde o de índice
primeiro até ao fim da cadeia,

© Prof. Francisco Fonseca


26
Aplicações Inf. B 12º Ano
Programação em Python

Cadeias de Caracteres (Strings) - Fatiagem

Exemplos:

>>> cadeia=“0123456789”
>>> len(cadeia) 10
>>> print cadeia[0] 0
>>> print cadeia[:5] 01234
>>> print cadeia[5:len(cadeia)] 56789
>>> print cadeia[-1] 9
>>> print cadeia[-5:-1] 5678
>>> print cadeia[-5:] 56789

© Prof. Francisco Fonseca


27
Aplicações Inf. B 12º Ano

Operações Lógicas (ou Booleanas)

Valores Lógicos

Verdadeiro : True, ou qualquer valor diferente de 0


Falso : False ou 0

Operações Lógicas Comuns (Prioridade Crescente)

x or y : verdadeiro se x ou y são verdadeiros


x and y: verdadeiro se x e y são verdadeiros
not x : verdadeiro se x falso e v.v.

© Prof. Francisco Fonseca


28
Aplicações Inf. B 12º Ano

Operações Lógicas (ou Booleanas)

Operadores Lógicos em Python (Prioridade Crescente)

x or y : se x é Falso resultado é y caso contrário x


x and y : se x é Falso resultado é x caso contrário y
not x : se x é Falso resultado é Verdadeiro e v.v.

© Prof. Francisco Fonseca


29
Aplicações Inf. B 12º Ano

Operadores Relacionais

a<b : resultado True se a é menor que b


a>b : resultado True se a é maior que b
a <= b : resultado True se a é menor ou igual que b
a >= b : resultado True se a é maior ou igual que b
a == b : resultado True se a é igual a b
a != b : resultado True se a é diferente de b
a <> b : resultado True se a é diferente de b
a < b < c: resultado True se a é menor que b e b menor que c

© Prof. Francisco Fonseca


30
Aplicações Inf. B 12º Ano

Controlo de fluxo – if Execução Condicional

if (exp_log1):
bloco de instruções 1 # exp_log1 é True
elif (exp_log2):
bloco de instruções 2 # exp_log2 é True
else:
bloco de instruções 3 # restantes casos

© Prof. Francisco Fonseca


31
Aplicações Inf. B 12º Ano

Controlo de fluxo – for Exemplos

autores=(“Camões”,”Pessoa”,”Torga”)
for autor in autores:
print autor,”foi um grande escritor!”

inteiros_de_0_ate_10 = range(11)
for numero in inteiros_de_0_ate_10:
print numero

Cadeia = “Programação”
for caracter in cadeia:
print caracter

© Prof. Francisco Fonseca


32
Aplicações Inf. B 12º Ano

Controlo de fluxo – if Exemplos

if chuva == False:
print “Esta um dia óptimo! Vou sem casaco.”
else:
print “Bolas, tenho que levar o guarda-chuva!”

if euros_no_bolso >= 20:


print “Vamos ao pub. Pago uma rodada.”
elif euros_no_bolso >= 10:
print “Vamos ao cinema. Pago as pipocas.”
elif euros_no_bolso >= 5:
print “Vou ao cinema. Sozinho...”
else:
print “Não me queres pagar o jantar ?”

© Prof. Francisco Fonseca


33
Aplicações Inf. B 12º Ano

Controlo de fluxo – for

Execução repetida de instruções consegue-se com for

Sintaxe

for <var_ciclo> in <sequência>:


bloco de instruções
else:
bloco de instruções

a executar se ciclo terminar

© Prof. Francisco Fonseca


34
Aplicações Inf. B 12º Ano

Controlo de fluxo – break, continue, pass

break - se executado dentro de um ciclo (for, while) termina a


execução deste, passando-se à instrução seguinte,

continue - se executado dentro de um ciclo (for, while), passa à


iteração seguinte do ciclo,

pass – não faz nada, podendo ser útil em certos casos

© Prof. Francisco Fonseca


35
Aplicações Inf. B 12º Ano

Exemplos (com for)

Controlo de fluxo – break, continue, pass

for numero in range(1,31):


if numero%3 == 0: continue # Salta múltiplos de 3
print numero

lista_nomes=[“Julio”,”Marcelo”,”Inês”,”Antonio”]
for nome in lista_nomes:
if nome == “César”: break
else:
print “\”Cesar\” não faz parte da lista”

© Prof. Francisco Fonseca


36
Aplicações Inf. B 12º Ano

Controlo de fluxo – while

Uma estrutura alternativa que permite iterar é o while

Sintaxe

while condição:
bloco de instruções
else:
bloco de instruções
a executar se ciclo
terminar

© Prof. Francisco Fonseca


37
Aplicações Inf. B 12º Ano

© Prof. Francisco Fonseca


38

Você também pode gostar