Understanding - Advanced, exercise 19
Text
The variable the variable my_family_name
contains the strings of a a family name. The variable my_mat_number
contains the string of a matriculation number of ten digits (e.g. "0000123456"
). Study the execution of the following function when it is called as follows: f(my_family_name, my_mat_number)
.
def f(last_name, mat):
d = {}
i = -1
for c in last_name:
if c not in d:
i = i + 1
d[i] = c
if len(d) > 0:
for n in mat:
i = int(n) % len(d)
return d[i] + f(last_name[1:], mat[1:])
return "$"
Hints
The function f
is a recursive function organised in two blocks. The second block contains the recursive step, while the if len(d) > 0
statement hides the basic case of the recursion when the condition is False
.
Additional material
The runnable Python file is available online. You can run it executing the command python exercise_19.py
in a shell, and then following the instructions on screen to specify the intended input.