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)
Просто пример комментария.
for z in range(10,100): print(10)