I don\'t quite understand output received from:
print(print(print(\'aaa\'))) aaa None None
print(print(print(\'aaa\')))
aaa
None
F
print(print('aaa'))
The outer print will receive as argument not what inner print printed to stdout, but what inner print returned. And print function never returns anything (equivalent to returning None). That's why you see this output.
print