Раздел «Язык Си».PythonTurtleIfFor2:

Вспоминаем черепаху

Задача 0.1: строка из n квадратов

Напишите функцию sq(size), которая рисует один квадрат.

Напишите функцию sq_row(size, n), которая рисует строку из n квадратов и возвращает черепаху в начало строки.

Проверьте эти функции.

sq_row(30, 7) sq_row(50, 1)

Задача 0.2: столбец из n квадратов

Возьмите из предыдущей задачи функцию sq(size), которая рисует один квадрат.

Напишите функцию sq_col(size, n), которая рисует столбец из n квадратов и возвращает черепаху в начало столбца.

Проверьте эти функции. Пример вызова функции sq_col(30, 7) и sq_col(50, 1)

range

range дает много чисел. Когда пишем

for i in range(5):

IDEA! Из range берем следующее число и запоминаем его в переменную i

Пример 1: range(5) - числа от 0 до 4

# -*- coding: utf-8 -*-
import turtle           
import time

def write(data):
    t.write(data, font=("Arial", 14, "normal"))


t = turtle.Turtle()
t.shape("turtle")
t.width(3)

for i in range(5):
    write(i)
    t.fd(50)

turtle.done()

В i записываем один за другим числа от 0 до 4. Число 5 не записываем.

Пример 2: range(2, 5) - числа от 2 до 4

Изменим в примере вызов range(2, 5)

for i in range(2, 5):
    write(i)
    t.fd(50)

В i записываем один за другим числа от 2 до 4. Число 5 не записываем.

Пример 3: range(0, 200, 50) - числа от 0 до 200, прибавляя 50

Изменим в примере вызов range(0, 200, 50)

for i in range(0, 200, 50):
    write(i)
    t.fd(50)

В i записываем один за другим числа от 0 до 200, прибавляя 50. Число 200 не записываем.

Четные и нечетные разным цветом

Надо нарисовать:

Задачу можно решить по-разному.

Измените примеры, написав отдельную функцию change_color. Подумайте, какие аргументы должны быть у функции в разных примерах.

Пример 4: цвет чисел 0, 2, 4

Рисуем 0, 2, 4 желтым цветом, остальные - красным.

# -*- coding: utf-8 -*-
import turtle           
import time

def write(data):
    t.write(data, font=("Arial", 14, "normal"))


t = turtle.Turtle()
t.shape("turtle")
t.width(3)

for i in range(5):
    if i == 0 or i == 2 or i == 4:  # если i равен 0, 2 или 4
        col = 'gold'                # цвет желтый
    else :                          # иначе (i равен 1 или 3)
        col = 'red'                 # цвет красный
    t.pencolor(col)
    
    write(i)
    t.fd(50)

turtle.done()

Сравнение

Операции сравнения

математика python пример (ДА)
< < 3 < 5
<= 3 <= 5
3 <= 3
> > 5 > 3
>= 5 > 3
3 >= 3
= == 3 == 3
!= 3 != 5

IDEA! Не путайте = и ==
x = 3 (запомнить 3 в х)
x == 3 (равны x и 3?)

Арифметические операции с целыми числами

Знак Означает Пример Результат
+ сложение 2+3 5
- вычитание 7-5 2
* умножение 2*3 6
/ деление (математическое) 7/2 3.5
// деление целых чисел 7//2 3
% остаток от деления 17%5 2

При вычислении можно использовать скобки

-(2+3)*(-7+5) будет 10.

Пример 5: четные желтым

Если надо нарисовать не 5 отрезков, а 100, то писать для всех нужных i проверку i == 0 or i==2 or .. or долго.

Можно придумать формулу для проверки.

Четные числа (0, 2, 4, 6,..) - это числа, которые при делении на 2 в остатке дают 0.

Напишем решение через формулу:

# -*- coding: utf-8 -*-
import turtle           
import time

def write(data):
    t.write(data, font=("Arial", 14, "normal"))


t = turtle.Turtle()
t.shape("turtle")
t.width(3)

for i in range(5):
    if i%2 == 0:       # остаток от деления i на 2 равен 0 (четное)
        col = 'gold'   # цвет желтый
    else :             # иначе (i равен 1 или 3)
        col = 'red'    # цвет красный
    t.pencolor(col)
    
    write(i)
    t.fd(50)

turtle.done()

Пример 6: меняем цвет

Будем рисовать разным цветом. Менять красный и желтый.

В переменной col запишем цвет.

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

# -*- coding: utf-8 -*-
import turtle           
import time

def write(data):
    t.write(data, font=("Arial", 14, "normal"))


t = turtle.Turtle()
t.shape("turtle")
t.width(3)

col = 'red'               # какой тут должен быть цвет, чтобы первый был желтый?
for i in range(5):
    if col == 'red':      # если цвет был красный
        col = 'gold'      # станет желтый
    else :                # иначе (если был желтый)
        col = 'red'       # станет красный
    t.pencolor(col)
    
    write(i)
    t.fd(50)

turtle.done()

Пример 7: меняем цвет (функция)

Будем рисовать разным цветом. Менять красный и желтый.

В переменной col запишем цвет. Будем делать новый цвет функцией new_color(col).

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

# -*- coding: utf-8 -*-
import turtle           
import time

def write(data):
    t.write(data, font=("Arial", 14, "normal"))

def new_color(col):
    if col == 'red':      # если цвет был красный
        col = 'gold'      # станет желтый
    else :                # иначе (если был желтый)
        col = 'red'       # станет красный
    t.pencolor(col)
    return col            # ВОЗВРАЩАЕМ (return) новый цвет

t = turtle.Turtle()
t.shape("turtle")
t.width(3)

col = 'yellow'            # первый отрезок желтый
t.color(col)
for i in range(5):
    
    write(i)
    t.fd(50)

    col = new_color(col) # функция new_col ВЕРНУЛА другой цвет и мы этот цвет записали в col

turtle.done()

Задачи

Задача 1: строку квадратов меняя цвета

Напишите функцию csq(size, col), которая рисует квадрат со стороной size цветом col.

Напишите функцию csq_row(size, n, col1), которая рисует строку из n квадратов размера size, меняя цвет. Цвет первого квадрата col1.

Нарисуйте картинку:

Задача 2: столбец квадратов меняя цвета

Возьмите функцию csq(size, col), которая рисует квадрат со стороной size цветом col.

Напишите функцию csq_col(size, n, col1), которая рисует столбец из n квадратов размера size, меняя цвет. Цвет первого квадрата col1.

Нарисуйте картинку:

Задача 3: ковер, горизонтальные полосы

Напишите функцию Напишите функцию csq_hrect(size, rows, cols), которая рисует из квадратов размера size прямоугольник размера rows строк и cols столбцов. Цвета квадратов смотри на рисунке.

Задача 4: ковер, вертикальные полосы

Напишите функцию Напишите функцию csq_vrect(size, rows, cols), которая рисует из квадратов размера size прямоугольник размера rows строк и cols столбцов. Цвета квадратов смотри на рисунке.

Задача 5: ковер, шахматная доска

Напишите функцию Напишите функцию csq_chess(size, rows, cols), которая рисует из квадратов размера size прямоугольник размера rows строк и cols столбцов. Цвета квадратов смотри на рисунке.

Задача 6: три цвета, строка

Напишите функцию Напишите функцию csq_3(size, n), которая рисует из квадратов размера size строку размера n столбцов. Цвета квадратов смотри на рисунке (меняются красный - желтый - зеленый).

Задача 7: спираль без цвета

Напишите функцию Напишите функцию sriral(size, n), которая рисует из квадратов размера size спираль, у которой в первом отрезке n квадратов. Отрезки спирали уменьшаются. Используйте while

Задача 8: спираль 2 цвета

Напишите функцию Напишите функцию sriral(size, n), которая рисует из квадратов размера size спираль, у которой в первом отрезке n квадратов. Цвета квадратов смотри на рисунке (меняются красный - желтый). Отрезки спирали уменьшаются. Используйте while

Делать НЕ НАДО

Задача q: рамка

Напишите функцию Напишите функцию csq_bord(size, rows, cols), которая рисует из квадратов размера size прямоугольник размера rows строк и cols столбцов. Цвета квадратов смотри на рисунке.

Задача q: главная диагональ

Напишите функцию Напишите функцию csq_diag(size, rows, cols), которая рисует из квадратов размера size прямоугольник размера rows строк и cols столбцов. Цвета квадратов смотри на рисунке.

Задача q: другая диагональ

Напишите функцию Напишите функцию csq_diag2(size, rows, cols), которая рисует из квадратов размера size прямоугольник размера rows строк и cols столбцов. Цвета квадратов смотри на рисунке.

Задача q: стрелка

Напишите функцию Напишите функцию csq_arrow(size, rows, cols), которая рисует из квадратов размера size прямоугольник размера rows строк и cols столбцов. Цвета квадратов смотри на рисунке.

-- TatyanaDerbysheva - 25 Apr 2017

Attachment sort Action Size Date Who Comment
ex0.png manage 0.8 K 25 Apr 2017 - 22:12 TatyanaDerbysheva  
ex0_1.png manage 0.6 K 25 Apr 2017 - 22:16 TatyanaDerbysheva  
ex0_2.png manage 0.8 K 25 Apr 2017 - 22:56 TatyanaDerbysheva  
ex0_3.png manage 0.9 K 26 Apr 2017 - 14:00 TatyanaDerbysheva  
t0_row1.png manage 0.5 K 26 Apr 2017 - 22:45 TatyanaDerbysheva  
t0_row7.png manage 0.5 K 26 Apr 2017 - 22:45 TatyanaDerbysheva  
t0_col.png manage 1.4 K 26 Apr 2017 - 22:50 TatyanaDerbysheva  
t91.png manage 0.6 K 26 Apr 2017 - 23:08 TatyanaDerbysheva  
t92.png manage 1.2 K 26 Apr 2017 - 23:10 TatyanaDerbysheva  
t93.png manage 1.7 K 26 Apr 2017 - 23:23 TatyanaDerbysheva  
t94.png manage 4.3 K 26 Apr 2017 - 23:25 TatyanaDerbysheva  
t95.png manage 4.3 K 26 Apr 2017 - 23:29 TatyanaDerbysheva  
t96.png manage 1.4 K 27 Apr 2017 - 07:44 TatyanaDerbysheva  
t97.png manage 3.5 K 27 Apr 2017 - 07:59 TatyanaDerbysheva  
t98.png manage 5.9 K 27 Apr 2017 - 08:00 TatyanaDerbysheva