Функции возвращают значения
Иногда нужно узнать какие числа или другие значения были у функции, когда она работала.
Тогда можно сказать функции, чтобы она ВЕРНУЛА (
return
) это нужное нам значение
Пример. Нарисуем квадрат, вычислим его середину и вернем это значение
#
from turtleru import *
import math
def carre(размер,какой):
# запомним от какой точки будем рисовать
т1 = где()
размерПера(4)
пероВниз()
цвет(какой)
# вычислим координаты середины
хц = размер/2
уц = размер/2
# нарисуем квадрат
вперед(размер)
лево(90)
вперед(размер)
лево(90)
вперед(размер)
лево(90)
вперед(размер)
пероВверх()
# запомним точку центра
центр = [хц, уц]
print(центр)
# ВЕРНЕМ ЗНАЧЕНИЕ центр
return центр
начало()
# Нарисуем квадрат и получим точку центра
# вычислять ее больше не нужно
# центр вычисляет функция carre()
центр = carre(100, "синий");
# поставим черепаху на этот центр
встатьНа(центр)
пиши(центр)
конец()
Задача 1. Центр окружности
Написать функцию
def circR(radius, color)
, которая ВОЗВРАЩАЕТ точку центра окружности. Получить эту точку в программе и поставить туда черепаху.
Задача 2 Центр треугольника
Написать функцию
def trC(size, color)
, которая рисует правильный треугольник и возвращает точку центра этого треугольника. Получить эту точку в программе и поставить туда черепаху.
Задача 3 Вписанная окружность
Написать функцию
def trOk(size, color)
, которая рисует правильный треугольник и возвращает радиус вписанной окружности. После работы функции черепаха стоит на половине стороны и повернута по направлению движения.
В основной программе нарисовать вписанную окружность
Задача 4 Описанная окружность
Написать функцию
def carre(size, color)
, которая рисует квадрат и возвращает радиус описанной окружности. После работы функции черепаха стоит в углу квадрата и повернута перпендикулярно диагонали.
В основной программе нарисовать описанную окружность
Условия.
Чтобы выбрать какое действие выполнить есть УСЛОВИЯ
Например. Если размер квадрата равен 0, то не будем его рисовать.
def carre(размер, какой):
размерПера(4)
пероВниз()
цвет(какой)
if размер == 0:
пиши("не буду рисовать")
# здесь функция сразу перестанет работать
return где()
# а это будет выполнять если не 0
for n in range(4):
вперед(размер)
лево(90)
Можно сравнить и по-другому
def carre(размер, какой):
размерПера(4)
пероВниз()
цвет(какой)
if размер >200 :
пиши("очень большой!")
for n in range(4):
вперед(размер)
лево(90)
Можно и так написать:
def carre(размер, какой):
размерПера(4)
пероВниз()
цвет(какой)
if 0 < размер and размер < 200 :
пиши("правильный!")
else:
пиши("плохие размеры")
return
for n in range(4):
вперед(размер)
лево(90)
Задача 5 Круг слева
Написать функцию
def line(x)
, которая рисует вертикальную линию с координатой
x
. Написать функцию
def circRight(центр, радиус, х)
, которая рисует круг, если он будет полностью находится СПРАВА от линии. Если круг находится cлева от линии или пересекает линию, пишет
Не буду рисовать
. Координаты точки можно написать и так:
[x,y]
, напрмер
[100,0]
или
[-250, 100]
и так далее.
Задача 6 Разные квадраты
Функция
carre(size, color)
рисунт квадрат цвета
color
. Функция
carres(size1, size2, color1, color2)
рисует два квадрата цветом
color1
и
color2
. Если цвета совпадают, второй квадрат будет не видно. Маленький квадрат должен быть ВИДЕН НА БОЛЬШОМ.
Напишем функцию так, чтобы поменять красный и желтый цвета:
def carre2(size1,size2,color1,color2):
if color1 == color2:
if color1 == "красный":
color2 = "желтый"
if color1 == "желтый":
color2 = "красный"
carre(size1, color1)
carre(size2, color2)
Дописать функцию так, чтобы поменять все цвета. Проверить ее работу
Задача 7 Черточки
Написать функцию
def dash(size, step)
, которая рисует черточки размером
step
на полоске размером
size
. Цвет черточек меняется: нечетная - красная, четная - зеленая
Задача 8 Вложенные квадраты
Написать функцию
def carreInf(size, skolko)
, которая рисует
skolko
вложенных цветных квадратов. Размер стороны квадрата каждый раз
уменьшается на 20. Если размер становится равен 0, то рисование прекращается. Написать сколько получилось квадратов
вызов | взов |
carreInf(150,14) | carreInf(100,5) |
| |
Задача 9 "Шахматная" доска
Написать функцию
def chessLine(size, step, firstColor)
, которая рисует
size/step
клеточек размера
step
чередуя цвета клеток. Функция должна возвращать цвет последнего квдратика.
Написать функцию
chessPole(h,w,step)
, которая заполняет прямоугольник размером
h x w
клеточками размера
size
. При этом цвета должны чередоваться в шахматном порядке
Задача 10. Ветки
Написать функцию
def branch(n, size0, dsize, ang0, dang)
которая рисует 1 ветку из n отрезков. Первый отрезок длины size0, каждый следующий меньше на dsize. Первый угол поворота налево ang0, каждый следующий больше на dang.
Функция должна возвращать точку, в которой стоит черепаха, после того, как нарисовали половину отрезков ветки.
Чтобы нарисовать этот узор использовали код:
for i in range(3):
pc = branch(6, 50, 5, 20, 10) # ветка вверх
пероВверх()
встатьНа(pc)
пероВверх()
встатьНа(pc)
--
TatyanaOvsyannikova2011 - 24 Apr 2017