Генератор Питон - создайте свой собственный скрипт за мгновение!
Генераторы в Python - это специальный тип функций, которые позволяют нам создавать итераторы для эффективного использования памяти.
Генераторы очень похожи на обычные функции, но с одним отличием - вместо ключевого слова `return` они используют ключевое слово `yield`. Оператор `yield` возвращает значение и приостанавливает выполнение функции, сохраняя свое состояние. При следующем вызове генератора выполнение продолжается с того же места, где остановилось.
Пример генератора, который возвращает числа от 1 до n:
python
def number_generator(n):
for i in range(1, n+1):
yield i
# Использование генератора:
for num in number_generator(5):
print(num)
В данном примере функция `number_generator` является генератором. Она использует цикл `for` и ключевое слово `yield`, чтобы возвращать числа от 1 до `n`. При каждом вызове генератор возвращается значение и "замораживается" до следующего вызова.
Генераторы особенно полезны при работе с большими наборами данных, как например, чтение файла построчно:
python
def read_file(filepath):
with open(filepath, 'r') as file:
for line in file:
yield line.strip()
# Использование генератора:
for line in read_file('example.txt'):
print(line)
В данном примере генератор `read_file` открывает файл, читает его построчно и возвращает каждую строку без символа новой строки. Это позволяет нам лениво получать строки из файла по мере необходимости, а не загружать весь файл в память.
Использование генераторов может привести к более эффективной работе с памятью и увеличению производительности программы, особенно при работе с большими объемами данных.