Saya memiliki fungsi python:

FunctionFunction.py

def factorial(n):
    if n == 0:
        return 1
        f = n * factorial(n-1)
    print(f)
    return(f)
    factorial(4)

Tidak menunjukkan apa-apa, ketika saya menjalankannya di terminal

enter image description here

Tetapi ketika saya menjalankannya di python shell dapatkan "UnboundLocalError: variabel lokal 'f' direferensikan sebelum penugasan"

enter image description here

1
Joe Lin 9 November 2017, 12:56

1 menjawab

Jawaban Terbaik

Anda harus mengikuti lekukan kode python.

if n == 0:
    return 1
    f = n * factorial(n-1)

f = n * factorial(n-1) pernyataan ini tidak pernah tercapai dengan kode python. karena akan return sebelum mencapai pernyataan ini.

def factorial(n):
    if n == 0:
        return 1
    f = n * factorial(n-1)
    print(f)
    return(f)
factorial(4)
2
R.A.Munna 9 November 2017, 10:09