Введение в Python

Как получить случайное число в Python? Что такое генераторы? А модуль random?

Как получить случайное число в Python? Что такое генераторы? А модуль random?
В: Введение в Python

Генераторы очень просты в реализации, но немного сложны для понимания.

Генераторы используются для создания итераторов, но с другим подходом. Генераторы - это простые функции, которые возвращают итеративный набор элементов, по одному, особым образом.

Когда итерация для набора элементов начинает использовать оператор for, запускается генератор. Как только код функции генератора достигает оператора yield, генератор возвращает свое выполнение обратно в цикл for, возвращая новое значение из набора. Функция генератора может генерировать столько значений (возможно, бесконечное множество), сколько она хочет, возвращая каждое из них в свою очередь.

Вот простой пример функции генератора, которая возвращает 7 случайных целых чисел:

import random

def lottery():
	# возвращает 6 числе между 1 и 40
	for i in range(6):
		yield random.randint(1, 40)
  			
    # возвращает 7ое число между 1 и 15
    yield random.randint(1,15)

Эта функция сама решает, как генерировать случайные числа, и выполняет операторы yield поочередно, делая паузу между ними, чтобы вернуть выполнение к основному циклу for.

Упражнение

Напишите функцию генератора, которая возвращает ряд Фибоначчи. Он рассчитывается по следующей формуле: первые два числа серии всегда равны 1, и каждое последовательное возвращенное число является суммой двух последних чисел. Подсказка: вы можете использовать только две переменные в функции генератора? Помните, что задания могут выполняться одновременно.

a = 1
b = 2
a, b = b, a
print(a,b)

будет одновременно переключать значения a и b.

# напишите функцию
def fib():

Решение

# напишите функцию
def fib():
  a, b = 1, 1
  while 1:
    yield a
    a, b = b, a + b
Еще от кодкамп
Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.