2
respostas

Mod 2 - Prática - Q1, Q2 e Q3 - Resolução

Boa tarde a todos!
Segue o passo a passo da resolução da prática do Mod - Manipulando dados - eu adicionei a função booleana para testar.

nome = input('Qual é o seu nome: ')

nome

'Fabiana'

print(f'Olá, {nome}! ')

Olá, Fabiana!

idade = int(input('Quantos anos vc tem: '))

Quantos anos vc tem: 48

idade

48

altura = float(input('Qual é a sua altura: '))

Qual é a sua altura: 1.61

altura

1.61

peso = bool(input('Vc está nos parametros ideiais de peso ? '))

Vc está nos parametros ideiais de peso ? True

peso

True

print(f'Olá, {nome}, você tem {idade} anos, e mede {altura}, e que bom que é {peso} que vc está nos parametros ideiais de peso ')

Olá, Fabiana, você tem 48 anos, e mede 1.61, e que bom que é True que vc está nos parametros ideiais de peso

2 respostas

Olá, Fabiana. Como vai?

Parabéns por praticar e ir além do proposto na atividade! É excelente ver que você teve a iniciativa de experimentar e adicionar uma lógica para capturar um valor booleano (True ou False) usando a função input().

O uso dos tipos de dados para texto (String), números inteiros (int) e números decimais (float) ficou perfeito e os comandos print com f-strings foram aplicados corretamente.

No entanto, há um comportamento nativo e bem curioso do Python no trecho em que você validou o peso com a função bool() que vale a pena analisarmos juntos.

O comportamento do bool(input(...)) no Python

Do jeito que o código foi escrito:

peso = bool(input('Vc está nos parametros ideiais de peso ? '))

O Python pode induzir a gente ao erro. O que acontece na verdade é que a função bool() no Python avalia qualquer texto preenchido (qualquer String que não esteja vazia) como True.

Isso significa que se o usuário rodar o seu programa e digitar a palavra "Não", a palavra "False", ou até mesmo digitar letras aleatórias, o Python vai transformar isso no valor booleano True de qualquer forma, porque o texto não está vazio! O único cenário onde o bool() daria False nesse código seria se o usuário simplesmente apertasse a tecla Enter sem digitar absolutamente nada.

Como ajustar isso na prática?

Para capturar uma resposta de sim ou não e transformá-la em um booleano real de forma segura, o ideal é capturar o texto do usuário primeiro e depois fazer uma comparação. Veja esta sugestão de boa prática:

# Captura a resposta apenas como texto e remove espaços extras
resposta = input('Vc está nos parametros ideiais de peso? (Sim/Não): ').strip().lower()

# Faz a comparação lógica: se a resposta for 'sim', guarda True. Se for qualquer outra coisa, guarda False.
peso = (resposta == 'sim')

# No print final, você pode usar uma condicional simples para deixar a mensagem mais bonita e natural
status_peso = "verdade" if peso else "uma pena"

print(f'Olá, {nome}, você tem {idade} anos, mede {altura}m, e que bom que é {status_peso} que você está nos parâmetros ideais.')

Dessa forma, o seu programa ganha inteligência e passa a validar o que o usuário realmente digitou, evitando que a palavra "Não" seja interpretada como um valor verdadeiro pelo sistema.

Muito legal ver a sua evolução e curiosidade testando os tipos de dados do Python. Continue explorando essas funções!

Espero que possa ter lhe ajudado!

Bom dia Evandro,
Obrigada pela informação. Como eu ainda não pratiquei o if e else ficava um pouco difícil ter uma noção mais aprofundada. Todavia assim que eu chegar nos proximos dias no if e else eu vou aplicar esse exemplo.
e te questiono se eu de fato compreendi a lógica. Hje finalizo o mod 2.