Scrierea programului factorial în Python

Writing Factorial Program Python



Factorialul unui număr este numărul pe care îl obțineți după înmulțirea tuturor numerelor de la 1 la acel număr. Factorialul unui număr este notat cu simbolul „!”. De exemplu, dacă vrem să aflăm factorialul 4, notat 4 !, atunci rezultatul ar fi 1x2x3x4 = 24. Există multe modalități de a afla factorialul unui număr. Factorialul poate fi determinat în Python folosind funcția încorporată pentru funcțiile de buclă și recursive. Acest tutorial arată cum factorialul unui număr poate fi determinat folosind diferite funcții ale Python.

Exemplul 1: Găsiți factorialul unui număr utilizând funcția încorporată

Python are o funcție încorporată numită factorial () sub matematica modul. Următorul script calculează factorialul oricărui număr utilizând un built-in factorial () funcţie. În acest script, orice număr întreg valid va fi luat ca intrare, iar funcția va calcula valoarea factorială a acelui număr și va imprima valoarea factorială a numărului de intrare.







#! / usr / bin / env python3
# Importați modulul matematic
import matematica
# Luați orice valoare numerică
n= int(intrare('Introduceți orice număr:'))
# Aflați factorialul
fapt= matematica.factorial(n)
# Imprimați rezultatul factorialului
imprimare(„Factorialul% d este% d”%(n,fapt))

Ieșire



După rularea scriptului, 3 este dat ca număr de intrare și rezultatul 3 !, 6, este tipărit.







Exemplul 2: Găsiți factorialul unui număr folosind bucla

Următorul script arată cum puteți calcula factorialul oricărui număr fără a utiliza nicio funcție încorporată în Python. Aici pentru bucla este utilizată pentru a calcula factorialul unui număr. Orice valoare întreagă de intrare va fi luată și stocată ca variabilă denumită n . O variabilă numită fapt este folosit pentru a stoca rezultatul factorial și este inițializat la 1 înainte de a intra în buclă. Dacă valoarea lui n este mai mult de unul sau egal cu unul, atunci bucla va itera de la 1 la n + 1 ori și va calcula valoarea factorială. În caz contrar, bucla va verifica dacă valoarea lui n este egală cu 0 sau negativă. Dacă valoarea lui n este 0, atunci rezultatul factorial va fi 1; iar dacă valoarea lui n este un număr negativ, atunci va fi tipărit un mesaj de eroare.

#! / usr / bin / env python3

# Luați o valoare numerică și stocați în n
n= int(intrare(„Introduceți orice număr:”))
# Inițializați variabila
fapt= 1
# Aflați factorialul dacă numărul de intrare este mai mare de 0
dacăn> = 1:
# Iterează bucla pentru a multipla numerele de la 1 la n
pentrueuîn gamă (1,n +1):
fapt=fapt * i
# Imprimați rezultatul fcatorial
imprimare(„Factorialul% d este% d.”%(n,fapt))
altceva:
dacăn== 0:
# Imprimați rezultatul 0!
imprimare(„Factorialul”,n, ' este ')
altceva:
# Imprimați mesajul de eroare
imprimare(„Trebuie să introduceți orice număr pozitiv”)

Ieșire



Scriptul este executat de trei ori, în conformitate cu următoarea captură de ecran. Scriptul este executat pentru valorile de intrare 1, 6 și -8. Ieșirile sunt afișate în funcție de valorile de intrare.

Exemplul 3: Găsiți factorialul unui număr utilizând funcția recursivă

Funcția care se numește singură în timpul executării funcției se numește funcție recursivă. Următorul script arată modul de calculare a factorialului oricărui număr întreg folosind o funcție recursivă. După luarea numărului întreg ca intrare, funcția recursivă factorial_resursive () va fi apelat, cu valoarea de intrare ca argument. Dacă valoarea de intrare este 0 sau 1, atunci 1 va fi returnat. Dacă valoarea de intrare este negativă, atunci valoarea argumentului va fi returnată. Dacă valoarea de intrare este mai mare de 1, atunci funcția se va apela scăzând argumentul cu 1 din nou și din nou până când calculează rezultatul factorialului.

#! / usr / bin / env python3
# Luați o valoare numerică
număr= int(intrare('Introduceți orice număr:'))
# Definiți funcția recursivă pentru a calcula factorialul
deffactorial_recursiv(n):
# Stocați rezultatul factorial de 0 și 1
dacăn== 0 saun== 1:
rezultat= 1
# Stocați numărul de intrare pentru valoarea negativă
elifn< 1:
rezultat=n
# Găsiți rezultatul factorial în mod recursiv
altceva:
rezultat=n * factorial_recursiv(n-1)
# Returnează rezultatul
întoarcererezultat
# Apelați funcția
fapt=factorial_recursiv(număr)
# Imprimați rezultatul pentru un număr pozitiv
dacăfapt> = 0:
imprimare(„Factorialul% d este% d.”%(număr,fapt))
altceva:
# Imprimați mesajul pentru numărul negativ
imprimare(„Trebuie să introduceți orice număr pozitiv”)

Ieșire

În următoarea captură de ecran, scriptul este executat de trei ori cu valorile 1, -5 și 8.

Exemplul 4: Găsiți factorialul unui număr cu gestionarea excepțiilor

Cele trei scripturi de mai sus verifică numai dacă numărul este pozitiv sau negativ. Următorul script calculează factorialul printr-o funcție built-in factorial () cu gestionarea excepțiilor. Dacă utilizatorul oferă orice intrare fără o valoare întreagă, atunci va fi generată o excepție și va fi tipărit un mesaj de eroare.

#! / usr / bin / env python3
# Importați modulul matematic
import matematica
# Defiați blocul try
încerca:
# Luați o valoare numerică
n= int(intrare('Introduceți orice număr:'))
dacăn> = 0:
# Aflați factorialul
fapt= matematica.factorial(n)
# Imprimați rezultatul factorialului
imprimare(„Factorialul% d este% d”%(n,fapt))
altceva:
# Creșteți excepția dacă numărul este negativ
a ridica Excepție(„Trebuie să introduceți orice număr pozitiv”)
# tipăriți mesajul de eroare pentru intrarea fracționată
cu exceptia ValueError:
imprimare(„Trebuie să introduceți numărul întreg”)
# Imprimați mesajul de eroare pentru introducerea negativă
cu exceptia Excepție la fel deȘi:
imprimare(„Eroare:% s”%Și)

Ieșire

Scriptul este executat de trei ori cu valorile h, -3 și 7 în următoarea captură de ecran. Aici, se generează excepția pentru valoarea „h”.

Concluzie

Acest tutorial arată câteva dintre diferitele moduri în care puteți calcula valoarea factorială a unui număr în Python. Conceptul factorialului unui număr și metodele bazate pe Python pentru calcularea factorialului ar trebui să fie clar cititorului după ce a citit acest tutorial.