P ython p rogramming e xercises



Yüklə 1,51 Mb.
Pdf görüntüsü
səhifə68/124
tarix14.05.2023
ölçüsü1,51 Mb.
#113537
1   ...   64   65   66   67   68   69   70   71   ...   124
PythonProgrammingExercisesGentlyExplained

Solution Design 
We need a pair of nested for loops to obtain the pairs of people in each handshake. The outer 
for
loop iterates over each index in the person list for the first handshaker, and the inner for loop 
iterates over each index in the person list after the outer loop’s index. 
The pattern behind the movements of i and j are easier to see when visually laid out, as in 
Figure 26-1, which uses a 5-item people list as an example. The indexes i and j refer to the two 
people in the handshake: 
Figure 26-1: The pattern of i and j’s movement. 
As the algorithm runs, j starts after i and moves to the right, and when it reaches the end, i 
moves right once and j starts after i again. In the above example with 5 people (indexes 0 to 4) i 
starts at 0 and j starts at i + 1, or 1. The j variable increments until it reaches 4, at which point i 
increments to 1 and j resets back to i + 1, which is now 2.
If you look at the overall range of i and j, you’ll see that i starts at index 0 and ends at the 
second to last index. Meanwhile, j starts at the index after i and ends at the last index. This means 
our nested for loops over the people list parameter would look like this: 
for i in range(0, len(people) - 1): 
for j in range(i, len(people)): 
This solution is identical to the nested for loops in Exercise #42, ―Bubble Sort.‖ 
Special Cases and Gotchas 
The most common mistake you want to avoid is having repeated handshakes. This can happen if 
your nested for loops cover the full range of indexes in the people list like so: 
for i in range(0, len(people)): 
for j in range(0, len(people)): 
In this case, i and j would run with each pair twice: for example, the first time with people[i] 
as the first handshaker and people[j] as the second handshaker, and then with people[i] as the 
second handshaker and people[j] as the first handshaker. 


Python Programming Exercises, Gently Explained 
81 
Now try to write a solution based on the information in the previous sections. If you still have 
trouble solving this exercise, read the Solution Template section for additional hints. 

Yüklə 1,51 Mb.

Dostları ilə paylaş:
1   ...   64   65   66   67   68   69   70   71   ...   124




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin