Heim > Backend-Entwicklung > Python-Tutorial > Rekursion der Python-Full-Stack-Road-Serie

Rekursion der Python-Full-Stack-Road-Serie

高洛峰
Freigeben: 2017-02-09 10:44:16
Original
1276 Leute haben es durchsucht

Die sogenannte Rekursion ist eigentlich die Funktion selbst, die die Funktion aufruft, bis die angegebenen Bedingungen erfüllt sind, und dann die Funktion Schicht für Schicht verlässt.

Es war einmal ein Berg, und da war ein Tempel im Berg. Da war ein alter Mönch, der dem Kind das Leben gab. Der Mönch erzählt Geschichten! Was ist die Geschichte? „Es war einmal ein Berg und da war ein Tempel im Berg. Da war ein alter Mönch im Tempel und er erzählte dem jungen Mönch eine Geschichte! Was ist die Geschichte? ‚Es war einmal, Da war ein Berg, und da war ein Tempel im Tempel, und er erzählte dem jungen Mönch eine Geschichte. '"

  • Verwenden Sie Funktionen, um eine Fibonacci-Folge zu schreiben

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368

Die Fibonacci-Folge soll Fügen Sie die beiden Zahlen vorne hinzu, um die nächste Zahl zu erhalten, und

Der Code lautet wie folgt

#!/usr/bin/env python
# _*_ coding: utf-8 _*_

def Counter(n1, n2):
    if n1 > 10000:  # 当要计算的值大于10000就退出
        return
    print("Counter:", n1)  # 输出当前计算到那个值了
    n3 = n1 + n2  # 第一个值加上第一个值等于第三个值
    Counter(n2, n3)  # 调用计数器函数,此时第一个值是调用函数传过来的最后一个值,而第二个值是计算出来的第三个值


Counter(0, 1)  # 调用计数器函数
Nach dem Login kopieren
Nach dem Login kopieren

Ergebnisse ausgeben

/usr/bin/python3.5 /home/ansheng/Documents/PycharmProjects/blogcodes/斐波那契.py
Counter: 0
Counter: 1
Counter: 1
Counter: 2
Counter: 3
Counter: 5
Counter: 8
Counter: 13
Counter: 21
Counter: 34
Counter: 55
Counter: 89
Counter: 144
Counter: 233
Counter: 377
Counter: 610
Counter: 987
Counter: 1597
Counter: 2584
Counter: 4181
Counter: 6765

Process finished with exit code 0
Nach dem Login kopieren
Nach dem Login kopieren
  • Verwenden Sie die Rekursion, um die 10. Zahl in der Fibonacci-Folge zu erhalten und den Wert an den Aufrufer zurückzugeben

Code:

#!/usr/bin/env python
# _*_ coding: utf-8 _*_

def Counter(Index, Start, End):
    print("第%d次计算,第一个数字是%d,第二个数字是%d" % (Index, Start, End))
    if Index == 10:  # 如果要计算的值是10就退出
        return Start
    N = Start + End  # N等于第一个数加上第二个数
    Number = Counter(Index + 1, End, N)  # 继续调用计数器函数,End相当与传给函数的第一个数,N是传给函数的第二个数
    return Number


result = Counter(1, 0, 1)
print("得出的数字是:", result)
Nach dem Login kopieren
Nach dem Login kopieren

Ausgabeergebnis

/usr/bin/python3.5 /home/ansheng/Documents/PycharmProjects/blogcodes/递归.py
第1次计算,第一个数字是0,第二个数字是1
第2次计算,第一个数字是1,第二个数字是1
第3次计算,第一个数字是1,第二个数字是2
第4次计算,第一个数字是2,第二个数字是3
第5次计算,第一个数字是3,第二个数字是5
第6次计算,第一个数字是5,第二个数字是8
第7次计算,第一个数字是8,第二个数字是13
第8次计算,第一个数字是13,第二个数字是21
第9次计算,第一个数字是21,第二个数字是34
第10次计算,第一个数字是34,第二个数字是55
得出的数字是: 34

Process finished with exit code 0
Nach dem Login kopieren
Nach dem Login kopieren

Originallink


Die sogenannte Rekursion ist eigentlich Die Funktion selbst ruft die Funktion auf, bis die angegebenen Bedingungen erfüllt sind, und beendet sie dann Funktion Schicht für Schicht. Zum Beispiel:

Es war einmal ein Berg, und im Berg war ein alter Mönch, und er erzählte den Jungen Geschichten Mönch! Was ist die Geschichte? „Es war einmal ein Berg und auf dem Berg war ein Tempel. Im Tempel war ein alter Mönch und er erzählte dem jungen Mönch eine Geschichte! Was ist die Geschichte? „Es war einmal.“ , da war ein Berg, und da war ein Tempel im Tempel, und er erzählte dem kleinen Mönch eine Geschichte? '"

  • Verwenden Sie Funktionen, um eine Fibonacci-Folge zu schreiben

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368

Die Fibonacci-Folge soll Fügen Sie die beiden Zahlen vorne hinzu, um die nächste Zahl zu erhalten, und

Der Code lautet wie folgt

#!/usr/bin/env python
# _*_ coding: utf-8 _*_

def Counter(n1, n2):
    if n1 > 10000:  # 当要计算的值大于10000就退出
        return
    print("Counter:", n1)  # 输出当前计算到那个值了
    n3 = n1 + n2  # 第一个值加上第一个值等于第三个值
    Counter(n2, n3)  # 调用计数器函数,此时第一个值是调用函数传过来的最后一个值,而第二个值是计算出来的第三个值


Counter(0, 1)  # 调用计数器函数
Nach dem Login kopieren
Nach dem Login kopieren

Ergebnisse ausgeben

/usr/bin/python3.5 /home/ansheng/Documents/PycharmProjects/blogcodes/斐波那契.py
Counter: 0
Counter: 1
Counter: 1
Counter: 2
Counter: 3
Counter: 5
Counter: 8
Counter: 13
Counter: 21
Counter: 34
Counter: 55
Counter: 89
Counter: 144
Counter: 233
Counter: 377
Counter: 610
Counter: 987
Counter: 1597
Counter: 2584
Counter: 4181
Counter: 6765

Process finished with exit code 0
Nach dem Login kopieren
Nach dem Login kopieren
  • Verwenden Sie die Rekursion, um die 10. Zahl in der Fibonacci-Folge zu erhalten und den Wert an den Aufrufer zurückzugeben

Code:

#!/usr/bin/env python
# _*_ coding: utf-8 _*_

def Counter(Index, Start, End):
    print("第%d次计算,第一个数字是%d,第二个数字是%d" % (Index, Start, End))
    if Index == 10:  # 如果要计算的值是10就退出
        return Start
    N = Start + End  # N等于第一个数加上第二个数
    Number = Counter(Index + 1, End, N)  # 继续调用计数器函数,End相当与传给函数的第一个数,N是传给函数的第二个数
    return Number


result = Counter(1, 0, 1)
print("得出的数字是:", result)
Nach dem Login kopieren
Nach dem Login kopieren

Ausgabeergebnis

/usr/bin/python3.5 /home/ansheng/Documents/PycharmProjects/blogcodes/递归.py
第1次计算,第一个数字是0,第二个数字是1
第2次计算,第一个数字是1,第二个数字是1
第3次计算,第一个数字是1,第二个数字是2
第4次计算,第一个数字是2,第二个数字是3
第5次计算,第一个数字是3,第二个数字是5
第6次计算,第一个数字是5,第二个数字是8
第7次计算,第一个数字是8,第二个数字是13
第8次计算,第一个数字是13,第二个数字是21
第9次计算,第一个数字是21,第二个数字是34
第10次计算,第一个数字是34,第二个数字是55
得出的数字是: 34

Process finished with exit code 0
Nach dem Login kopieren
Nach dem Login kopieren

Weitere rekursionsbezogene Artikel in der Python-Full-Stack-Reihe finden Sie auf der chinesischen PHP-Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage