Python: Girilen Sayının Faktöriyelini Hesaplama

Bu örneğimizde kullanıcı tarafından girilen sayının faktöriyelini hesaplayıp ekrana nasıl yazdıracağımızı öğreneceğiz. Bir kaç farklı yöntemle bu işlemi yapabiliriz.
For Döngüsü İle Faktöriyel Hesaplama
sayi = int(input("Faktöriyelini hesaplamak istediğiniz sayıyı girin: "))
faktoriyel = 1
if sayi < 0:
print("Negatif sayıların faktöriyeli hesaplanamaz.")
elif sayi == 0:
print("0! = 1")
else:
for i in range(1, sayi + 1):
faktoriyel *= i
print(f"{sayi}! = {faktoriyel}")
While Döngüsü İle Faktöriyel Hesaplama
sayi = int(input("Faktöriyelini hesaplamak istediğiniz sayıyı girin: "))
faktoriyel = 1
if sayi < 0:
print("Negatif sayıların faktöriyeli hesaplanamaz.")
elif sayi == 0:
print("0! = 1")
else:
while sayi > 0:
faktoriyel *= sayi
sayi -= 1
print(f"Faktöriyel = {faktoriyel}")
Özyinelemeli (Recursive) Fonksiyon İle Faktöriyel Hesaplama
def faktoriyel_hesapla(n):
if n < 0:
return "Negatif sayıların faktöriyeli hesaplanamaz."
elif n == 0 or n == 1:
return 1
else:
return n * faktoriyel_hesapla(n - 1)
sayi = int(input("Faktöriyelini hesaplamak istediğiniz sayıyı girin: "))
sonuc = faktoriyel_hesapla(sayi)
print(f"{sayi}! = {sonuc}")
math Kütüphanesi İle Faktöriyel Hesaplama
import math
sayi = int(input("Faktöriyelini hesaplamak istediğiniz sayıyı girin: "))
if sayi < 0:
print("Negatif sayıların faktöriyeli hesaplanamaz.")
else:
sonuc = math.factorial(sayi)
print(f"{sayi}! = {sonuc}")
Reduce Fonksiyonu İle Faktöriyel Hesaplama
Python’un functools
modülündeki reduce
fonksiyonu kullanılarak faktöriyel hesaplanabilir.
from functools import reduce
sayi = int(input("Faktöriyelini hesaplamak istediğiniz sayıyı girin: "))
if sayi < 0:
print("Negatif sayıların faktöriyeli hesaplanamaz.")
elif sayi == 0:
print("0! = 1")
else:
faktoriyel = reduce(lambda x, y: x * y, range(1, sayi + 1))
print(f"{sayi}! = {faktoriyel}")
Hangi Yöntem Ne Zaman Kullanılır?
- For/While Döngüsü: Temel ve anlaşılır yöntemlerdir. Performans açısından da uygundur.
- Recursive Fonksiyon: Özyineleme kavramını öğrenmek için faydalıdır, ancak büyük sayılar için performans sorunları olabilir.
- Math Kütüphanesi: Hızlı ve kolay bir çözüm sunar. Büyük sayılar için idealdir.
- Reduce Fonksiyonu: Fonksiyonel programlama yaklaşımını kullanmak isteyenler için uygundur.