Сначала мы создадим список возможных цветов:
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, уроки, и т.д.» выдают кучу устаревшего материала. Если ваш сайт будет на первых страницах — то посетителей у вас будет много. Удачи, и спасибо за уроки.
Добрый день. Спасибо на добром слове. Раскруткой сайта пока заниматься рано — еще мало уроков, еще не все ошибки выловлены.
Как закончу третью главу — так займусь активнее.
Удачи и заходите еще, предлагайте идеи простых игр, полезных программ.