Aqui nesta página você encontra o gabarito dos exercícios do Capítulo 09 - Classes.
Exercício 01:
class Restaurante:
"""Classe que descreve o restaurante."""
def __init__(self, restaurante_nome, tipo_comida):
"""Inicializa os atributos da classe."""
self.restaurante_nome = restaurante_nome
self.tipo_comida = tipo_comida
def descrever_restaurante(self):
"""Método que descreve o restaurante."""
print(f'O nome do restaurante é {self.restaurante_nome}')
print(f'A culinária é {self.tipo_comida}')
def restaurante_aberto(self):
"""Método que indica se o restaurante está aberto."""
print('O restaurante está aberto')
# --- Chamar a classe --- #
restaurante = Restaurante('Pizza & Co.', 'italiana')
# --- Chamar os atributos --- #
print(restaurante.restaurante_nome)
print(restaurante.tipo_comida)
# --- Chamar os métodos --- #
restaurante.descrever_restaurante()
restaurante.restaurante_aberto()
Exercício 02:
# --- Chamar a classe --- #
restaurante_italiano = Restaurante('Pizza & Co.', 'italiana')
restaurante_japones = Restaurante('Sushi & Co.', 'japonesa')
restaurante_arabe = Restaurante('Kibe & Co.', 'árabe')
# --- Chamar o método --- #
restaurante_italiano.descrever_restaurante()
restaurante_japones.descrever_restaurante()
restaurante_arabe.descrever_restaurante()
Exercício 03:
class Usuario:
"""Classe que armazena as informações do usuário."""
def __init__(self, nome, idade, email, passatempo):
"""Inicializa os atributos."""
self.nome = nome
self.idade = idade
self.email = email
self.passatempo = passatempo
def descrever_usuario(self):
"""Função que descreve o usuário."""
print(f'''Nome: {self.nome.title()}
Idade: {self.idade} anos
E-mail: {self.email}
Passatempo: {self.passatempo}\n''')
def saudar_usuario(self):
"""Função que saúda o usuário."""
print(f'Seja bem vindo, {self.nome.title()}!')
# --- Chamar a função --- #
usuario_1 = Usuario('joão', 17, 'j@.email.com', 'Ouvir música')
usuario_2 = Usuario('maria', 23, 'm@email.com', 'Pintar')
usuario_3 = Usuario('lucas', 10, 'l@email.com', 'Jogar bola')
# --- Chamar os métodos --- #
usuario_1.saudar_usuario()
usuario_1.descrever_usuario()
usuario_2.saudar_usuario()
usuario_2.descrever_usuario()
usuario_3.saudar_usuario()
usuario_3.descrever_usuario()
Exercício 04:
class Restaurante:
"""Classe que descreve o restaurante."""
def __init__(self, restaurante_nome, tipo_comida):
"""Inicializa os atributos da classe."""
self.restaurante_nome = restaurante_nome
self.tipo_comida = tipo_comida
self.clientes_atendidos = 0
def descrever_restaurante(self):
"""Método que descreve o restaurante."""
print(f'O nome do restaurante é {self.restaurante_nome}')
print(f'A culinária é {self.tipo_comida}')
def restaurante_aberto(self):
"""Método que indica se o restaurante está aberto."""
print('O restaurante está aberto')
def atualzizar_clientes_atendidos(self, clientes):
"""Função que atualiza a quantidade de clientes atendidos."""
self.clientes_atendidos = clientes
def aumentar_clientes_atendidos(self, clientes):
"""Função que aumenta a quantidade de clientes atendidos."""
self.clientes_atendidos += clientes
# --- Chamar a classe --- #
restaurante = Restaurante('Pizza & Co.', 'italiana')
# --- Mostrar quantos clientes foram atendidos --- #
print(restaurante.clientes_atendidos)
restaurante.clientes_atendidos = 5
print(restaurante.clientes_atendidos)
# --- Atualizar a quantidade de clientes atendidos --- #
restaurante.atualzizar_clientes_atendidos(7)
print(restaurante.clientes_atendidos)
# --- Somar a quantidade de clientes atendidos --- #
restaurante.aumentar_clientes_atendidos(10)
print(restaurante.clientes_atendidos)
Exercício 05:
class Usuario:
"""Classe que armazena as informações do usuário."""
def __init__(self, nome, idade, email, passatempo):
"""Inicializa os atributos."""
self.nome = nome
self.idade = idade
self.email = email
self.passatempo = passatempo
self.tentativas_login = 0
def descrever_usuario(self):
"""Função que descreve o usuário."""
print(f'''Nome: {self.nome.title()}
Idade: {self.idade} anos
E-mail: {self.email}
Passatempo: {self.passatempo}\n''')
def saudar_usuario(self):
"""Função que saúda o usuário."""
print(f'Seja bem vindo, {self.nome.title()}!')
def aumentar_tentativas_login(self):
"""Função que aumenta o valor de tentativas_login em 1."""
self.tentativas_login += 1
def resetar_tentativas_login(self):
"""Função que reseta as tentativas de login."""
self.tentativas_login = 0
# --- Chamar a função --- #
usuario = Usuario('joão', 17, 'j@.email.com', 'Ouvir música')
# --- Verificar as tentativas de login --- #
print(usuario.tentativas_login)
# --- Aumentar as tentativas de login --- #
usuario.aumentar_tentativas_login()
usuario.aumentar_tentativas_login()
usuario.aumentar_tentativas_login()
usuario.aumentar_tentativas_login()
usuario.aumentar_tentativas_login()
usuario.aumentar_tentativas_login()
print(usuario.tentativas_login)
# --- Resetar as tentativas de login --- #
usuario.resetar_tentativas_login()
print(usuario.tentativas_login)
Exercício 06:
class Restaurante:
"""Classe que descreve o restaurante."""
def __init__(self, restaurante_nome, tipo_comida):
"""Inicializa os atributos da classe."""
self.restaurante_nome = restaurante_nome
self.tipo_comida = tipo_comida
def descrever_restaurante(self):
"""Método que descreve o restaurante."""
print(f'O nome do restaurante é {self.restaurante_nome}')
print(f'A culinária é {self.tipo_comida}')
def restaurante_aberto(self):
"""Método que indica se o restaurante está aberto."""
print('O restaurante está aberto')
class BuffetSorvete(Restaurante):
"""Classe que descreve o buffet de sorvete."""
def __init__(self, restaurante_nome, tipo_comida):
"""Função que inicializa os atributos da classe."""
super().__init__(restaurante_nome, tipo_comida)
def sabores(self):
"""Função que mostra os sabores do buffet."""
lista_sabores = ['flocos', 'chocomenta', 'creme', 'chocolate']
return lista_sabores
buffet_sorvete = BuffetSorvete('Sorvete Quente', 'sorveteria')
print(buffet_sorvete.sabores())
Exercício 07:
class Usuario:
"""Classe que armazena as informações do usuário."""
def __init__(self, nome, idade, email, passatempo):
"""Inicializa os atributos."""
self.nome = nome
self.idade = idade
self.email = email
self.passatempo = passatempo
def descrever_usuario(self):
"""Função que descreve o usuário."""
print(f'''Nome: {self.nome.title()}
Idade: {self.idade} anos
E-mail: {self.email}
Passatempo: {self.passatempo}\n''')
def saudar_usuario(self):
"""Função que saúda o usuário."""
print(f'Seja bem vindo, {self.nome.title()}!')
class Admin(Usuario):
"""Classe que armazena as informações do administrador."""
def __init__(self, nome, idade, email, passatempo):
"""Função que inicializa os atributos."""
super().__init__(nome, idade, email, passatempo)
self.privilegios = [
'Pode adicionar postagem', 'Pode deletar postagem',
'Pode banir usuário', 'Pode desbanir usuário'
]
def mostrar_privilegios(self):
"""Função que mostra os provilégios do administrador."""
for privilegio in self.privilegios:
print(f'- {privilegio}')
admin = Admin('João', 34, 'j@email.com', 'jogar futebol')
admin.mostrar_privilegios()
Exercício 08:
class Usuario:
"""Classe que armazena as informações do usuário."""
def __init__(self, nome, idade, email, passatempo):
"""Inicializa os atributos."""
self.nome = nome
self.idade = idade
self.email = email
self.passatempo = passatempo
def descrever_usuario(self):
"""Função que descreve o usuário."""
print(f'''Nome: {self.nome.title()}
Idade: {self.idade} anos
E-mail: {self.email}
Passatempo: {self.passatempo}\n''')
def saudar_usuario(self):
"""Função que saúda o usuário."""
print(f'Seja bem vindo, {self.nome.title()}!')
class Privilegios:
"""Classe que armazena as informações de provilégios do administrador."""
def __init__(self):
"""Função que inicializa a classe."""
self.privilegios = [
'Pode adicionar postagem', 'Pode deletar postagem',
'Pode banir usuário', 'Pode desbanir usuário'
]
def mostrar_privilegios(self):
"""Função que mostra os provilégios do administrador."""
for privilegio in self.privilegios:
print(f'- {privilegio}')
class Admin(Usuario):
"""Classe que armazena as informações do administrador."""
def __init__(self, nome, idade, email, passatempo):
"""Função que inicializa os atributos."""
super().__init__(nome, idade, email, passatempo)
self.privilegios = Privilegios()
admin = Admin('João', 34, 'j@email.com', 'jogar futebol')
admin.privilegios.mostrar_privilegios()
Exercício 09:
class Carro:
"""Classe que descreve um carro."""
def __init__(self, marca, modelo, ano):
"""Função que inicializa atributos da classe."""
self.marca = marca
self.modelo = modelo
self.ano = ano
self.odometro = 0
def descricao(self):
"""Função que retorna a descrição completa do carro."""
descricao_completa = f'{self.ano} {self.marca} {self.modelo}'
return descricao_completa
def ler_odometro(self):
"""Função que retorna o quanto o carro andou."""
print(f'Esse carro tem {self.odometro} Km rodados')
def atualizar_odometro(self, quilometragem):
"""Atualizar o odômetro para um valor fornecido.
Se o valor fornecido for menor do que o do odometro, impedir a mudança."""
if quilometragem >= self.odometro:
self.odometro = quilometragem
else:
print('Você não pode diminuir o valor do odômetro!')
def aumentar_odometro(self, quilometragem):
"""Função que aumenta a quilometragem conforme o carro anda."""
self.odometro += quilometragem
class CarroEletrico(Carro):
"""Classe que representa o carro elétrico."""
def __init__(self, marca, modelo, ano):
"""Inicializa a classe pai/mãe."""
super().__init__(marca, modelo, ano)
self.bateria = Bateria() # 3
def tanque_combustivel(self):
"""Carros elétricos não possuem tanque de combustível."""
print('Carros elétricos não possuem tanque de combustível')
class Bateria:
"""Classe que aramzena as informações da bateria."""
def __init__(self, capacidade_bateria=40):
"""Função que inicializa os atributos da bateria."""
self.capacidade_bateria = capacidade_bateria
def descrever_bateria(self):
"""Função que descreve a quantidade de carga da bateria."""
print(f'Esse carro possui uma bateria de {self.capacidade_bateria} kWh')
def obter_autonomia(self):
"""Função que mostra a autonomia do carro baseado na carga."""
if self.capacidade_bateria == 40:
autonomia = 150
elif self.capacidade_bateria == 65:
autonomia = 225
print(f'Esse carro pode percorrer {autonomia} Km com uma carga de {self.capacidade_bateria} kWh')
def atualizar_bateria(self):
"""Função que atualiza a carga da bateria."""
if self.capacidade_bateria != 65:
self.capacidade_bateria = 65
carro_eletrico = CarroEletrico('BYD', 'dolphin', 2024)
carro_eletrico.bateria.obter_autonomia()
carro_eletrico.bateria.atualizar_bateria()
carro_eletrico.bateria.obter_autonomia()
Exercício 10:
from random import randint
class Dado:
"""Classe que simula um dado."""
def __init__(self, lados=6):
"""Função que inicializa a classe."""
self.lados = lados
def rolar_dado(self):
"""Função que rola o dado."""
print(randint(1, self.lados))
# --- Mostrar as jogadas com um dado de 6 lados --- #
dado = Dado()
print(f'Dado de {dado.lados} lados')
for jogadas in range(1, 11):
dado.rolar_dado()
# --- Mostrar as jogadas com um dado de 10 lados --- #
dado = Dado(10)
print(f'\nDado de {dado.lados} lados')
for jogadas in range(1, 11):
dado.rolar_dado()
# --- Mostrar as jogadas com um dado de 20 lados --- #
dado = Dado(20)
print(f'\nDado de {dado.lados} lados')
for jogadas in range(1, 11):
dado.rolar_dado()
Exercício 11:
from random import choice, randint
# --- Sortear os números --- #
numeros = list(range(1, 60))
numeros_sorteados = [choice(numeros) for sorteio in range(1, 7)]
# --- Mostrar a mensagem e os números --- #
print('O bilhete ganhador possui os números:')
for numero in numeros_sorteados:
print(numero)