Você está na página 1de 37

Funções

Profa. Vandecia Fernandes – UFMA/BICT/ECP


§ Introdução

§ Funções
§ parâmetros

§ Módulos

2
§ No decorrer do curso, já utilizamos várias funções:

§ input()

§ print()

§ len()

§ range()

§ type()
3
§ Por que usar funções?

§ Simplifica o programa.

§ Facilitar correções e manutenção.

§ Reutilização de código.

4
§ Criação:

def nome_funcao(x,y):
comandos
return valor/expressão

OBS: parâmetros e return são opcionais


parâmetros são o valores de entrada da função. Se houver mais de
um, são separados por vírgula

5
§ Criação exemplo:

§ def soma(x,y):
print (x+y) #podemos utilizar função dentro de função

§ def soma(x,y):
return (x+y) #utilização do return

§ def imprimeAsteriscos(): #função sem parâmetros


print (“*” * 60)
6
§ Uso:

§ Para usar a função criada, utilizamos o nome da função seguido dos


parâmetros (se houver) entre parênteses.

nome_funcao(argumentos)

§ Exemplo:
soma(2,3) #chamada a função
print(soma(2,3)) #para imprimir o resultado da função

7
§ Atenção:
Certifique-se que o código de criação da função está ANTES da
chamada à função:

def calculaDobro(a):
return 2*a #criação da função

num=int(input("Digite o numero: "))


print("O dobro é: ", calculaDobro(num)) #uso da função

8
§ Exemplo: Escreva uma função que verifique se um numero é par ou ímpar.

def par(x):
if(x%2==0):
return "par”
else:
return “impar”
num=int(input("Digite o numero: "))
print(par(num))

9
§ Variável local
§ Uma variável declarada dentro de uma função existe apenas dentro dela.
§ Não podemos acessar o valor de uma variável local fora da função que a criou.

§ Variável global
§ é definida fora de uma função
§ pode ser vista por todas as funções do módulo e por todos os módulos que importam
o módulo que a criou.

10
§ Variável local

def calculaArea(raio):
pi=3.141516
area = pi * raio**2
return area

print(pi) #erro! Variável existe somente na função

11
§ Variável local
def calculaPerimetro(raio):
pi=3.1415
print("Perimetro: ", 2*pi*raio)

def calculaArea(raio):
pi=3.1415
print(“Area: ", pi*raio**2)

raio = float(input(”Digite o raio: "))


calculaPerimetro(raio)
calculaArea(raio) 12
§ Variável global

pi=3.1415
def calculaPerimetro(raio):
global pi
pi=3.14 #podemos alterar o valor pois a variável é global
print("Perimetro: ", 2*pi*raio)

def calculaArea(raio):
print(“Area: ", pi*raio**2)

raio = float(input(“Digite o raio: “))


calculaPerimetro(raio)
calculaArea(raio)
13
§ constante

pi=3.1415 #constante global

def calculaPerimetro(raio):
print("Perimetro: ", 2*pi*raio)

def calculaArea(raio):
print(“Area: ", pi*raio**2)

raio = float(input(”Digite o raio: "))


calculaPerimetro(raio)
calculaArea(raio)
14
§ Observações sobre os parâmetros de funções:

§ Parâmetros obrigatórios
§ Parâmetros opcionais
§ Parâmetros obrigatórios e opcionais
§ Empacotamento de parâmetros
§ Desempacotamento de parâmetros

15
§ Função com parâmetros obrigatórios:
def soma(x,y):
print (x+y)

§ Função sem parâmetros


def imprimeAsteriscos():
print (“*” * 60)

16
§ Função com parâmetros opcionais:
§ Dizemos qual valor será utilizado caso um novo valor não seja
informado

def soma(x=0,y=0):
return x+y

print(soma())

17
§ Funçãocom parâmetros obrigatórios e opcionais:
§ Os parâmetros obrigatórios devem ser definidos ANTES dos
parâmetros opcionais.

def soma3(x,y,z=0):
return x+y+z

print(soma3(50,40))
print(soma3(50,40,20))

18
§ Funções como parâmetros:

def soma(x,y):
print (x+y)

def imprimeSoma(x,y,func):
print soma(x+y)

imprimeSoma(20,30,soma) #chamada a função imprimeSoma

19
§ Empacotamento de parâmetros:
§ Podemos passar parâmetros empacotados em uma lista (utilizamos o
asterisco *)

def soma(x,y):
print (x+y)

v=[5,8] #cuidado com a quantidade de parâmetros

soma(*v)
20
§ Desempacotamentode parâmetros:
§ Função com número indeterminado de parâmetros.

def somaNum(*nums):
soma=0
for x in nums:
soma=soma+x
return soma

print(somaNum(1,2,10))
print(somaNum (10,20,30,40,50)) 21
§ Funções lambda

variavel = lambda argumento_1, …argumento_n: expressão

§ Exemplo:
dobro=lambda x: x*2 mult = lambda a,b : (a*b)
print(dobro(3)) print(mult(100,5))

22
§ Umafunção recursiva é uma função que
chama a si mesma.

§ Aocriar uma função recursiva, devemos sempre


definir um critério de parada, para evitar que a função fique sendo
chamada infinitamente.

§ Cuidadoao usar a recursividade, pois se usada incorretamente, tende a


consumir muita memória. 23
§ Exemplo Clássico: Cálculo do fatorial

def fatorial(n):
if (n==1) or (n==0):
return 1
else:
return n*fatorial(n-1)

24
§ Exemplo: Somar todos os números até o número passado por
parâmetro:

def soma(n):
if(n==0) or (n==1):
return n
else:
return(n+soma(n-1))

25
Módulos

26
§ Um módulo é um arquivo que guarda um conjunto de funções

§ Todo arquivo .py é um módulo

§ Os módulos podem ser importados através do comando import

27
§ import random #números aleatórios

§ import math #funções matematicas

§ import time #tempo

§ ... #vários outros

28
§ Importar todas as funções ou constantes do módulo:
import módulo
§ Exemplo:
import math
import random

§ Importar apenas uma função ou constante do módulo:


from módulo import função
§ Exemplo:
from math import factorial
from random import shuffle

29
§ Módulo time: Várias funções para manipular o tempo.
import time
agora = time.localtime()
print(“Ano”, agora.tm_year)
print(“Mes”, agora.tm_mon)
print(“Dia”, agora.tm_mday)
print(“Hora”, agora.tm_hour)
print(“Minuto”, agora.tm_min)
print(“Segundo”, agora.tm_sec)
print(“Dia da semana”, agora.tm_wday)
print(“Dia do ano”, agora.tm_yday)
30
§ Módulo math: funções matemáticas

math.factorial(x) # fatorial de x
math.pi # valor de pi
math.cos(x) # valor do cosseno de x radianos
math.sin(x) #valor do seno de x radianos
math.tan(x) # valor da tangente de x radianos

31
§ Módulo random: utilizado para gerar números aleatórios:

random.randint(x,y) #gera números inteiros


random.randrange(x) #gera somente um número
random.uniform(x,y) #gera números ponto flutuante

32
§ Exemplo: programa adivinha numero

import random
sorteado = random.randint(1,10)
n=0
while n!=sorteado:
n=int(input("qual o seu palpite?"))
if n==sorteado:
print("Você acertou!")
elif n>sorteado:
print("Muito alto")
else:
print("Muito baixo") 33
§ Criar módulos: Todo arquivo .py é um módulo

#arquivo operações.py #arquivo calculadora.py


def soma(a,b): import operações

return a+b num=int(input(“Digite um numero: ”))


def sub(a,b): num2=int(input(“Digite um numero: ”))
return a-b
def multi(a,b): print(“Soma: ”, operações.soma(num,num2))
return a*b print(“Diferença: ”, operações.sub(num,num2))
print(“Multiplicação: ”, operações.multi(num,num2))
34
§ Veja mais em:

§ https://docs.python.org/pt-br/3/py-modindex.html#cap-m

35
§ Escreva uma função para pesquisar um determinado valor em uma
lista

36
NOTA DE ESCLARECIMENTO: Direito de Imagem
https://portais.ufma.br/PortalUfma/paginas/noticias/noticia.jsf?id=57033

37

Você também pode gostar