Почему "\ t" в python автоматически выводит вывод влево? - PullRequest
0 голосов
/ 07 октября 2019

В домашнем задании мне сказали составить таблицу мощности с 5 строками и 10 столбцами. Значение таблицы мощности в строке i столбца j равно j ^ i. И столбец должен быть разделен табуляцией.

row = 5
column = 10

i = 1
while (i <= row):
    j = 1
    while( j <= column):
        print(j ** i, end = '\t')
        j += 1
    print("")
    i += 1

А вот вывод

Вывод

Это работает очень хорошо, но яне понимаю, почему каждый столбец автоматически выравнивается по левому краю. Разве '\ t' не должен каждый раз создавать вкладку одинаковой длины из 4 пробелов? Например, пробелы в последних 2 столбцах между «9 и 10» и «59049 и 100000», очевидно, не равны. Почему это так?

1 Ответ

1 голос
/ 07 октября 2019

Вот как это должно работать.

Символ табуляции, при печати на терминале, становится достаточно пробелов для пробела до следующего кратного 8 *. (Это делает его полезным для создания табуляции файлов.)

Поэтому, если вы печатаете пары чисел, разделенных табуляцией, вы получаете:

        | <-- 8 characters is here
1       23456
12      3456
123     456
1234    56

и т. Д. Но вы не можете увидеть этот эффект, когда используете их для отступа, потому что, когда перед ними ничего нет, все они выходят на полную ширину, поэтому вы получаете:

        | <-- 8 characters is here
non-indented stuff
        indented stuff

* Размер вкладки настраиваетсяво многих текстовых редакторах, но обычно не в терминалах, где вы получаете традиционное значение по умолчанию 8.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...