August 13, 2024

Форматирование вывода в терминал

В Python существует множество способов форматировать вывод в терминал. Вот несколько распространенных методов и примеров:

1. Форматирование с помощью `join()`

- **С разделителем запятой:**
  
  ```python
  w_list = ['mkjk', 'irufwb', 'rkugvb', 'euffgb', 'erhah']
  строка_слов = ', '.join(w_list)
  print(строка_слов)
  ```

- **С разделителем тире:**

  ```python
  строка_слов = ' - '.join(w_list)
  print(строка_слов)
  ```

2. Форматирование с помощью `print()` и распаковки списка

- **С пробелом между словами:**

  ```python
  print(*w_list)
  ```

- **С новой строкой между словами:**

  ```python
  print(*w_list, sep='\n')
  ```

3. Форматирование с помощью цикла `for`

- **Вывод каждого слова на новой строке:**

  ```python
  for слово in w_list:
      print(слово)
  ```

- **Вывод с пронумерованными строками:**

  ```python
  for индекс, слово in enumerate(w_list, start=1):
      print(f"{индекс}. {слово}")
  ```

4. Форматирование с помощью `f-string`

- **Комбинирование текста и значений переменных:**

  ```python
  for слово in w_list:
      print(f"Слово: {слово}")
  ```

5. Форматирование с помощью модуля `textwrap` для ширины столбца

- **Вывод с ограничением ширины строки:**

  ```python
  import textwrap
  long_text = " ".join(w_list)
  wrapped_text = textwrap.fill(long_text, width=20)
  print(wrapped_text)
  ```

6. Форматирование с помощью модуля `pprint` для структурированных данных (хз)

- **Вывод с использованием `pprint`:**

  ```python
  from pprint import pprint
  pprint(w_list)
  ```

### Пример комплексного использования

```python
import textwrap
w_list = ['mkjk', 'irufwb', 'rkugvb', 'euffgb', 'erhah']
long_text = " ".join(w_list)
print("1. Список слов через запятую и пробел:")
print(', '.join(w_list))
print("\n2. Список слов через тире:")
print(' - '.join(w_list))
print("\n3. Список слов с новой строки:")
print(*w_list, sep='\n')
print("\n4. Пронумерованный список слов:")
for индекс, слово in enumerate(w_list, start=1):
    print(f"{индекс}. {слово}")
print("\n5. Длинный текст с переносами:")
wrapped_text = textwrap.fill(long_text, width=20)
print(wrapped_text)

print("\n6. С доп словом в столбик:")
for слово in w_list:
      print(f"Слово: {слово}")

```

В терминале при этом:

1. Список слов через запятую и пробел:
mkjk, irufwb, rkugvb, euffgb, erhah

2. Список слов через тире:
mkjk - irufwb - rkugvb - euffgb - erhah

3. Список слов с новой строки:
mkjk
irufwb
rkugvb
euffgb
erhah

4. Пронумерованный список слов:
1. mkjk
2. irufwb
3. rkugvb
4. euffgb
5. erhah

5. Длинный текст с переносами:
mkjk irufwb rkugvb
euffgb erhah

6. С доп словом в столбик:
Слово: mkjk
Слово: irufwb
Слово: rkugvb
Слово: euffgb
Слово: erhah

Этот код демонстрирует различные способы форматирования вывода списка в терминал, начиная от простого соединения через различные разделители и заканчивая использованием специальных модулей для структурированного вывода.