Como Criar Funções em Python
As funções são uma parte essencial da programação em Python. Elas permitem organizar o código em blocos reutilizáveis, evitando repetições e tornando o programa mais eficiente e legível.
QUESTÃO 1 - Calculadora de Tempo de Download
Um usuário deseja estimar o tempo necessário para baixar um arquivo grande.
Regras:
Calcular tempo em minutos
Considerar que 1 byte = 8 bits
Mostrar resultado com 2 casas decimais
Passos:
Criar função
calcular_tempo_download(tamanho_arquivo, velocidade)
Implementar função
main()
para interaçãoGarantir execução condicional
Exemplo:
Digite o tamanho do arquivo (MB): 100
Digite a velocidade de download (Mbps): 50
Tempo estimado: 0.27 minutos (ou 16.00 segundos)
Resposta:
def calcular_tempo_download(tamanho_arquivo, velocidade):
# 1 MB = 8 Mb (1 byte = 8 bits)
tamanho_megabits = tamanho_arquivo * 8
# Tempo em segundos (tamanho em megabits / velocidade em megabits por segundo)
tempo_segundos = tamanho_megabits / velocidade
# Converte para minutos
return tempo_segundos / 60
def main():
tamanho = float(input("Tamanho do arquivo (MB): "))
velocidade = float(input("Velocidade de download (Mbps): "))
tempo = calcular_tempo_download(tamanho, velocidade)
if tempo < 1: # Se for menos de 1 minuto, mostra em segundos
print(f"Tempo estimado: {tempo*60:.2f} segundos")
else:
print(f"Tempo estimado: {tempo:.2f} minutos")
if __name__ == "__main__":
main()
QUESTÃO 2 - Sistema de Controle de Estoque Básico
Uma loja de componentes eletrônicos precisa controlar entradas e saídas no estoque.
Regras:
Não permitir estoque negativo
Atualizar quantidade após cada operação
Validar se há quantidade suficiente para saída
Passos:
Criar função
atualizar_estoque(estoque_atual, movimento, tipo)
Implementar função
main()
com menu simplesGarantir execução condicional
Exemplo:
Estoque inicial: 100
1 - Entrada | 2 - Saída | 0 - Sair
Opção: 1
Quantidade: 23
Estoque atual: 123
1 - Entrada | 2 - Saída | 0 - Sair
Opção: 2
Quantidade: 3
Estoque atual: 120
1 - Entrada | 2 - Saída | 0 - Sair
Opção: 0
Resposta:
def atualizar_estoque(estoque_atual, movimento, tipo):
if tipo == 'entrada':
return estoque_atual + movimento
elif tipo == 'saida':
if estoque_atual >= movimento:
return estoque_atual - movimento
else:
return -1 # Código para estoque insuficiente
def main():
estoque = int(input("Estoque inicial: "))
while True:
print("\n1 - Entrada | 2 - Saída | 0 - Sair")
opcao = input("Opção: ")
if opcao == '0':
break
quantidade = int(input("Quantidade: "))
if opcao == '1':
estoque = atualizar_estoque(estoque, quantidade, 'entrada')
print(f"Estoque atual: {estoque}")
elif opcao == '2':
novo_estoque = atualizar_estoque(estoque, quantidade, 'saida')
if novo_estoque == -1:
print("Estoque insuficiente!")
else:
estoque = novo_estoque
print(f"Estoque atual: {estoque}")
if __name__ == "__main__":
main()
QUESTÃO 3 - Verificador de Velocidade de Internet
Uma empresa de telecomunicações precisa verificar se a velocidade contratada está sendo entregue ao cliente.
Regras:
Velocidade mínima deve ser 80% do contratado
Exibir “Dentro do padrão” ou “Abaixo do esperado”
Considerar margem de erro de 2% para baixo
Passos:
Criar função
verificar_velocidade(contratada, medida)
Implementar função
main()
para entrada de dadosGarantir execução apenas quando rodado diretamente
Exemplo:
Velocidade contratada (Mbps): 100
Velocidade medida (Mbps): 55
Abaixo do esperado - Abrir chamado técnico
Resposta:
def verificar_velocidade(contratada, medida):
limite_aceitavel = contratada * 0.8 * 0.98 # 80% com margem de 2%
return medida >= limite_aceitavel
def main():
velocidade_contratada = float(input("Velocidade contratada (Mbps): "))
velocidade_medida = float(input("Velocidade medida (Mbps): "))
if verificar_velocidade(velocidade_contratada, velocidade_medida):
print("Dentro do padrão")
else:
print("Abaixo do esperado - Abrir chamado técnico")
if __name__ == "__main__":
main()
QUESTÃO 4 - Validador de Endereço de E-mail
Um desenvolvedor precisa criar um sistema de validação básica para endereços de e-mail em um formulário de cadastro.
Regras:
O e-mail deve atender aos seguintes requisitos:
Deve conter exatamente um caractere “@”
Deve ter pelo menos um ponto “.” após o “@”
O domínio (após o último ponto) deve ter entre 2 e 4 caracteres
Passos:
Criar a função
validar_email(email)
que analisa o endereço e verifica se atende aos critériosCriar a função
main()
que solicita o e-mail ao usuário e exibe o resultadoGarantir que o código só seja executado quando o arquivo for rodado diretamente
Exemplo:
Digite seu e-mail: usuario@dominio.com
E-mail válido!
Resposta:
def validar_email(email):
# Verifica se tem exatamente um @
if email.count('@') != 1:
return False
# Divide em nome e domínio
partes = email.split('@')
dominio = partes[1]
# Verifica se tem pelo menos um ponto no domínio
if '.' not in dominio:
return False
# Verifica o tamanho do TLD (última parte após ponto)
tld = dominio.split('.')[-1]
if not 2 <= len(tld) <= 4:
return False
return True
def main():
email = input("Digite seu e-mail: ")
if validar_email(email):
print("E-mail válido!")
else:
print("E-mail inválido!")
if __name__ == "__main__":
main()
QUESTÃO 5 - Calculadora de Consumo de Energia
Calcular consumo mensal de um equipamento em kWh.
Regras:
Potência (W) × horas/dia × 30 dias / 1000
Mostrar valor estimado em R$ (considerando R$ 0,75 por kWh)
Passos:
Criar função
calcular_consumo(potencia, horas)
Implementar função
main()
Execução condicional
Exemplo:
Potência do equipamento (W): 20
Horas de uso por dia: 12
Consumo mensal: 7.20 kWh
Custo estimado: R$ 5.40
Resposta:
def validar_email(email):
# Verifica se tem exatamente um @
if email.count('@') != 1:
return False
# Divide em nome e domínio
partes = email.split('@')
dominio = partes[1]
# Verifica se tem pelo menos um ponto no domínio
if '.' not in dominio:
return False
# Verifica o tamanho do TLD (última parte após ponto)
tld = dominio.split('.')[-1]
if not 2 <= len(tld) <= 4:
return False
return True
def main():
email = input("Digite seu e-mail: ")
if validar_email(email):
print("E-mail válido!")
else:
print("E-mail inválido!")
if __name__ == "__main__":
main()
Caso o Python ainda não esteja instalado em seu dispositivo, clique no botão abaixo para realizar a instalação.