Метод write модуля turtle языка Python. Параметры write

Словарь урока

из модуля turtle:
  • teleport ‒ телепорт
  • goto ‒ перейти
  • write ‒ писать, записывать
  • stamp ‒ штамп, печать, отпечаток
  • font ‒ шрифт
  • align ‒ выравнивать
  • move ‒ двигаться
  • left ‒ слева, левый
  • right ‒ справа, правый
  • center ‒ центр, середина
  • normal ‒ обычный, нормальный, стандартный
  • bold ‒ смелый, крутой (в случае шрифтов переводится как "жирный")
  • italic ‒ курсив, курсивный (имеется в виду шрифт с наклоном)
из языка Python:
  • True ‒ истина, правда
  • False ‒ ложь, ложный

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

Прежде, чем изучить все возможности вывода текста на холст, отметим, почему write правильней называть не командой или функцией, а методом. В профессиональном программировании так называются команды, которые нельзя вызвать без объекта. Методы ‒ это функции, принадлежащие какому-либо объекту. В нашем случае таким объектом-экземпляром является черепашка, по умолчанию неявно существующая в программе. Когда по холсту будет ходить несколько экземпляров, мы будем писать перед методами их имена явно, чтобы различать, какой именно черепахе следует выполнять команду. Все это касается не только write, но и большинства других команд библиотеки turtle.

Еще немного теории следует сказать о том, каким общим словом называется то, что мы передаем в скобки метода или функции. Когда такие команды вызываются, то все, что им передается в скобках, обычно называют аргументами, потому что здесь используются конкретные значения. И понятно, что они могут быть разными. Однако где-то там, во внутреннем коде языка или модуля, где описывается внутренний механизм работы команды, вместо слова "аргументы" часто используют "параметры". У них есть имена, которые не меняются.

В метод write модуля turtle языка Python можно передавать от 1 до 4 аргументов. В большинстве случаев кроме первого, остальные следует связывать с именами параметров, которым они предназначаются. Это необходимо, чтобы Питону все было ясно, не было неоднозначности.

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

write('Hello World', font=('Lato Light', 16, 'normal'))

Возникает вопрос, как узнать имена шрифтов, которые можно использовать. Обычно в системных каталогах операционных систем есть наборы установленных. Проще всего их посмотреть в каком-нибудь текстовом или графическом редакторе.

Даже если вы укажите несуществующий шрифт, ничего страшного не произойдет. Модуль turtle выведет текст стилем шрифта по-умолчанию.

Способов начертания обычно четыре. Это обычный (normal), жирный (bold), курсив (italic), жирный курсив (bold italic).

Обратите внимание, что в аргументе параметра font метода write имя шрифта и начертание берутся в кавычки.

Следующий параметр, который мы разберем, ‒ это align, то есть выравнивание. В turtle оно может быть в трех вариантах ‒ по левому краю (left), по правому (right), по центру (center). В случае вывода текста на странице с этим все понятно. Так, если задано выравнивание по центру, то текст будет центрирован относительно всей страницы. Но что это значит в случае вывода на холсте в условиях, когда фраза выводится в месте нахождения черепахи? Ведь она может стоять в середине холста, слева, вверху… В любом случае там текст и появится.

Однако обратим внимание, что по умолчанию текст выводится, начиная от точки, где стоит черепаха, и уходит от нее вправо. То есть сама точка находится слева от текста. Рассмотрим такую программу:

write('Hello World 1', font=('Lora', 14, 'normal'))
stamp()

teleport(0, -75)
write('Hello World 2', align='right', font=('Lora', 14, 'normal'))
stamp()

teleport(0, -150)
write('Hello World 3', align='center', font=('Lora', 14, 'normal'))
stamp()

В местах пребывания черепахи мы оставляем штампы, чтобы видеть, где она всегда остается на месте после вывода текста. Она везде в центре холста по горизонтали. А вот где она находится относительно фразы, зависит от значения ее параметра align. По-умолчанию черепаха находится слева. Значения по умолчанию можно не передавать, поэтому в первом вызове write мы просто не указываем выравнивание.

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

У функции write есть еще один параметр ‒ move, который может внести свои сложности в понимание того, как же будет располагаться текст относительно черепахи, потому что этот параметр отвечает за перемещение ее самой. По умолчанию при вызове write черепаха остается на месте, она никуда не двигается. Но если move связать со значением True, она перейдет в конец фразы.

teleport(0, 50)
write('Hello World 1')
stamp()

teleport(0, 0)
write('Hello World 2', move=True)
stamp()

teleport(0, -50)
write('Hello World 3', move=True, align='center')
stamp()

Если не надо, чтобы черепашка чертила линию, то перед write используется команда поднятия ручки (карандаша), которую мы изучим позже.

Почти во всех языках программирования есть логический тип данных, в котором допустимы только два значения ‒ правда (true) и ложь (false). В методе write значением по-умолчанию параметра move является False.

Если во write передаются все четыре аргумента, можно не указывать имена параметров. Однако требуется строго соблюдать порядок: сначала передается основной аргумент (то, что выводится), потом значение для move, третьим ‒ выравнивание, четвертым ‒ шрифт.

write('Hello World', False, 'center', ('Lora', 14, 'normal'))

Имена параметров также можно не указывать, если не передаются последние аргументы:

write('Hello World', True)
write('Hello World', False, 'right')

Задания для самостоятельной работы

  1. Выведите в центре холста центрированный текст в несколько строк. Пример:
  2. Запрограммируйте вывод такого изображения:

Turtle. Программирование на Python для школьников




Все разделы сайта