Introdução ao Python: Funções e OOP
Sessão de 23.07
Sofia Teixeira
July 23, 2024
1
Revisão de Funções
• Definição e sintaxe básica
• Funções com parâmetros e retorno
• Funções aninhadas
• Funções lambda
• Funções com múltiplos retornos
• Funções como objetos de primeira classe
2
Definição e Sintaxe Básica
Funções são blocos de código reutilizáveis que realizam uma tarefa
especı́fica. A sintaxe básica para definir uma função em Python é:
def nome da funcao(parametros):
corpo da funç~
ao
return valor
Exemplo:
def saudacao(nome):
return f"Olá, nome!"
Esta função recebe um parâmetro nome e retorna uma mensagem
de saudação.
3
Funções com Parâmetros e Retorno
Funções podem aceitar parâmetros e retornar valores. Isso permite
que a função processe dados de entrada e forneça uma saı́da.
def soma(a, b):
return a + b
Exemplo de uso:
resultado = soma(3, 4)
print(f"Resultado da soma: resultado")
Aqui, a função soma recebe dois parâmetros, a e b, e retorna a
soma deles.
4
Funções Aninhadas
Uma função pode ser definida dentro de outra função. Isso é útil
para criar funções auxiliares que não são necessárias fora do
contexto da função principal.
Neste exemplo, a função filho é definida dentro da função pai e
só pode ser chamada dentro de pai.
5
Funções Lambda
Funções lambda são funções anônimas, definidas usando a
palavra-chave lambda. Elas são usadas para criar pequenas
funções sem nome.
Aqui, dobro é uma função lambda que recebe um parâmetro x e
retorna o dobro de x.
6
Funções com Múltiplos Retornos
Funções podem retornar múltiplos valores usando tuplas. Isso é útil
quando você precisa retornar mais de um valor relacionado.
A função dividir retorna o quociente e o resto da divisão de a
por b.
7
Funções como Objetos de Primeira Classe
Em Python, funções são objetos de primeira classe. Isso significa
que podem ser atribuı́das a variáveis, passadas como argumentos e
retornadas por outras funções.
Neste exemplo, a função saudacao é atribuı́da à variável f e
chamada através dessa variável.
8
Entrada de Dados pelo Utilizador
Podemos usar a função input() para receber dados do utilizador
durante a execução do programa.
nome = input("Digite o seu nome: ")
print(f"Olá, nome!")
Neste exemplo, o programa solicita ao utilizador que insira o seu
nome e depois imprime uma mensagem de saudação.
9
Exemplo Prático com Estruturas Condicionais
Podemos integrar a função input() com estruturas condicionais
para criar interações mais complexas.
if idade >= 18:
print(”É maior de idade.”)
else:
print(”É menor de idade.”)
idade = int(input("Digite a sua idade: "))
if idade >= 18:
print("É maior de idade.")
else:
print("É menor de idade.")
Neste exemplo, o programa verifica se o utilizador é
10
maior ou menor de idade com base na entrada
Orientação a Objetos
11
Orientação a Objetos em Python
A orientação a objetos é um paradigma de programação que utiliza
”objetos” para representar dados e métodos. Em Python, uma
classe é um modelo para criar objetos.
Neste exemplo, a classe Pessoa tem um construtor init , dois
atributos nome e idade, e um método saudacao. 12
Definição de Classes e Objetos
Uma classe é um modelo para criar objetos (instâncias da classe).
Um objeto é uma instância de uma classe.
13
Construtores
Construtores são métodos especiais que são chamados
automaticamente quando um objeto é instanciado. Em Python, o
construtor é o método init .
Neste exemplo, o método init é o construtor da classe Carro
e é chamado automaticamente quando um novo objeto Carro é
criado.
14
Métodos e Atributos
Métodos são funções definidas dentro de uma classe e os atributos
são variáveis que pertencem a uma classe.
Neste exemplo, a classe Carro tem o método (acelerar e dois
atributos (marca e modelo).
15
Exercı́cio 1: Funções Matemáticas Básicas
Objetivo: Criar funções que realizem operações matemáticas
básicas.
Descrição:
• Crie uma função somar(a, b) que retorne a soma de a e b.
• Crie uma função subtrair(a, b) que retorne a subtração de
b de a.
• Crie uma função multiplicar(a, b) que retorne a
multiplicação de a e b.
• Crie uma função dividir(a, b) que retorne a divisão de a
por b. Certifique-se de lidar com a divisão por zero retornando
uma mensagem apropriada.
16
Exercı́cio 2: Calculadora
Objetivo: Implementar uma calculadora simples que utilize as
funções criadas no Exercı́cio 1.
Descrição:
• Solicite ao utilizador para escolher uma operação: soma,
subtração, multiplicação ou divisão.
• Peça ao utilizador para inserir dois números.
• Use as funções criadas no Exercı́cio 1 para realizar a operação
escolhida.
• Imprima o resultado da operação.
Instruções:
• Utilize a função input() para receber os dados do utilizador.
• Use estruturas condicionais (if, elif, else) para determinar
qual operação executar. 17
Exercı́cio 3: Verificação de Número Primo
Objetivo: Implementar uma função que verifique se um número é
primo.
Descrição:
• Crie uma função eh primo(n) que retorne True se n for um
número primo e False caso contrário.
• Um número primo é um número maior que 1 que só é divisı́vel
por 1 e por ele mesmo.
• Teste a função com vários valores para garantir que funciona
corretamente.
Instruções:
• Utilize um loop for para verificar se o número tem divisores
além de 1 e dele mesmo.
• Teste a função com números diferentes, incluindo casos 18
Exercı́cio 4: Classe Carro
Objetivo: Criar uma classe Carro com atributos e métodos.
Descrição:
• Crie uma classe Carro com os atributos marca, modelo e
ano.
• Adicione um método descrever carro() que imprime uma
descrição do carro.
• Adicione métodos acelerar() e travar() que modifiquem a
velocidade do carro e imprimam a velocidade atual.
Instruções:
• Crie um objeto da classe Carro e teste todos os métodos.
• Assegure-se de que os métodos alteram e imprimem os
atributos corretamente.
19
Exercı́cio 5: Interação com o Utilizador
Objetivo: Criar um programa que interaja com o utilizador para
gerenciar uma lista de compras.
Descrição:
• Crie uma lista vazia para armazenar os itens da lista de
compras.
• Solicite ao utilizador que adicione itens à lista, um de cada
vez.
• Permita que o utilizador remova itens da lista.
• Imprima a lista de compras atualizada a cada modificação.
Instruções:
• Use loops e estruturas condicionais para gerenciar a interação
com o utilizador.
• Utilize a função input() para receber dados do utilizador. 20