Reputation: 11
I have this following problem from a book I’m learning from and I'd like to know how you would interpret this code to get to the answer (14) because I’m having a hard time getting there. I understand the concept of for loops but this nested one got me good:
When the looping completes, what number will display?
outer_loop_total = 0
inner_loop_total = 0
countries = ["Albania", "Morocco", "Brazil", "Denmark"]
capitals = ["Tel Aviv", "Abuja", "Brasília", "Islamabad"]
for country_to_check in countries:
outer_loop_total += 1
for city_to_check in capitals:
inner_loop_total += 1
if country_to_check == "Brazil" and city_to_check == "Brasília":
print(outer_loop_total + inner_loop_total)
Upvotes: 1
Views: 54
Reputation: 1547
The inner loop gets executed everytime the outer loop gets executed.
For that outer_loop_total
gets incremented until Brazil
has reached. inner_loop_total
gets incremented until Brasilia
+ x times it takes to reach Brazil
.
Lets calc (* 1
stands for your incremented number):
outer_loop_total
: 3 * 1inner_loop_total
: ((2 * 4) + 3) * 1outer_loop_total
+ inner_loop_total
= 3 + 11 = 14Until Morocco
in countries
(which is 2 times 2 * ..
) it goes until Islamabad
in capitals
(which is 4 times .. 4
).
For the last one, when it reaches Brasil
in countries
, it only goes until Brasília
(which is 3 times -> + 3
) .
Upvotes: 1
Reputation: 173
Sorry now I editted. You will see 14 number as an output because you have two loops. outer_loop_total will be 3 and inner_loop_total will be 11. You have 4 countries in your countries list. Your outer for loop will iterate in countries list orderly. For each country iterated , you iterate in all capitals in capital list. When your current country is "Brazil" and when your current capital is "Brasilia" you will see the output.
Upvotes: 0