100daysOfpython (серия 100 частей)
Сегодня мой 23 -й день #100daysOfCode и #Python. Как и вчера сегодня, я также пересмотрел Python для всех от Coursera и узнал больше о Basic of Python.
Я попытался написать код в математической проблеме относительно Python. Сегодня я начинаю узнать о генераторе Python. Попробуйте написать простой код на генераторе Python. Я обнаружил, что генератор Python похожи на функцию Python, но их есть некоторое различие.
Проще говоря, генератор – это функция, которая возвращает объект (итератор), который мы можем итерации по одному значению за раз. Довольно просто создать генератор в Python. Он так же просто, как определение нормальных функций, но с оператором урожая вместо оператора возврата.
def my_gen(): n = 1 print('This is printed first') yield n n += 1 print('This is printed second') yield n n += 1 print('This is printed at last') yield n for item in my_gen(): print(item)
Если функция содержит как минимум один оператор доходности (она может содержать другие операторы выхода или возврата), она становится функцией генератора. И выход, и возврат вернут некоторое значение из функции.
Разница состоит в том, что, хотя оператор возврата полностью завершает функцию, оператор допуска приводит паузу функции, сохраняющую все свои состояния, а затем продолжается оттуда при последовательном вызове.
def rev_str(my_str): length = len(my_str) for i in range(length - 1, -1, -1): yield my_str[i] for char in rev_str("hello"): print(char)
Как только функция выходит, функция приостанавливается, а элемент управления передается вызывающему. Местная переменная и их штаты помнят между последовательными звонками. Наконец, когда функция заканчивается, остановка автоматически поднимается при дальнейших вызовах.
a = my_gen() next(a) ,next(a), next(a)
Когда этот код запускается, он дает следующие результаты.
This is printed second This is printed at last --------------------------------------------------------------------------- StopIteration Traceback (most recent call last)in ----> 1 next(a) ,next(a), next(a) StopIteration:
День 23 из #100daysOfCode и #Python * Пересмотренный Python Basic * Сделал какой -то код в математической проблеме относительно Python * Узнал о генераторе Python * Некоторый простой код в генераторе Python pic.twitter.com/1usiofdswg
100daysOfpython (серия 100 частей)
Оригинал: “https://dev.to/iamdurga/day-23-of-100daysofcode-simple-code-on-python-generator-2pk0”