Tuliskan fungsi untuk menghitung faktorial suatu bilangan tertentu.
Jawaban yang benar adalah:

``` ular piton
def faktorial(n):
    jika n == 0:
        kembali 1
    kalau tidak:
        kembalikan n * faktorial(n-1)
```

Fungsi ini menghitung faktorial dari suatu bilangan `n` secara rekursif. Jika `n` adalah 0, maka akan menghasilkan 1. Jika `n` lebih besar dari 0, maka `n` akan dikalikan dengan faktorial dari `n-1`. Rekursi berhenti ketika `n` bernilai 0, sehingga fungsinya mengembalikan 1.

Opsi lain mungkin termasuk:

A)

``` ular piton
def faktorial(n):
    hasil = 1
    untuk saya dalam rentang(1, n+1):
        hasil *= saya
    hasil kembali
```

Fungsi ini menggunakan perulangan untuk menghitung faktorial dari bilangan tertentu `n`. Ini menginisialisasi `hasil` ke 1, lalu melakukan iterasi pada rentang angka dari 1 hingga `n`, mengalikan setiap angka dengan `hasil`. Nilai akhir dari `hasil` adalah faktorial dari `n`.

Fungsi ini juga benar, tetapi tidak bersifat rekursif.

B)

``` ular piton
def faktorial(n):
    jika n == 1:
        kembali 1
    kalau tidak:
        kembalikan n * faktorial(n-1)
```

Fungsi ini hampir sama dengan jawaban benar, namun terdapat sedikit kesalahan. Ia memeriksa apakah `n` sama dengan 1 dan bukan 0. Ini berarti bahwa jika fungsi tersebut dipanggil dengan argumen 0, ia akan memasuki loop tak terbatas dan membuat program crash.

C)

``` ular piton
def faktorial(n):
    hasil = 0
    untuk saya dalam rentang(1, n+1):
        hasil += saya
    hasil kembali
```

Fungsi ini menghitung jumlah angka dari 1 sampai `n`, bukan faktorial dari `n`. Itu tidak benar.