Pisanie programu czynnikowego w Pythonie

Writing Factorial Program Python



Silnia liczby to liczba, którą otrzymujesz po pomnożeniu wszystkich liczb od 1 do tej liczby. Silnia liczby jest oznaczona symbolem „!”. Na przykład, jeśli chcemy znaleźć silnię liczby 4, oznaczoną jako 4!, wynikiem będzie 1x2x3x4 = 24. Istnieje wiele sposobów na znalezienie silni liczby. Silnię można określić w Pythonie za pomocą wbudowanej funkcji dla funkcji pętli i funkcji rekurencyjnych. Ten samouczek pokazuje, jak można określić silnię liczby za pomocą różnych funkcji Pythona.

Przykład 1: Znajdź silnię liczby za pomocą wbudowanej funkcji

Python ma wbudowaną funkcję o nazwie Factorial() pod matematyka moduł. Poniższy skrypt oblicza silnię dowolnej liczby za pomocą wbudowanego Factorial() funkcjonować. W tym skrypcie każda prawidłowa liczba całkowita zostanie przyjęta jako dane wejściowe, a funkcja obliczy wartość silni tej liczby i wydrukuje wartość silni liczby wejściowej.







#!/usr/bin/env python3
# Importuj moduł matematyczny
import matematyka
# Weź dowolne wartości liczbowe
n= int(Wejście('Wprowadź dowolną liczbę:'))
# Znajdź silnię
fakt= matematyka.Factorial(n)
# Wydrukuj wynik silni
wydrukować('Silnia %d to %d'%(n,fakt))

Wyjście



Po uruchomieniu skryptu, 3 jest podawane jako numer wejściowy i wypisywane jest wyjście 3!, 6.







Przykład 2: Znajdź silnię liczby za pomocą pętli

Poniższy skrypt pokazuje, jak obliczyć silnię dowolnej liczby bez użycia żadnej wbudowanej funkcji w Pythonie. Tutaj dla pętla służy do obliczania silni liczby. Każda wejściowa wartość całkowita zostanie pobrana i zapisana jako zmienna o nazwie n . Zmienna o nazwie fakt służy do przechowywania wyniku silni i jest inicjowany na 1 przed wejściem do pętli. Jeśli wartość n jest więcej niż jeden lub równy jeden, to pętla wykona iterację od 1 do n+1 razy i obliczy wartość silni. W przeciwnym razie pętla sprawdzi, czy wartość n jest równa 0 lub ujemna. Jeśli wartość n wynosi 0, to wynik silni wyniesie 1; a jeśli wartość n jest ujemną liczbą całkowitą, zostanie wyświetlony komunikat o błędzie.

#!/usr/bin/env python3

# Weź wartość liczbową i zapisz w n
n= int(Wejście('Wprowadź dowolną liczbę:'))
# Zainicjuj zmienną
fakt= 1
# Znajdź silnię, jeśli liczba wejściowa jest większa niż 0
Jeślin> = 1:
# Wykonaj iterację pętli, aby pomnożyć liczby od 1 do n
dlaiw zasięg (1,n+1):
fakt=fakt * ja
# Wydrukuj wynik fcatorialny
wydrukować('Silnia %d to %d.'%(n,fakt))
w przeciwnym razie:
Jeślin== 0:
# Wydrukuj wynik 0!
wydrukować(„Silnik”,n, ' jest ')
w przeciwnym razie:
# Wydrukuj komunikat o błędzie
wydrukować(„Musisz wpisać dowolną liczbę dodatnią”)

Wyjście



Skrypt jest wykonywany trzy razy, zgodnie z poniższym zrzutem ekranu. Skrypt jest wykonywany dla wartości wejściowych 1, 6 i -8. Wyjścia są wyświetlane zgodnie z wartościami wejściowymi.

Przykład 3: Znajdź silnię liczby za pomocą funkcji rekurencyjnej

Funkcja, która wywołuje się podczas wykonywania funkcji, nazywana jest funkcją rekurencyjną. Poniższy skrypt pokazuje sposób obliczenia silni dowolnej liczby całkowitej za pomocą funkcji rekurencyjnej. Po wzięciu liczby całkowitej jako danych wejściowych funkcja rekurencyjna czynnik_resursywny () zostanie wywołana z wartością wejściową jako argumentem. Jeśli wartość wejściowa wynosi 0 lub 1, zostanie zwrócone 1. Jeśli wartość wejściowa jest ujemna, zostanie zwrócona wartość argumentu. Jeśli wartość wejściowa jest większa niż 1, funkcja wywoła samą siebie, odejmując argument o 1 raz za razem, aż obliczy wynik silni.

#!/usr/bin/env python3
# Weź wartość liczbową
numer= int(Wejście('Wprowadź dowolną liczbę:'))
# Zdefiniuj funkcję rekurencyjną, aby obliczyć silnię
definitywniesilnia_rekurencyjna(n):
# Zapisz wynik silni 0 i 1
Jeślin== 0 lubn== 1:
wynik= 1
# Zapisz numer wejściowy dla wartości ujemnej
Elifan< 1:
wynik=n
# Znajdź wynik silni w sposób rekurencyjny
w przeciwnym razie:
wynik=n*silnia_rekurencyjna(n-1)
# Zwróć wynik
powrótwynik
# Wywołaj funkcję
fakt=silnia_rekurencyjna(numer)
# Wydrukuj wynik dla liczby dodatniej
Jeślifakt> = 0:
wydrukować('Silnia %d to %d.'%(numer,fakt))
w przeciwnym razie:
# Wydrukuj wiadomość dla liczby ujemnej
wydrukować(„Musisz wpisać dowolną liczbę dodatnią”)

Wyjście

Na poniższym zrzucie ekranu skrypt jest wykonywany trzy razy z wartościami 1, -5 i 8.

Przykład 4: Znajdź silnię liczby z obsługą wyjątków

Powyższe trzy skrypty sprawdzają tylko, czy liczba jest dodatnia, czy ujemna. Poniższy skrypt oblicza silnię za pomocą wbudowanej funkcji factorial() z obsługą wyjątków. Jeśli użytkownik poda jakiekolwiek dane wejściowe bez wartości całkowitej, zostanie wygenerowany wyjątek i zostanie wydrukowany komunikat o błędzie.

#!/usr/bin/env python3
# Importuj moduł matematyczny
import matematyka
# Zdefiniuj blok try
próbować:
# Weź wartość liczbową
n= int(Wejście('Wprowadź dowolną liczbę:'))
Jeślin> = 0:
# Znajdź silnię
fakt= matematyka.Factorial(n)
# Wydrukuj wynik silni
wydrukować('Silnia %d to %d'%(n,fakt))
w przeciwnym razie:
# Zgłoś wyjątek, jeśli liczba jest ujemna
wznosić Wyjątek(„Musisz wpisać dowolną liczbę dodatnią”)
# wypisz komunikat o błędzie dla wprowadzania ułamkowego
z wyjątkiem Błąd wartości:
wydrukować('Musisz wprowadzić liczbę całkowitą')
# Wydrukuj komunikat o błędzie dla ujemnego wejścia
z wyjątkiem Wyjątek jakI:
wydrukować('Błąd:%s'%I)

Wyjście

Skrypt jest wykonywany trzy razy z wartościami h, -3 i 7 na poniższym zrzucie ekranu. Tutaj generowany jest wyjątek dla wartości „h”.

Wniosek

Ten samouczek pokazuje niektóre z różnych sposobów obliczania wartości silni liczby w Pythonie. Pojęcie silni liczby i oparte na Pythonie metody obliczania silni powinny być jasne dla czytelnika po przeczytaniu tego samouczka.