In ex18, we write a function which uses a strange syntax for it's argument. def print_two(*args):
I think this is used because it packs all the arguments it recieves into the 'args' list. I don't understand, why do we need to do this if Python is weakly typed language? Why not simply use a single variable name to accept all the parameters to that function?