Параметры sep, end, PEP 8

Слайд 1

📘 Тема урока: sep, end, PEP 8

Аннотация: Урок посвящён изучению необязательных параметров команды print()sep и end, а также множественному присваиванию, комментариям и стандарту кодирования PEP 8, которому следуют Python-разработчики.


🧩 Необязательные параметры команды print(): sep и end

По умолчанию команда print() выводит все аргументы через пробел, а после вывода делает перевод строки. Это поведение можно изменить с помощью параметров sep и end.

🔹 Параметр sep

Определяет, какой символ будет использоваться как разделитель между аргументами.

print('aa', 'bb', 'cc')

Вывод:

aa bb cc

Эквивалентная запись с явным указанием разделителя:

print('aa', 'bb', 'cc', sep=' ')

Можно задать другой символ-разделитель:

print('aa', 'bb', 'cc', sep='*')

Вывод:

aa*bb*cc

Можно использовать переменную:

minus = '-'
print('aa', 'bb', 'cc', sep=minus)

Вывод:

aa-bb-cc
💡 sep — это разделитель между аргументами в выводе.

🔹 Параметр end

По умолчанию после вывода команда print() добавляет символ перевода строки (\n). С помощью параметра end можно изменить это поведение.

print("A great man doesn't seek to lead.")
print("He's called to it. And he answers.")

Вывод:

A great man doesn't seek to lead.
He's called to it. And he answers.

Эквивалентно:

print("A great man doesn't seek to lead.", end='\n')
print("He's called to it. And he answers.", end='\n')

Если перевод строки не нужен, можно указать другой конец:

minus = '-'
print('a', 'b', 'c', end=minus)
print('second line')

Вывод:

a b c-second line
🧠 end определяет, какая строка добавляется в конце вывода. По умолчанию — это символ новой строки \n.

💬 Примечания

  • 1. Пустой print() делает перевод строки.
    print('Python')
    print()
    print('C#')
    print('Java')
    print()
    print('JavaScript')

    Вывод:

    Python
    
    C#
    Java
    
    JavaScript
  • 2. Последовательность символов \n — это управляющая последовательность (перевод строки).
    print('a', '\n', 'b', '\n', 'c', sep='*', end='#')

    Вывод:

    a*
    *b*
    *c#
  • 3. Параметры sep и end можно задавать одновременно.
    print('a', 'b', 'c', sep='*', end='finish')

    Вывод: a*b*cfinish

  • 4. Для разных команд print() можно использовать разные значения параметров.
    arg1 = 'Hello'
    sep1 = '_-_'
    end2 = '+++'
    
    print(arg1, 'everyone', sep=sep1, end='! ')
    print('How', 'are', 'you', 'in', '2024?', sep=' ', end=end2)

    Вывод: Hello_-_everyone! How are you in 2024?+++

  • 5. Чтобы убрать все дополнительные символы, установите sep и end как пустые строки:
    print('a', 'b', 'c', sep='', end='')
    print('d', 'e', 'f', sep='', end='')

    Вывод: abcdef

  • 6. Если нужно добавить несколько переводов строки:
    print('Python', end='\n\n\n')
  • 7. Именованные параметры sep и end всегда указываются после всех позиционных аргументов.
    print('5', '+', sep='_', '5', end='!!!', '=', '10')
    SyntaxError: positional argument follows keyword argument
  • 8. Параметр sep работает только при наличии нескольких аргументов.
    print('Python', sep='777')

    Вывод: Python