1. Нарисовать 10 окружностей с центром в точке 400, 300 с увеличивающимся радиусом (первая – 10, вторая – 20 и т.д.)
2. Нарисовать 10 окружностей в ряд горизонтально
3. Нарисовать 10 окружностей в ряд вертикально
4. Нарисовать 10 окружностей в ряд, с увеличивающимся радиусом
2. Нарисовать 10 окружностей в ряд горизонтально
3. Нарисовать 10 окружностей в ряд вертикально
4. Нарисовать 10 окружностей в ряд, с увеличивающимся радиусом
Нарисуем 10 окружностей с увеличивающимся радиусом:
def paint(event): for z in range(12): x = 400 y = 300 r = z*10 canv.create_oval(x-r,y-r,x+r,y+r)
А можно и по-другому:
def paint(event): for r in range(10,100,10): x = 400 y = 300 canv.create_oval(x-r,y-r,x+r,y+r)
Первое аргумент в range – это начальное значение, второй – конечное, третий – шаг. Таким образом r принимает значение 10, потом 20 и т.д. до 100. Но до 100 ли?
5. *Сколько окружностей нарисовано? Сколько должно быть? Почему?
Нарисуем 12 окружностей в ряд:
def paint(event): for i in range(10): x = 20+i*60 y = 300 r = i*3 color = choice(colors) canv.create_oval(x-r,y-r,x+r,y+r,fill = color)
6. *Нарисовать в ряд 10 окружностей с увеличивающимся радиусом так, чтобы они касались друг друга
7. Нарисовать 5 рядов по 10 окружностей (радиуса 20, чтобы поместились)
8. Нарисовать 5 рядов по 10 окружностей так, чтобы в каждом был только один цвет заливки, но выбран он должен быть случайным образом. Т.е. при каждом запуске – новые цвета. Но для каждого ряд – цвет один.
9. Нарисовать 5 рядов окружностей. В первом 3, во втором 6, в третьем 9 и т.д.
10. Нарисовать 5 рядов по 10 окружностей или квадратов. Выбирать фигуру случайным образом
7. Нарисовать 5 рядов по 10 окружностей (радиуса 20, чтобы поместились)
8. Нарисовать 5 рядов по 10 окружностей так, чтобы в каждом был только один цвет заливки, но выбран он должен быть случайным образом. Т.е. при каждом запуске – новые цвета. Но для каждого ряд – цвет один.
9. Нарисовать 5 рядов окружностей. В первом 3, во втором 6, в третьем 9 и т.д.
10. Нарисовать 5 рядов по 10 окружностей или квадратов. Выбирать фигуру случайным образом
Для того, чтобы выполнить эти задания нам потребуется использовать цикл в цикле:
def paint(event): for y in range(100,400,50): for x in range(100,600,30): r = 10 color = choice(colors) canv.create_oval(x-r,y-r,x+r,y+r,fill = color)
Еще один пример для разбора:
def paint(event): for y in range(100,400,50): color = choice(colors) for x in range(100,y+200,30): r = 10 canv.create_oval(x-r,y-r,x+r,y+r,fill = color)
Используем случайное число для выбора фигуры:
def paint(event): for y in range(100,400,50): for x in range(100,y+200,30): color = choice(colors) r = 10 if rnd(2) == 1: canv.create_oval(x-r,y-r,x+r,y+r,fill = color) else: canv.create_rectangle(x-r,y-r,x+r,y+r,fill = color)
Как вы можете видеть, появилось новое слово: else
. Код, написанный в блоке else
выполнится в том случае, если условие под if – ложно (см. справочник: оператор ветвления). Также обратите внимание на два знака «равно» в строке if rnd(2) == 1
. (см. справочник операторы)
11. Разобрались сами – поможем другому. Программисту нужно было написать программу для рисования десяти квадратов, вложенных друг в друга, но получается только один:
from tkinter import * root = Tk() root.geometry('800x600') canv = Canvas(root,bg='white') canv.pack(fill=BOTH,expand=1) def paint(event): canv.delete(ALL) x = 300 y = 200 for r in range(10,100,10): canv.create_rectangle(x-r,y-r,x+r,y+r, fill = 'lightgreen') canv.bind('<Button-1>',paint) mainloop()
12. Еще одна программа (часть программы), которая работает неправильно. Нужно было нарисовать 10 рядов по 10 окружностей:
def paint(event): r = 10 for x in range(30,350,22): for y in range(30,350,22): color = choice(colors) canv.create_oval(x-r,y-r,x+r,y+r,fill = color)
Проверьте себя: вы должны понимать, почему на экране появится число 100:
k = 0 for x in range(10): for y in range(10): k += 1 print(k)
Проверьте себя: вы должны понимать, почему на экране появится число 10:
for x in range(10): k = 0 for y in range(10): k += 1 print(k)
Проверьте себя: вы должны понимать, почему на 10 раз экране появится число 10:
for x in range(10): k = 0 for y in range(10): k += 1 print(k)
Просто пример комментария.