Как напечатать табуляцию в Python
В этой статье мы рассмотрим, как напечатать табуляцию, т.е. вывести на экран табы (или пробелы) в виде отступов между частями строки.
Содержание
- Как напечатать табуляцию в Python
- Печать табуляции при форматировании строки
- Вывод табуляции при форматировании строки с помощью str.format()
- Печать табуляции с помощью оператора сложения (+)
- Объединение списка строк с помощью табуляции как разделителя
- Получение строки длиной N с выравниванием по левому краю
- Вставка табуляции в существующую строку на определенную позицию
- Запись в файл значений, разделенных табами
- Как печатать пробелы в Python
Как напечатать табуляцию в Python
Для вывода табуляции используется символ t. Например, print(‘bobbythadz’). Символ t внутри строки является управляющей последовательностью для символа табуляции.
string = 'bobbythadz' print(string) # ?️ bobby hadz print(repr('t')) # ?️ 't' tab = 't' string = f'bobby{tab}hadz' print(string) # ?️ bobby hadz first = 'bobby' last = 'hadz' print(first + 't' + last) # ?️ bobby hadz print('a', 'b', 'c', sep='t') # ?️ 'a b c'
Если вам нужно просто напечатать табуляцию, используйте символ t в строке.
string = 'bobbythadz' print(string) # ?️ bobby hadz
Если вам нужно напечатать саму управляющую последовательность для символа табуляции, передайте строку функции repr().
print(repr('t')) # ?️ 't'
Печать табуляции при форматировании строки
Для добавления табуляции при форматировании строки используйте f-строки.
От редакции Pythonist: подробнее о форматировании читайте в статье «Форматирование строк в Python: format() и f-строки».
tab = 't' string = f'bobby{tab}hadz' print(string) # ?️ bobby hadz
Обратите внимание, что мы сохранили символ t в переменной. Это связано с тем, что f-строки не могут содержать символы обратной косой черты в выражениях.
f-строки позволяют нам включать выражения внутрь строки, предваряя строку символом f.
tab = 't' first = 'bobby' last = 'hadz' string = f'{first}{tab}{last}' print(string) # ?️ bobby hadz
Обязательно заключайте выражения в фигурные скобки — {expression}.
Обратную косую черту нельзя использовать в выражениях, но между ними можно.
first = 'bobby' last = 'hadz' salary = 50 string = f"{first}t{last}t{salary}" print(string) # ?️ bobby hadz 50
Вывод табуляции при форматировании строки с помощью str.format()
В качестве альтернативы можно использовать метод str.format(). Он выполняет операции форматирования строк.
first = 'bobby' last = 'hadz' string = '{}t{}'.format(first, last) print(string) # ?️ bobby hadz
Строка, для которой вызывается метод, может содержать поля-плейсхолдеры, указанные с помощью фигурных скобок {}.
Печать табуляции с помощью оператора сложения
Также для форматирования строк с табуляцией можно применять оператор сложения (+).
first = 'bobby' last = 'hadz' age = 30 # ?️ bobby hadz 30 print(first + 't' + last + 't' + str(age))
Оператор сложения используется для конкатенации строк.
Однако необходимо убедиться, что значения с левой и правой стороны оператора имеют тип string. Если у вас есть значения другого типа, используйте класс str(), чтобы преобразовать их в строки.
Если вам при печати нужно разделить несколько значений табуляцией, используйте аргумент sep функции print().
print('a', 'b', 'c', sep='t') # ?️ 'a b c'
Аргумент sep — это разделитель между аргументами, которые мы передаем в функцию print().
print('bobby', 'hadz', sep='') # ?️ bobbyhadz print('bobby', 'hadz') # ?️ bobby hadz
По умолчанию в качестве разделителя используется пробел.
Объединение списка строк с табуляцией в качестве разделителя
Для объединения нескольких строк с табуляцией в качестве разделителя можно использовать метод str.join().
От редакции Pythonist: подробнее об объединении и разделении строк читайте в статье «Строковые методы split() и join() в Python».
a_list = ['bobby', 'hadz', 'com'] result = 't'.join(a_list) print(result) # ?️ bobby hadz com
Этот метод принимает в качестве аргумента итерируемый объект (список) и возвращает строку, которая является конкатенацией строк в списке.
Обратите внимание, что метод выдает ошибку типа TypeError, если в итерируемом объекте есть значения, не являющиеся строками.
Если итерируемый объект содержит числа или данные других типов, преобразуйте их все в строки перед вызовом join().
a_list = ['bobby', 1, 'hadz', 2, 'com'] result = 't'.join(str(item) for item in a_list) print(result) # ?️ bobby 1 hadz 2 com
Как разделитель между элементами используется строка, на которой вызывается метод.
В качестве альтернативы можно обращаться к каждому элементу списка по индексу и использовать оператор сложения.
a_list = ['bobby', 1, 'hadz'] result = a_list[0] + 't' + str(a_list[1]) + 't' + a_list[2] print(result) # ?️ bobby 1 hadz
Обратите внимание, что чтобы использовать оператор сложения, нам пришлось при помощи str() преобразовать целочисленное значение в строку.
Индексация в Python начинается с нуля, поэтому первый элемент списка имеет индекс 0, а последний элемент — -1 или len(my_list) — 1.
Получение строки с длиной N и выравниванием по левому краю
Если вам нужно вернуть выровненную по левому краю строку определенной длины, воспользуйтесь методом str.ljust().
my_list = ['ab', 'abcd', 'abcdefg'] for item in my_list: print(f'{item.ljust(10)} another') # ab another # abcd another # abcdefg another
Метод str.ljust выравнивает конец строки до указанной ширины с помощью символа заполнения.
Этот метод принимает два аргумента: width (общая длина вставляемой строки) и fillchar (символ, которым нужно заполнить строку).
Если символ заполнения не указан, строка заполняется пробелами.
Вставка табуляции в существующую строку по определенному индексу
Если вам нужно вставить табуляцию на определенную позицию существующей строки, используйте срезы строк.
string = 'bobbyhadz' new_string = string[:5] + 't' + string[5:] print(new_string) # ?️ bobby hadz
Синтаксис для нарезки строк таков: my_str[start:stop:step].
Индекс start является инклюзивным, а индекс stop — эксклюзивным (до, но не включая).
Помним, что индексация начинается с нуля, поэтому первый символ в строке имеет индекс 0, а последний — -1 или len(my_str) — 1.
Срез string[:5] начинается с индекса 0 и идет до индекса 5, но не включает его.
Срез string[5:] начинается с индекса 5 и идет до конца строки.
Запись в файл значений, разделенных символами табуляции
Чтобы записать значения, разделенные табуляцией, в файл, выполните следующие действия:
- Откройте файл в режиме записи.
- Используйте символ t, чтобы вставить табуляцию в строку.
- Используйте метод file.write(), чтобы записать строку в файл.
# ✅ write strings separated by tabs to file with open('example.txt', 'w', encoding='utf-8') as my_file: my_file.write('bobby' + 't' + 'hadz' + 'n') my_file.write('firsttsecond') # ✅ separate the items of a list by tabs and write the result to a file with open('example.txt', 'w', encoding='utf-8') as my_file: my_list = ['bobby', 'hadz', 'com'] my_file.write('t'.join(my_list) + 'n')
Для открытия файла в режиме записи мы использовали оператор with. Он позаботится об автоматическом закрытии файла.
От редакции Pythonist: подробнее о работе с файлами читайте в статье «Чтение и запись файлов в Python».
Если вам нужно просто вставить табуляцию в строку, используйте символ t.
with open('example.txt', 'w', encoding='utf-8') as my_file: my_file.write('bobby' + 't' + 'hadz' + 'n') my_file.write('firsttsecond')
Содержимое файла example.txt выглядит следующим образом:
bobby hadz first second
Чтобы убедиться, что файл содержит табуляцию, можно прочитать его.
with open('example.txt', 'r', encoding='utf-8') as f: lines = f.readlines() print(lines) # ?️ ['bobbythadzn', 'firsttsecond']
Символ n служит для добавления перевода на новую строку.
Если вам нужно разделить элементы списка табуляциями и записать результат в файл, используйте метод str.join().
with open('example.txt', 'w', encoding='utf-8') as my_file: my_list = ['bobby', 'hadz', 'com'] my_file.write('t'.join(my_list) + 'n')
Метод str.join принимает в качестве аргумента итерируемый объект и возвращает строку, которая является конкатенацией строк из итерируемого объекта.
Обратите внимание, что метод выдает ошибку типа TypeError, если в итерируемом объекте есть значения, не являющиеся строками. Чтобы этого избежать, перед вызовом join() преобразуйте данные других типов в строки.
with open('example.txt', 'w', encoding='utf-8') as my_file: my_list = ['bobby', 1, 'hadz', 2, 'com'] my_file.write('t'.join(str(item) for item in my_list) + 'n')
Строка, на которой вызывается метод, используется в качестве разделителя между элементами.
Мы вызвали метод str.join() на строке — символе табуляции, чтобы соединить элементы списка через табуляцию.
Содержимое файла выглядит следующим образом:
bobby 1 hadz 2 com
В качестве альтернативы можно обращаться к каждому элементу списка по индексу и использовать оператор сложения.
with open('example.txt', 'w', encoding='utf-8') as my_file: my_list = ['bobby', 1, 'hadz', 2, 'com'] my_file.write( my_list[0] + 't' + str(my_list[1]) + 't' + my_list[2] + 't' + str(my_list[3]) + 't' + my_list[4] + 'n' )
Не забывайте следить за тем, чтобы значения с левой и правой стороны оператора были строковыми. Значения других типов сначала нужно привести к типу string при помощи str().
Вы также можете использовать цикл for для итерации по списку и добавления табуляции после каждого элемента.
with open('example.txt', 'w', encoding='utf-8') as my_file: my_list = ['bobby', 1, 'hadz', 2, 'com'] for word in my_list: my_file.write(str(word) + 't') my_file.write('n')
Цикл for перебирает элементы списка и использует оператор сложения для добавления табуляции после каждого элемента.
Последний шаг — запись символа новой строки (n) в файл.
Как печатать пробелы в Python
Для печати нескольких последовательных пробелов используйте оператор умножения.
print(' ') # ?️ ' ' print(' ' * 5) # ?️ ' ' print(repr(' ')) # ?️ ' ' print(repr(' ' * 5)) # ?️ ' ' space = ' ' print(f'bobby{space * 5}hadz') # ?️ 'bobby hadz' print('bobby' + ' ' * 5 + 'hadz') # ?️ 'bobby hadz' print('bobby', 'hadz', 'com') # ?️ bobby hadz com
Когда оператор умножения используется со строкой и целым числом, он повторяет строку указанное количество раз.
print(' ') # ?️ ' ' print(' ' * 5) # ?️ ' ' print(repr(' ')) # ?️ ' ' print(repr(' ' * 5)) # ?️ ' '
Используйте функцию repr(), если вам нужно напечатать кавычки вокруг строки, чтобы проверить ее длину.
Вы также можете сохранить пробел в переменной и умножать переменную на N.
space = ' ' print(space) # ?️ ' ' print(space * 5) # ?️ ' ' print(repr(space)) # ?️ ' ' print(repr(space * 5)) # ?️ ' '
Как напечатать пустую строку
Если вам нужно напечатать пустую строку, вызовите функцию print(), не передавая ей никаких аргументов.
print('before') print() print('after') # before # after
Печать пробелов при форматировании строки
Чтобы вывести пробелы между переменными или при форматировании строки, используйте f-строки.
space = ' ' print(f'bobby{space * 5}hadz') # ?️ 'bobby hadz' first = 'bobby' last = 'hadz' print(f'{first}{space * 5}{last}') # ?️ bobby hadz
Обязательно заключайте выражения в фигурные скобки — {expression}.
var1 = 'bobby' var2 = 'hadz' result = f'{var1}{var2}' print(result) # ?️ bobbyhadz
Если вы используете строку, содержащую пробел, обязательно чередуйте одинарные и двойные кавычки.
print(f'bobby{" " * 5}hadz') # ?️ 'bobby hadz' first = 'bobby' last = 'hadz' print(f'{first}{" " * 5}{last}') # ?️ bobby hadz
f-строка заключена в одинарные кавычки, поэтому для внутренней строки нам пришлось использовать двойные. Если бы мы использовали одинарные кавычки и внутри, и снаружи, то преждевременно прервали бы f-строку.
Для печати пробелов можно также использовать оператор сложения.
first = 'bobby' last = 'hadz' print(first + ' ' * 5 + last) # ?️ bobby hadz print('bobby' + ' ' * 5 + 'hadz') # ?️ 'bobby hadz'
Не забывайте о приведении типов.
print('Number:' + ' ' * 5 + str(100)) # ?️ Number: 100
Если вам нужно напечатать несколько значений через пробел, при вызове print() просто разделяйте значения запятыми.
print('bobby', 'hadz', 'com') # ?️ bobby hadz com
Если в print() не передавать разделитель (аргумент sep), то по умолчанию в качестве разделителя используется пробел.
print('bobby', 'hadz', sep='') # ?️ bobbyhadz print('bobby', 'hadz') # ?️ bobby hadz
Функция print() также принимает аргумент end. Он выводится в конце сообщения.
print('a', 'b', 'c') # ?️ 'a b cn' print('a', 'b', 'c', end='') # ?️ 'a b c'
По умолчанию end — это символ новой строки (n).
Если задать в качестве аргумента end пустую строку, то символ новой строки в конце сообщения не добавляется.
Перевод статьи «How to print a Tab in Python».
- 1 views
- 0 Comment