Сначала мы создадим список возможных цветов:
colors = ['red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'magenta', 'black', 'gray', 'lightgreen']
Теперь, без всякой случайности, выберем оранжевый и синий цвет (нумерация идет с нуля):
оранжевый — colors[1]
синий – colors[5]
Убедимся, что это работает:
from turtle import *
from random import randrange as rnd
colors = ['red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'magenta', 'black', 'gray', 'lightgreen']
color(colors[5],colors[1])
speed(100)
pu()
for z in range(12):
x = rnd(-200,200)
y = rnd(-200,300)
setpos(x,y)
pd()
begin_fill()
circle(rnd(10,50))
end_fill()
pu()
done()
Остался один шаг – выбирать случайный номер. Для этого нужно знать длину списка. Можно написать так: rnd(10), но так делать не стоит. Ведь мы можем захотеть удалить или добавить цвет. Придется переделывать код программы, что не очень удобно. Лучше мы узнаем длину списка: len(colors), и это значение подставим в функцию rnd: rnd(len(colors)). Теперь по номеру возьмем цвет:
from turtle import *
from random import randrange as rnd
colors = ['red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'magenta', 'black', 'gray', 'lightgreen']
color(colors[rnd(len(colors))],colors[rnd(len(colors))])
speed(10)
pu()
for z in range(12):
x = rnd(-200,200)
y = rnd(-200,300)
setpos(x,y)
pd()
begin_fill()
circle(rnd(10,50))
end_fill()
pu()
done()
Работает, но … цвет одинаковый! При каждом запуске – свой, но одинаковый у всех окружностей. Так не пойдет – нужно перенести выбор цвета внутрь цикла:
from turtle import *
from random import randrange as rnd
colors = ['red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'magenta', 'black', 'gray', 'lightgreen']
speed(10)
pu()
for z in range(12):
color(colors[rnd(len(colors))],colors[rnd(len(colors))])
x = rnd(-200,200)
y = rnd(-200,300)
setpos(x,y)
pd()
begin_fill()
circle(rnd(10,50))
end_fill()
pu()
done()
Ну вот так намного веселее. Особенно, если добавить еще кружков.
2. Нарисовать 20 квадратов в случайном месте, случайным размером, случайным цветом, повернутых на случайный угол
3. Нарисовать случайное количество (не менее 10 и не более 30) окружностей в случайном месте, случайным цветом
4. Нарисовать 10 прямоугольников в случайном месте, случайного цвета, случайного размера
5. *Создать команду «Звезда» для рисования пятиконечной звезды
6. *Нарисовать 10 звезд случайным цветом в случайном месте, случайного цвета
7. *Изменить команду «Звезда», чтобы можно было рисовать звезду с произвольным количеством лучей
8. *Нарисовать 10 звезд случайным цветом, в случайном месте, случайного размера, со случайным количеством лучей
9. **Что умеет функция random.choice?
Здраствуйте, уроки у вас просто замечательные, причем не только для детей. Старому админу тоже помогают на работе время провести с пользой. Один совет — раскрутите сайт хоть немного. Ваш сайт нашел случайно, поисковики на запросы «python, tkinter, уроки, и т.д.» выдают кучу устаревшего материала. Если ваш сайт будет на первых страницах — то посетителей у вас будет много. Удачи, и спасибо за уроки.
Добрый день. Спасибо на добром слове. Раскруткой сайта пока заниматься рано — еще мало уроков, еще не все ошибки выловлены.
Как закончу третью главу — так займусь активнее.
Удачи и заходите еще, предлагайте идеи простых игр, полезных программ.