Desenvolva um programa que peça ao usuário, a idade e o peso de seu pet, e qual tipo de pet. Se for cachorro o usuário deve digitar c, se for gato, digita g. Mostre as entradas na tela.
Passo 1
O que o problema pede:
- Desenvolver um programa que solicite do usuário três informações:
- a idade do pet;
- o peso do pet;
- o tipo de pet (se for cachorro digitar
c; se for gato digitarg).
- Em seguida, mostrar na tela as entradas fornecidas pelo usuário.
Informações relevantes dadas (o que o programa precisa receber e exibir):
- Idade: valor numérico, tipicamente inteiro (anos ou unidades que decidir);
- Peso: valor numérico, pode ter casas decimais (usar float);
- Tipo: caractere indicando
coug(aceitar maiúsculas/minúsculas é uma boa prática); - Saída: exibir os três valores de forma legível (por exemplo: “Idade: 5”, “Peso: 3,2”, “Tipo: cachorro”).
Passo 2
Escolha da linguagem e plano geral:
- Vou usar Python porque é simples, muito usado em provas e exercícios iniciais de programação, e permite mostrar entradas e saídas com poucas linhas.
- Plano do programa (visão geral):
- Pedir ao usuário a idade: ler como string e converter para inteiro; validar se é um número inteiro não-negativo.
- Pedir ao usuário o peso: ler como string e converter para float; validar se é um número positivo.
- Pedir ao usuário o tipo de pet: ler como string, normalizar (tirar espaços, colocar minúsculas) e verificar se é
coug. Se não for, pedir novamente (loop). - Exibir na tela os valores lidos, mostrando o tipo por extenso (
cachorroougato).
Passo 3
Como ler a idade e por que converter/validar:
- Em Python, a função
input()retorna sempre uma string. Para tratar idade como número inteiro usamosint(...). - Por que validar? O usuário pode digitar texto ou número negativo; na prova normalmente é esperado tratar entradas básicas ou pelo menos garantir que o programa não quebre.
- Exemplo de leitura com validação (explicação passo a passo):
- Pedir a entrada:
entrada = input("Idade do pet: ") - Tentar converter: usar
int(entrada)dentro de um blocotry/exceptpara capturar erro se não for inteiro. - Verificar se o inteiro é maior ou igual a zero; se não, pedir novamente.
- Pedir a entrada:
- Isso forma um pequeno laço que só termina quando o usuário digita um inteiro válido.
Passo 4
Como ler o peso e validar:
- Peso pode ter casas decimais, então usamos
float(...). - Mesma ideia:
input()->float(entrada)comtry/exceptpara evitar que o programa quebre caso o usuário digite algo inválido. - Validar que o peso seja maior que zero (ou maior ou igual a zero, dependendo da especificação; aqui usamos maior que zero).
- Se inválido, pedir novamente até ter um float válido.
Passo 5
Como ler o tipo de pet e tratar maiúsculas/minúsculas:
- Ler com
input(), aplicarstrip()para remover espaços nas extremidades elower()para colocar em minúsculas. - Aceitar somente
'c'ou'g'. Se outro caractere for digitado, repetir a solicitação. - Ao final, mapear
'c'→'cachorro'e'g'→'gato'para exibir por extenso.
Passo 6
Formato de exibição das entradas:
- Exibir cada informação em uma linha separada para ficar claro para quem lê.
- Exemplo de formato:
- Idade: 5
- Peso: 3.2
- Tipo: cachorro
- Usar
print()com f-strings em Python facilita a formatação:print(f"Idade: {idade}")
Passo 7
Código completo do programa (aplicando tudo que expliquei). Este código lê, valida e mostra as entradas:
def ler_idade():
while True:
entrada = input("Idade do pet (anos): ").strip()
try:
idade = int(entrada)
if idade < 0:
print("Idade não pode ser negativa. Tente novamente.")
continue
return idade
except ValueError:
print("Entrada inválida. Digite um número inteiro para a idade.")
def ler_peso():
while True:
entrada = input("Peso do pet (kg): ").strip()
try:
peso = float(entrada)
if peso <= 0:
print("Peso deve ser maior que zero. Tente novamente.")
continue
return peso
except ValueError:
print("Entrada inválida. Digite um número (ex: 3.2) para o peso.")
def ler_tipo_pet():
while True:
entrada = input("Tipo do pet ('c' para cachorro, 'g' para gato): ").strip().lower()
if entrada == 'c':
return 'c', 'cachorro'
elif entrada == 'g':
return 'g', 'gato'
else:
print("Tipo inválido. Digite 'c' para cachorro ou 'g' para gato.")
def main():
print("Cadastro do pet")
idade = ler_idade()
peso = ler_peso()
tipo_simbolo, tipo_extenso = ler_tipo_pet()
print("\nDados informados:")
print(f"Idade: {idade}")
print(f"Peso: {peso}")
print(f"Tipo: {tipo_extenso}")
if __name__ == "__main__":
main()
Passo 8
Explicação linha a linha (resumo didático das partes-chave):
ler_idade(): laçowhile Trueque só sai quandoint(...)converte com sucesso e o valor é não-negativo.try/exceptevita erro de execução ao tentar converter texto que não é número.ler_peso(): mesmo padrão, usandofloat(...)para permitir decimais e exigindo peso positivo.ler_tipo_pet(): normaliza entrada comstrip().lower()e compara com'c'ou'g'. Retorna o símbolo e a palavra por extenso para facilitar exibição.main(): chama as funções de leitura e depois mostra os dados formatados com f-strings.if __name__ == "__main__":é a forma padrão em Python para permitir que o arquivo seja executado como script.
Passo 9
Exemplos de execução (simulação):
- Caso 1 (entradas corretas direto):
- Entrada:
Idade do pet (anos): 3 - Entrada:
Peso do pet (kg): 4.5 - Entrada:
Tipo do pet ('c' para cachorro, 'g' para gato): c - Saída:
- Idade: 3
- Peso: 4.5
- Tipo: cachorro
- Entrada:
- Caso 2 (erro e correção):
- Entrada:
Idade do pet (anos): dois→ Mensagem “Entrada inválida…” - Entrada:
Idade do pet (anos): -1→ Mensagem “Idade não pode ser negativa…” - Entrada:
Idade do pet (anos): 2 - Entrada:
Peso do pet (kg): zero→ Mensagem “Entrada inválida…” - Entrada:
Peso do pet (kg): 0→ Mensagem “Peso deve ser maior que zero…” - Entrada:
Peso do pet (kg): 2.3 - Entrada:
Tipo do pet ('c' para cachorro, 'g' para gato): x→ Mensagem “Tipo inválido…” - Entrada:
Tipo do pet ('c' para cachorro, 'g' para gato): g - Saída:
- Idade: 2
- Peso: 2.3
- Tipo: gato
- Entrada:
Passo 10
Dicas rápidas para a prova e variações:
- Se o enunciado não pedir validação, uma versão mais curta pode simplesmente usar
idade = int(input("Idade: ")),peso = float(input("Peso: "))etipo = input("Tipo: ").strip().lower(), mas isso pode gerar erro se o usuário digitar algo inválido. - Se quiser aceitar outras formas de tipo (ex: palavras completas como “cachorro” ou “gato”), basta testar
if entrada in ('c', 'cachorro'):e assim por diante. - Não esqueça de explicar no enunciado do seu exercício na prova o que faz cada parte: leitura, conversão, validação e exibição — isso ajuda a garantir pontos mesmo se o código não estiver perfeito.
- Você conseguiu! Respira fundo, pratique mais algumas variações e vai tranquilo.
Resposta
def ler_idade():
while True:
entrada = input("Idade do pet (anos): ").strip()
try:
idade = int(entrada)
if idade < 0:
print("Idade não pode ser negativa. Tente novamente.")
continue
return idade
except ValueError:
print("Entrada inválida. Digite um número inteiro para a idade.")
def ler_peso():
while True:
entrada = input("Peso do pet (kg): ").strip()
try:
peso = float(entrada)
if peso <= 0:
print("Peso deve ser maior que zero. Tente novamente.")
continue
return peso
except ValueError:
print("Entrada inválida. Digite um número (ex: 3.2) para o peso.")
def ler_tipo_pet():
while True:
entrada = input("Tipo do pet ('c' para cachorro, 'g' para gato): ").strip().lower()
if entrada == 'c':
return 'c', 'cachorro'
elif entrada == 'g':
return 'g', 'gato'
else:
print("Tipo inválido. Digite 'c' para cachorro ou 'g' para gato.")
def main():
print("Cadastro do pet")
idade = ler_idade()
peso = ler_peso()
tipo_simbolo, tipo_extenso = ler_tipo_pet()
print("\nDados informados:")
print(f"Idade: {idade}")
print(f"Peso: {peso}")
print(f"Tipo: {tipo_extenso}")
if __name__ == "__main__":
main()