Python 06
Python 06
ATENÇÃO:
**********
ISEL
**********
ISEL
**********
Clássico
print ("***********")
print (" ISEL ")
print ("***********")
print (" ISEL ")
print ("***********")
Licenciatura em Engenharia Biomédica Programação, Nelson Nunes 5
Funções / Exemplo
Mas desta vez usar funções.
Funções
def a():
print ("**********")
def b():
print (" ISEL ")
a()
b()
a()
b()
a()
teste()
Eu sou de Lisboa
- Retornar um resultado
def func3(n1, n2):
return (n1 * n2)
Por padrão, todas as variáveis definidas dentro de uma função são locais - não
se podem aceder fora da função. E como o escopo dentro da função é
diferente do global, é mesmo possível usar o mesmo nome para duas variáveis
diferentes se uma for global e outra local (não é contudo uma prática
aconselhável).
Licenciatura em Engenharia Biomédica Programação, Nelson Nunes 14
Funções
Variáveis Locais e Globais:
Para corrigir teria de se declarar a variável idade como uma variável global
nome = "Maria"
idade = 32
def sauda():
global idade
idade += 1
return "Parabens " + nome + ", a tua idade e " + str(idade)
sauda()
A variável nome não causa um erro porque apenas se está a aceder ao seu valor
dentro da função sauda, não a modificando. Quando se acede a uma variável dentro
de uma função, o Python primeiro procura essa variável dentro do escopo da função.
Se não encontrar a variável, procurará no âmbito global.
Como se está a usar a variável nome dentro da função sem modificá-la, o Python não
gera um erro. No entanto, com a variável idade, está modificar-se o seu valor dentro
da função, o que requer que se declare explicitamente como uma variável global
usando a palavra-chave global.
Licenciatura em Engenharia Biomédica Programação, Nelson Nunes 15
Funções
Variáveis Locais e Globais:
sauda(“Maria“, 32)
Exemplo: f = lambda x : x + 10
print (f(5))
15
15 ímpar
Na prática em programação a
recursividade serve para reduzir um
problema à sua forma mais simplificada.
resultado=1
for i in range (1, n+1): Iteração
resultado=resultado * i Valor corrente da computação
return resultado
Exemplo: factor(3) O range cria uma sequência de inteiros 1, 2, 3
resultado=1
while n >= 1: Iteração
resultado=resultado * n Valor corrente da computação
n=n-1 Valor corrente da
variável de iteração
return resultado
Exemplo: factor(3)
n n
n=3 resultado =1 * 3 = 3 resultado =3 * 2 = 6
3 >= 1 2 >= 1
resultado=1 n = 3 - 1 =2 n=2-1=1
n n
resultado =6 * 1 = 6 0 >= 1
1 >= 1
n=1-1=0
X
Licenciatura em Engenharia Biomédica, ISEL Programação , Nelson Nunes 22
Recursividade
Programação recursiva n ! = a * (n-1) * (n-2) * (n-3) * …. * 1
Fase enrolar
1,1,2,3,5, ………
1 n<=1
fib(n)
fib(n-1)+fib(n-2) n>2
def fib(n):
if n<=1:
return n n = int(input(“Numero ?”))
else: for i in range(n):
return fib(n-1) + fib(n-2) print(fib(i))
cap(res)
Licenciatura em Engenharia Biomédica, ISEL Programação , Nelson Nunes 26
Erros
Um erro é um problema num programa que impede o programa de
concluir sua tarefa. Uma das classificações para os erros:
a=33
b=200
if b>a:
print "b maior que a"
----------------------------------------------
File "<ipython-input-4-41a8a2c99232>", line 4
print "b maior que a"
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("b maior que a")?
------------------------------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Input In [10], in <cell line: 2>()
1n=-5
2 if n < 0:
----> 3 raise ValueError("O número não é positivo")
4 else:
5 print(n)
Podemos ter vários blocos erros para lidar com diferentes tipos
de erros. try:
# código que pode lançar vários erros
except ValueError:
# lidar com ValueError
except TypeError:
# lidar com TypeError
for i in range(10): 0
if i == 5 or i==2: 1
continue 3
print(i) 4
6
7
8
9
a = 33
b = 200
if b > a:
pass