Jak korzystać z funkcji generatora Pythona Howto

Jak korzystać z funkcji generatora Pythona Howto
Funkcja generatora działa podobnie do funkcji normalnej. Ale kiedy nadszedł czas, aby zwrócić wartość, używamy funkcji wydajności zamiast powrotu w Python. Funkcja generatora działa za pomocą obiektów generatora. W tym artykule poznamy znaczącą różnicę między funkcjami normalnymi i generatorami.

Składnia

Wydajność

Python wydajność zwraca obiekt generatora. Są to specjalne obiekty, które pomagają uzyskać wartość. Z tego powodu jest iterowany.

Narzędzia generatora Pythona

Funkcja generatora:

Funkcje te są zdefiniowane jako normalna funkcja „def”, ale używają słowa kluczowego wydajności zamiast zwrócenia. Zatem wynik jest uzyskiwany pojedynczo.

Wyrażenia generatora:

Te wyrażenia działają podobnie do zrozumienia listy. Różnią się jednak jednym aspektem. Gdy zwracają obiekt, pokazuje wynik tylko wtedy, gdy jest wymagany zamiast tworzenia list wyników.

Przykład

Prosta ilustracja oświecenia koncepcję generatorów wyjaśniono poniżej. Początkowo zdefiniujemy generator, ponieważ użyliśmy prostej funkcji. Następnie wydrukujemy ciąg i użyjemy słowa kluczowego z wydajności, aby zwrócić wartość.

Def gen ()
Wydajność 10

Gdzie gen () jest nazwą generatora, za każdym razem, gdy wydajność jest wywoływana, zwraca wartość do wyświetlenia.

Aby uzyskać wyjście w Linux, przejdź do terminalu Ubuntu i napisz następujące polecenie:

$ python3 '/home/aqsa/dokumenty/resultTemp.py '

Gdzie Python3 jest używanym słowem kluczowym, użyliśmy ścieżki pliku o rozszerzeniu „.Py ”, który pokazuje, że plik jest napisany w Python.

Wyjście jest następujące:

Widać, że funkcja wydajności zwróciła każdą linię wartości po wierszu.

Różnica między generatorem a normalnymi funkcjami

Tutaj wzięliśmy przykład, aby wyjaśnić różnicę między funkcją zwykłej a generatorem posiadającym funkcję plonu. Początkowo zdefiniowano normalną funkcję:

Funkcja def ()

W tej funkcji tylko ciąg jest drukowany jako wyjście. Po drugie, zdefiniowaliśmy generator.

Def Generator ()

To da ciąg jako wyjście. Po zdefiniowaniu zarówno funkcji, jak i generatora, zezwolimy na wywołania funkcji i pozwolimy im wydrukować.

Print (generator ())

Teraz wyświetlimy dane wyjściowe, wykonując tę ​​samą praktykę opisaną powyżej.

Ze wyjścia widać, że wynik funkcji normalnej jest uzyskiwany, ale generator wykazał jakiś błąd. Istnieje więc inny sposób uzyskania wyjścia za pomocą obiektu generatora. Wzięliśmy ten sam przykład, co opisano powyżej, aby wyjaśnić funkcjonalność. Cały kod jest taki sam, ale metoda drukowania generatora jest zastąpiona następującym kodem:

Print (następny (generator ()))

To polecenie pomoże w odzyskaniu ciągu napisanego w generatorze.

Teraz, z wyjścia, możesz to wyświetlić zamiast wyświetlić komunikat o błędzie. Pożądane wyjście są uzyskiwane w postaci łańcucha.

Pobierz/odczyt wartości z funkcji generatora

Istnieją różne funkcje, które pomagają uzyskać wyjście z generatora. Omówimy dwa z nich jeden po drugim.

Lista ()

Lista to obiekt, który zawiera swoje wartości w nawiasach. Ten obiekt jest iteralny i wyświetla wartości z iteracji. W generatorze listy wyświetlą wszystkie wartości, które utrzymuje generator. Oprócz listy, dla funkcji Loop () i Next () są również używane do przedstawienia wyjścia.

Rozważ przykład, w którym zdefiniowaliśmy generator o nazwie „funkcja”, w którym użyliśmy pętli dla liczb do iteracji. W tej funkcji wykonywana jest operacja matematyczna. Funkcja generatora odbiera wartość przekazywaną jako parametr, gdy funkcja ta jest wywoływana.

Dla x w zakresie (n):
If (x%2 == 0):
Wydaj x

To jest podstawowy kod funkcji generatora:

Następnie, po znalezieniu modułu, wynikowa wartość jest zwracana za pomocą wydajności. Następnie dalsza procedura drukowania odbywa się za pośrednictwem funkcji listy, która jest następująca.

Drukuj (lista (num))

Ta funkcja zapewnia wyjście w postaci listy. Na przykład wyjście pokazano poniżej:

Następny()

Poniższa funkcja wyświetli następną wartość na dowolnej liście, tablicy lub obiektu. Jeśli użyjemy następnej funkcji w dowolnej pustej tablicy, wyświetli komunikat o błędzie. Aby uzyskać dobrą wartość, tablica lub lista nie powinna być pusta. W tym przykładzie stosuje się tę samą operację matematyczną. Jednak metoda drukowania jest inna. Ponieważ 20 jest liczbą przekazaną jako parametr, liczby zostaną uzyskane do 20 osiągnięć w wyjściu. Ukończyliśmy siedem rund.

Drukuj (następny (num))

Teraz zobaczymy wyjście. Uwaga: wszystkie liczby parzyste są uzyskiwane:

Seria liczb Fibonacciego i generatory

Seria Fibonacciego to sekwencja liczb uzyskanych przez dodanie dwóch ostatnich liczb przed nią. Wykorzystaliśmy poniższy przykład, aby zrozumieć funkcjonalność generatorów. W tej funkcji wzięliśmy dwie zmienne, które przechowują w nich dwie wartości liczbowe. Wzięliśmy również zmienną liczby. Ta funkcja będzie działać w taki sposób, że sprawdzi, czy wartość liczby jest mniejsza niż bieżąca liczba. Następnie doda dwa poprzednie liczby i zapisze je w następnym. Proces pozostanie do momentu osiągnięcia numeru 7. Wreszcie wynik uzyskuje się za pomocą For Loop ().

Wyjście przymocowanego powyżej kodu jest następujące:

0, 1, 1, 2, 3, 5, 8

Wywołanie funkcji za pomocą wydajności

To jest przykład wywołania funkcji za pomocą wydajności. Dla porównania użyliśmy funkcji kwadratowej w generatorze.

Def Getsquare (n):
Test wydajności (i)

Dzięki funkcji wydajności użyliśmy wywołania funkcji, aby uzyskać odpowiedź:

Wymagane wyjście podano poniżej:

0, 1, 4, 9, 14, 25, 36, 49, 64, 81

Wniosek

W tym artykule wyjaśniliśmy przykłady generatora, w jaki sposób możemy uzyskać dane wyjściowe oraz różnicę między generatorem a normalną funkcją.