В этой статье мы рассмотрим пример использования функций в языке программирования Python для создания программ, которые рисуют различные геометрические фигуры.
Мы создадим две функции: triangle() для рисования треугольника и rectangle() для рисования прямоугольника. Затем мы напишем простой код, который позволяет пользователю выбрать одну из этих фигур и вызвать соответствующую функцию.
Тот же код ниже для копирования и вставки в программу. Не забывайте про необходимый отступ пробелами в определённых местах в начале строки, так как код на сервере блога может отображаться некорректно.
def triangle(): # Объявление функции (подпрограммы) рисования треугольника. Функция объявляется до основного кода и начинается со слова def. Далее обязательно идёт имя функции, скобки и двоеточие.
stars = 1
for line in range(10):
print(' ' * (10 - line - 1), end = '')
print('*' * stars)
stars += 2
# Верхние пять строчек — это тело функции с обязательными пробелами в начале строки.
def ractangle(): # Объявление функции (подпрограммы) рисования прямоугольника
for line in range(10):
if line == 0 or line == 9:
print('*' * 10)
else:
print('*' + ' ' * 8 + '*')
# Верхние пять строчек — это тело функции с обязательными пробелами в начале строки.
choice = int(input('Какую фигуру нарисовать?: 1 - треугольник или 2 - прямоугольник: '))
print()
if choice == 1:
triangle()
elif choice == 2:
ractangle()
else:
print('Ошибка ввода выбора фигуры!')
Результаты работы кода в программе:
Объяснение каждой строчки кода в функции рисования треугольника:
- def triangle()
Это объявление функции. В Python функция всегда должна быть объявлена перед её вызовом. Имя функции triangle указывает на то, что она будет использоваться для рисования треугольника.
- stars = 1
Начальное значение переменной stars, которая будет определять количество звёзд (*) в строке.
- for line in range(10): Цикл от 0 до 9 (включительно). Этот цикл определяет строки в треугольнике.
- print(' ' * (10 - line - 1), end = '')
Эта строка печатает пробелы так, чтобы первая строка была полностью заполнена, а последняя строка имела только один пробел. Аргумент end='' гарантирует, что следующий символ не будет добавлен к концу строки.
- print('*' * stars)
Печатается количество звёзд, равное текущему значению переменной stars.
- stars += 2
После печати строки увеличивается переменная stars, чтобы в следующей строке было больше звёзд.
Объяснение каждой строчки кода в функции рисования прямоугольника:
- def ractangle():
То же самое, что и для функции triangle().
- for line in range(10):
Цикл по всем строкам прямоугольника.
- if line == 0 or line == 9:
Если строка находится в первой или последней позиции, печатаем полный ряд звёзд.
- else: print('*' + ' ' * 8 + '*')
Если строка не является ни первой, ни последней, печатаем семь пробелов и одну звезду посередине.
Основной код программы
Объяснение каждой строчки кода:
- choice = int(input('Какую фигуру нарисовать?: 1 - треугольник или 2 - прямоугольник: '))
Пользователь вводит число 1 или 2, которое определяет, какую фигуру он хочет нарисовать.
- print()
Пробел после ввода, чтобы отделить вывод пользователя от вывода программы.
- if choice == 1:
Проверяем, выбрал ли пользователь треугольник.
- triangle()
Вызываем функцию triangle(), чтобы нарисовать треугольник.
- elif choice == 2:
Аналогично проверяем выбор прямоугольника.
- ractangle()
Вызываем функцию rectangle(), чтобы нарисовать прямоугольник.
- else: Если ввод пользователя неверен, программа выведет сообщение об ошибке.
Код с расшифровкой некоторых строк
Заключение
Использование функций в Python делает программу более читаемой и удобной для повторного использования. Программист может легко создавать новые функции и комбинировать их для выполнения различных задач. Например, можно создать другие функции для рисования других фигур или даже для сложных графических объектов. Функции позволяют разделять большие задачи на маленькие части, которые легче понять и поддерживать. Они также помогают избежать дублирования кода, делая программу более эффективной и гибкой.
ПОЛЕЗНЫЕ РЕСУРСЫ:
---------------------------------------------------
Сообщество дизайнеров в VK
https://vk.com/grafantonkozlov
Телеграмм канал сообщества
https://t.me/grafantonkozlov
Архив эксклюзивного контента
https://boosty.to/antonkzv
Канал на Дзен
https://dzen.ru/grafantonkozlov
---------------------------------------------------
Бесплатный Хостинг и доменное имя
https://tilda.cc/?r=4159746
Мощная и надежная нейронная сеть Gerwin AI
https://t.me/GerwinPromoBot?start=referrer_3CKSERJX
GPTs — плагины и ассистенты для ChatGPT на русском языке
https://gptunnel.ru/?ref=Anton
---------------------------------------------------