pesos = [106.0, 68.5, 75.0] alturas =[1.9, 1.53, 1.75]
imc = [] for peso in pesos: for altura in alturas: imcs = peso / altura ** 2 imc.append(imcs) print (imc)
pesos = [106.0, 68.5, 75.0] alturas =[1.9, 1.53, 1.75]
imc = [] for peso in pesos: for altura in alturas: imcs = peso / altura ** 2 imc.append(imcs) print (imc)
Boa noite, Helmut., tudo bom?
Eu entendi que o resultado que você deseja reproduzir é o seguinte:
`In [1]:`
import numpy as np
peso = array([106.0, 68.5, 75.0])
altura = array([1.9, 1.53, 1.75])
IMC = peso / altura ** 2
IMC
`Out [1]:`
array([29.36288089, 29.26224956, 24.48979592])
O seu código está escrito com loops aninhados. Desse jeito, o IMC será calculado utilizando todos os 3 pesos com todas as 3 alturas, produzindo uma lista com 9 resultados:
`In [2]:`
imc = []
for peso in pesos:
for altura in alturas:
imcs = peso / altura ** 2
imc.append(imcs)
print (imc)
`Out [2]:`
[29.363, 45.282, 34.612, 18.975, 29.262, 22.367, 20.776, 32.039, 24.490]
Para obter o mesmo resultado dos arrays numpy, tente varrer as duas listas ao mesmo tempo, usando um único loop for:
`In [3]:`
imc = []
for i in range(len(pesos)):
imc.append(pesos[i] / (alturas[i] ** 2))
print(imc)
`Out [3]:`
[29.362880886426595, 29.262249562134222, 24.489795918367346]
Também é possível obter o resultado desejado com uma única linha de código Python, usando List comprehensions (ver Aula 4):
`In [3]:`
[pesos[i] / (alturas[i] ** 2) for i in range(len(pesos))]
`Out [3]:`
[29.362880886426595, 29.262249562134222, 24.489795918367346]