Цель урока: знать функцию для генерации случайных чисел; уметь выполнять предложенные задания на составление алгоритмов работы с графикой.
Использование случайных чисел
| from random import * #подключение библиотеки random | |||
| Функция | Описание | Использование | Результат |
| randint(a, b) | Возвращает случайное целое число, такое что a <= N <= b | randint(1, 100) randint(1, 100) randint(1, 100) | 44 13 100 |
| randrange(a) | Возвращает случайное целое число, такое что 0 <= N < a | randrange(10) randrange(10) randrange(10) | 0 7 9 |
| random() | Возвращает случайное рациональное число, такое что 0.0 <= N < 1.0 | random() random() random() | 0.85041888386… 0.75715357418… 0.49710865361… |
| uniform(a, b) | Возвращает случайное рациональное число, такое что a <= N <= b | uniform(5, 10) uniform(5, 10) uniform(5, 10) | 9.1331255058… 5.9057432677… 7.3048271926… |
Пример 2. Написать программу для рисования на экране 10 разноцветных кругов. Расположение и их радиусы определяются случайным образом.
from random import *
import turtle
turtle.coordinates = "yes"
from turtle import *
coordinates = "yes"
shape('turtle')
pensize(3)
speed (0),
hideturtle ()
def p(x, y) :
penup(),
setpos(x, y)
pendown(),
seth(0)
def rand_color() : # генерирует случайный цвет в модели RGB
r = randrange (256)
g = randrange (256)
b = randrange (256)
return (r, g, b)
def fill_circle (x, y, a, c) :
p(x, y - a)
color (c, c) # контур и заливка одного цвета
begin_fill ()
circle (a) # рисуем круг радиусом а
end_fill ()
colormode (255)
# устанавливаем режим цветов: 0-255 (RGB)
for _ in range (10):
x = randint (-250, 250)
y = randint (-150, 150)
a = randint (5, 70)
p(x, y - a) # перемещаемся в нижнюю точку крута
fill_circle(x, y, a, rand_color())
circle (a)
done ()
Результат работы программы:


Задания по теме урока
Задание 1. Измените Пример 1 для создания изображения звездного неба. Для этого на черном фоне нарисуйте 200 разноцветных кругов радиусом от 1 до 5 пикселей.
Чтобы задать цвет фона воспользуйтесь командой:
bgcolor("black")
Результат работы программы:

Задание 2. Дополните программу командами так, чтобы она рисовала 10 зеленых квадратов с длиной стороны от 10 до 30 пикселей, расположение которых определяется случайным образом.
from random import *
import turtle
turtle.coordinates = "yes"
from turtle import *
coordinates = "yes"
shape('turtle')
pensize(3)
speed(0)
hideturtle()
def p(x, y):
penup(), setpos(x, y)
pendown(), seth(0)
def rect(x1, y1, x2, y2, c): # прямоугольник
p(x1, y1)
d = abs(x2 - x1)
h = abs(y2 - y1)
color("black", c)
begin_fill()
fd(d), rt(90)
fd(h), rt(90)
fd(d), rt(90)
fd(h)
end_fill()
# дополнить программу здесь
done()

Домашнее задание
§ 6 учебного пособия, ответить на вопросы

