Newbie Python bertanya soalan tentang rekursi
ringa_lee
ringa_lee 2017-06-12 09:21:02
0
1
663

Kod pertama:

# -*- coding:gb2312 -*-
# 递归阶乘
def getnum(num):
    if num > 1:
        print(num)
        return num * getnum(num - 1)
    else:
        print(num)
        return num


result = getnum(5)
print(result)

Hasil pelaksanaan kod pertama:

Kod kedua:

# -*- coding:gb2312 -*-
# 递归阶乘
def getnum(num):
    if num > 1:
        return num * getnum(num - 1)
        print(num)
    else:
        return num
        print(num)a


result = getnum(5)
print(result)

Hasil pelaksanaan kod kedua:

Soalan saya:
Saya menambah pernyataan print(num) pada fungsi Mengapa sekeping kod pertama boleh mencetak 5 4 3 2 1 dan kemudian 120 Mengapa dalam bahagian kedua hasil, hanya 120, tetapi No 5 4 3 2 1? Secara logiknya, saya telah pun menulis semua kenyataan cetakan, jadi saya harus mencetaknya.

ringa_lee
ringa_lee

ringa_lee

membalas semua(1)
Ty80

The return之后的print dalam sekeping kod kedua tidak boleh dilaksanakan Fungsi dikembalikan.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!