


Einführung in die Verwendung rekursiver Aufrufe von Python-Generatoren (Codebeispiel)
Dieser Artikel bietet Ihnen eine Einführung in die Verwendung rekursiver Aufrufe von Python-Generatoren (Codebeispiele). Ich hoffe, dass er Ihnen als Referenz dienen wird.
Generator
Was ist ein Generator: Solange das Schlüsselwort yield im Funktionskörper erscheint, wird der Funktionscode nicht ausgeführt, wenn die Funktion ausgeführt wird. und ein Ergebnis wird erhalten. Das Ergebnis ist ein Generator
Ein Generator ist ein Iterator
Die Funktion von yield
yield bietet uns eine Möglichkeit, Iteratorobjekte anzupassen
Der Unterschied zwischen Yield und Return:
1. Yield kann mehrere Werte zurückgeben
2. Die Pause und Wiederaufnahme von Funktionen werden von Yield für uns gespeichert
Solange die Funktion „Yield“ darin enthalten ist, handelt es sich um einen Generator.
Beispiel 1: Wie oben erwähnt: Wenn „Yield“ in der Funktion angezeigt wird, handelt es sich um einen Generator Der Generator ist ein Iterator.
Wenn es um die Iteration geht, sollte der Prozessor an die Wertmethode von xx.__next__()
def test(): print('=====>1') yield 1 print('=====>2') yield 2 print('=====>3') yield 3 g = test() #就相当于一个容器 print(g.__next__()) print(g.__next__()) print(next(g))
def test(): print('=====>1') yield 1 print('=====>2') yield 2 print('=====>3') yield 3 g = test() for i in g: print(i)
Beispiel 2: Das Ergebnis von test1 wird von test2 aufgerufen erfordert die Anpassung eines Generators mit yield
def test1(): for i in range(10): yield i #把0~9变成生成器返回给函数test1 g = test1() #g是个生成器 def test2(g): for i in g: print(i) test2(g)
Beispiel 3: Log Fehlerüberwachung
import time def tail(filepath): #定义一个查看文件的函数 with open(filepath, 'rb') as f: #打开形参为filepath rb是二进制读 f.seek(0,2) #把光标移动到末尾 while True: #循环监控日志 data = f.readline() #读取文件末尾 if data: #加入有数据就用yield返回 yield data else:# 否则就睡眠0.05秒 time.sleep(0.05) def grep(file, k): #定义过滤关键字函数 for i in tail(file): #循环生成器中的数据 if k in i.decode('utf-8'): #因为是用二进制读取方式,所以需要解码显示 print(i.decode('utf-8')) grep('a.txt', '500') #监控a.txt最新日志,并过滤500的错误代码
Eine andere Verwendung von Ertrag, Zuordnung
def test(name): while True: foot = yield print('%s正在吃%s' % (name, foot)) e = test('轩轩') #e是生成器 next(e) #初始化,e.__next__() # e.send(None) #初始化,与上一行二选一 e.send('饺子') #发送值传给foot e.send('冰激凌') #发送值传给foot
Rekursiver Aufruf
Rekursiver Aufruf: Beim Aufrufen einer Funktion wird die Funktion selbst direkt oder indirekt aufgerufen namens rekursiver Aufruf
Die zwei notwendigen Stufen der Rekursion:1 Rekursion, 2 Backtracking
Beispiel: A, B, C, D und V, 5 Personen essen Brötchen. A sagte, es sei besser als B. B sagte, er habe 2 Stücke mehr als C gegessen . Ding sagte, er habe zwei Stücke mehr gegessen als E. E sagte, er habe es nicht gegessen, weil er wusste, dass E es nicht gegessen hatte, also basierend auf den Antworten von A, B, C und D, wir wissen, dass A 8 gegessen hat, also ist der Prozess des Hin- und Hergehens eine Rekursion und ein Zurückverfolgen Alter(A) = Alter(B) + 2Alter(B) = Alter (C) + 2Alter(C) = Alter(D) + 2Alter(D) = Alter(E) + 2Alter(五) = 0def num(n): if n == 1: return 0 return num(n-1) + 2res = num(5) print(res)
Das obige ist der detaillierte Inhalt vonEinführung in die Verwendung rekursiver Aufrufe von Python-Generatoren (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen





Lösung für Erlaubnisprobleme beim Betrachten der Python -Version in Linux Terminal Wenn Sie versuchen, die Python -Version in Linux Terminal anzuzeigen, geben Sie Python ein ...

Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer -Anfänger für Programmierungen? Wenn Sie nur 10 Stunden Zeit haben, um Computer -Anfänger zu unterrichten, was Sie mit Programmierkenntnissen unterrichten möchten, was würden Sie dann beibringen ...

Wie kann man nicht erkannt werden, wenn Sie Fiddlereverywhere für Man-in-the-Middle-Lesungen verwenden, wenn Sie FiddLereverywhere verwenden ...

Bei der Verwendung von Pythons Pandas -Bibliothek ist das Kopieren von ganzen Spalten zwischen zwei Datenrahmen mit unterschiedlichen Strukturen ein häufiges Problem. Angenommen, wir haben zwei Daten ...

Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen an? Uvicorn ist ein leichter Webserver, der auf ASGI basiert. Eine seiner Kernfunktionen ist es, auf HTTP -Anfragen zu hören und weiterzumachen ...

Wie erstellt in Python ein Objekt dynamisch über eine Zeichenfolge und ruft seine Methoden auf? Dies ist eine häufige Programmieranforderung, insbesondere wenn sie konfiguriert oder ausgeführt werden muss ...

Verwenden Sie Python im Linux -Terminal ...

Fastapi ...
