Рубрики
Без рубрики

День 23 100daysOfCode: Простой код на генераторе Python

Сегодня мой 23 -й день #100daysOfCode и #Python. Как вчера сегодня я также пересмотрел Python навсегда … Tagged с 100daysOfCode, Codenewbie, Beginters, Python.

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”