While doing Python Strings Medical Insurance project, in the extra exercise portion of it:

If I run the following code:

insurance_costs = [‘$7010.0’, ‘$4050.0’, ‘$12060.0’, ‘$7500.0’, ‘$3022.0’, ‘$4620.0’, ‘$16330.0’, ‘$2900.0’, ‘$19370.0’, ‘$7045.0’]

clean_digits_insurance =

total_insurance = 0.0

for i in insurance_costs:

clean_digits_insurance.append(float(i.strip(“$”)))

for n in clean_digits_insurance:

total_insurance += n

print(total_insurance)

#the total I received is 416567.0

However if I run it this way:

clean_digits_insurance =

total_insurance = 0.0

for i in insurance_costs:

clean_digits_insurance.append(float(i.strip(“$”)))

for n in clean_digits_insurance:

total_insurance += n

print(total_insurance)

#the total I received is 83907.0 (This being the correct amount)

I have completed the project, however I am still uncertain on why the amounts vary.

thanks for any help!

** I don’t know how to set it up here but in the first scenario the second for loop is a nested for loop

If the first case is a nested `for`

loop, and the second case is just two `for`

loops one after the other, then the reason that you’re getting a much higher value in the first case is that you increase `total_insurance`

for every value in `insurance_costs`

. For example:

```
insurance_costs = ['$17', '$18']
clean_digits_insurance = []
total_insurance = 0.0
for i in insurance_costs:
clean_digits_insurance.append(float(i.strip(“$”)))
for n in clean_digits_insurance:
total_insurance += n
#for the first iteration, tota_insurance is 17, as you'd expect
#However, for the second iteration (as there are two values in the insurance_costs array
#you increment totql_insurance by 18+17, which means it's actually 52
#rather than 35
```

In the second instance; however, as the loops are not nested, you build the `clean_digits_insurance`

array first, and then loop through it, meaning you don’t recount each value for every item in `insurance_costs`

.

I hope that helps!

3 Likes

Thank you very much for your response! it makes perfect sense. I appreciate you taking your time to provide me with an answer to my question!

1 Like