Understanding - Intermediate, exercise 7
Text
The variable str_name contains the string of your full name (given name and family name separated by a space, e.g. "John Doe") and str_email contains your email address (e.g. "john.doe@example.com"). Study the execution of the following function when it is called as follows: f(str_name, str_email).
from collections import deque
def f(str_name, str_email):
    result = deque()
    name_len = len(str_name)
    n = len(str_email.split("@")[0])
    if n > name_len:
        n = name_len
    while n > 0:
        if n % 2 > 0:
            n = n - 1
        
        n = n // 2
        tmp = str_name[n]
        result.append(tmp)
    result.pop()
    
    return result
Hints
The method split(chars) creates a new list by tokenising the string on which we invoking the method everytime the string chars is encountered – for instance, "a;b;c".split(";") returns the list ["a", "b", "c"].
Additional material
The runnable Python file is available online. You can run it executing the command python exercise_7.py in a shell, and then following the instructions on screen to specify the intended input.