Executando verificação de segurança...
Em resposta a [Não disponível]
2

Eu estou estudando e usei aqui no meu app:

Esse é um mini programa para calcular a taxa basal de uma pessoa, para fins de dieta:

Inserindo os dados:

print(f'Olá, seja bem vindo a Calculadora de Taxa Metabolica Basal.')
print(f'Primeiramente, como devo te chamar? ')
nome = str(input())
print('Digite seu Gênero. (M ou F): ')
sexo = str(input())

print(f'- Certo {nome.title()}, qual seu nível de atividade física?')
print()
print(' Digite <1> para Sedentário')
print(' Digite <2> para Exercício Leve (1-3 dias por semana)')
print(' Digite <3> para Exercício Moderado (3-5 dias por semana)')
print(' Digite <4> para Exercício Intenso (6-7 dias por semana)')
print(' Digite <5> para Exercício Muito Intenso (Atleta, 2x por dia)')
print()
atividade = int(input('Digite um valor de 1 a 5: '))
while atividade > 5:
atividade = int(input('Valor Inválido. Digite um valor de 1 a 5: '))
print()
altura = float(input('Digite sua altura em centimentros: '))
while altura <= 1:
altura = int(input('Altura Inválida. Digite novamente: '))
print()
peso = float(input('Digite seu peso atual em KG: '))
while peso <= 1:
peso = int(input('Peso Inválido. Digite novamente: '))
print()
idade = int(input('Digite sua idade: '))
while idade <= 1:
idade = int(input('Idade Inválida. Digite novamente: '))

calculando a TMB:

tmb = ((10 * peso) + (6.25 * altura) - (5 * idade))

if sexo.upper() == 'M':
tmb = tmb + 5
else:
tmb = tmb - 161

if atividade == 1:
tmb = tmb * 1.2
elif atividade == 2:
tmb = tmb * 1.375
elif atividade == 3:
tmb = tmb * 1.55
elif atividade == 4:
tmb = tmb * 1.725
elif atividade == 5:
tmb = tmb * 1.9
print()
print('Qual o seu Objetivo?')
print(' Digite <0> para MANTER PESO.')
print(' Digite <1> para PERDER PESO (Emagrecimento).')
print(' Digite <2> para GANHAR PESO (Hipertrofia).')

objetivo = int(input())
while objetivo > 2:
print('Qual o seu Objetivo?')
print('Digite <0> para MANTER PESO.')
print('Digite <1> para PERDER PESO (Emagrecimento).')
print('Digite <2> para GANHAR PESO (Hipertrofia).')
objetivo = int(input())
print()

print('################################################################################')
print(f'{nome.title()}:')
print(f'Sua Taxa Metabólica Basal DIÁRIA é de: %.2f calorias por dia.' % (tmb))
print(f'Sua Taxa Metabólica SEMANAL é de: %.2f calorias.' % (tmb*7))
print()

if objetivo == 1:
print(f' Para você perder peso de forma saudável, é recomendado você ingerir no máximo %.2f por dia.' % (tmb-500))
if objetivo == 2:
print(f' Para você ganhar peso de forma saudável, é recomendado você ingerir no máximo %.2f por dia.' % (tmb+500))
if objetivo == 0:
print(f' Para você manter seu peso, deverá ingerir a quantidade de calorias indicadas na sua taxa basal.')
print('################################################################################')
print()
print()
print('Pressione para encerrar este programa.')
input()

Pode ver, tem vários WHILE, que é para quando a pessoa digita algo que não era pra digitar, ele fica voltando até ser inserido o que é esperado.

Carregando publicação patrocinada...
1
2

Eu também tinha essa dúvida mas quando estava estudando java e tinha um exercício ficou bem simples usando while para ler todas as linhas de um arquivo csv.

try (BufferedReader br = new BufferedReader(new FileReader(path))){
        List<Employee> list =new ArrayList<>();
        String line = br.readLine();
        while (line !=null){
            String[] fields = line.split(",");
            list.add(new Employee(fields[0],fields[1],Double.parseDouble(fields[2]);
            line = br.readLine();
        
1
1

Sim, sim... eu conheço o uso, a questão é: Se você fosse lançar esse aplicativo em qualquer outro contexto que não fosse no seu prompt, você não usaria o while. Saca? Quando fazemos esses programinhas quando estamos iniciando, o While é nosso melhor amigo! Porém em situações reais, nada que um forEach ou map não resolva.