0
votes

Sortie étrange à l'aide de la boucle pour calculer l'IMC

Je reçois une sortie étrange et je ne sais pas pourquoi. J'utilise Google Colaboratory. Il suffit de ne pas comprendre pourquoi l'ajout de l'IMC 7 fois à la fin de chaque liste imbriquée. J'en ai seulement besoin ajouté une fois. J'ai raccourci la sortie de sorte que ce n'est pas un mur de texte aussi.

Liste p> xxx pré>

pour boucle p> xxx pré>

sortie lorsque vous avez couru p>

[['John',
  84.5,
  184,
  0.025769405833129092,
  0.025769405833129092,
  0.025769405833129092,
  0.025769405833129092,
  0.025769405833129092,
  0.025769405833129092,
  0.025769405833129092],
 ['Ryan',
  81.8,
  177,
  0.026452496099377696,
  0.026452496099377696,
  0.026452496099377696,
  0.026452496099377696,
  0.026452496099377696,
  0.026452496099377696,
  0.026452496099377696],


2 commentaires

Il est ajouté à la valeur 7 fois, car il y a 7 personnes dans votre liste et vous avez une boucle intérieure inutile qui est itération sur chacune d'elles (même si la boucle extérieure le fait déjà).


Ohhh je vois. Merci. Encore à apprendre.


3 Réponses :


0
votes

deuxième pour la boucle n'est pas nécessaire à cause de cela, il ajout de la même valeur plusieurs fois.

for person in person_data:
    weight = person[2]
    height = person[1]
    bmi = weight / height**2
    person.append(bmi) 


0 commentaires

1
votes

Supprimer cette boucle intérieure et énumérer:

for person in person_data:
    weight = person[2]
    height = person[1]
    bmi = weight / (height ** 2)
    person.append(bmi)


1 commentaires

C'est pour un cours, je pensais la même chose, mais c'est dans le cours fonctionnant comme ... Heights = [184, 177, 190, 188, 159, 166] Poids = [84.5, 81.8, 86.1, 92.2, 69.6 , 72.0] noms = ['John', 'Ryan', 'Bobby', 'Pete', 'Esther', 'Jane']



0
votes

vous personne.Appendez la fonction (BMI) est à l'intérieur de la boucle imbriquée lorsque cela ne doit pas être. Si vous enlevez un indent, il ne jettera pas si de fois l'IMC. Vous voulez seulement ajouter l'IMC une fois par personne, de sorte qu'il devrait vraiment être dans la première à la boucle, pas dans celui qui fait le calcul.


0 commentaires