for i in range(3):
    print(f"{i:<5}{i*i:<5}")
0 0
1 1
2 4
Код выводит значения переменной i и ее квадрата, выровненные по левому краю в поле шириной 5 символов.
Рассмотрим каждую итерацию цикла:
        f"{i:<5}{i*i:<5}" преобразуется в f"{0:<5}{0*0:<5}", что дает "0    0    ".  <5 указывает на выравнивание по левому краю и минимальную ширину поля в 5 символов.  Если значение занимает меньше 5 символов, оставшееся место заполняется пробелами.
      
        f"{i:<5}{i*i:<5}" преобразуется в f"{1:<5}{1*1:<5}", что дает "1    1    ".
      
        f"{i:<5}{i*i:<5}" преобразуется в f"{2:<5}{2*2:<5}", что дает "2    4    ".
      
Результат выполнения кода:
0    0    
1    1    
2    4