Python

Factorial programmas rakstīšana Python

Factorial programmas rakstīšana Python
Skaitļa faktoriāls ir skaitlis, kuru iegūstat, reizinot visus skaitļus no 1 līdz šim skaitlim. Skaitļa faktoriālu apzīmē ar “!'simbols. Piemēram, ja mēs vēlamies uzzināt koeficientu 4, kas apzīmēts ar 4!, tad rezultāts būtu 1x2x3x4 = 24. Ir daudz veidu, kā uzzināt skaitļa faktoriālu. Faktoriāli var noteikt Python, izmantojot iebūvēto funkciju cilpu un rekursīvām funkcijām. Šī apmācība parāda, kā skaitļa faktoriālu var noteikt, izmantojot dažādas Python funkcijas.

1. piemērs: Atrodiet skaitļa faktorialu, izmantojot iebūvēto funkciju

Python ir iebūvēta funkcija ar nosaukumu faktoriāls () saskaņā matemātika modulis. Šis skripts aprēķina jebkura skaitļa faktoriālu, izmantojot iebūvēto faktoriāls () funkciju. Šajā skriptā jebkurš derīgs vesels skaitlis tiks ņemts par ievadi, un funkcija aprēķinās šī skaitļa faktoriālo vērtību un izdrukās ievades numura faktoriālo vērtību.

#!/ usr / bin / env python3
# Importēt matemātikas moduli
importēt matemātiku
# Ņemiet jebkuru skaitļa vērtību
n = int (ievade ("Ievadiet jebkuru skaitli:"))
# Uzziniet faktoriālu
fakts = matemātika.faktoriāls (n)
# Izdrukājiet faktoriala rezultātu
drukāt ("% d faktorial ir% d"% (n, fakts))

Rezultāts

Pēc skripta palaišanas 3 tiek norādīts kā ievades numurs un 3 izeja!, 6, ir iespiests.

2. piemērs. Izmantojot cilpu, atrodiet skaitļa faktorialu

Šis skripts parāda, kā jūs varat aprēķināt jebkura skaitļa faktoriālu, neizmantojot nevienu iebūvētu funkciju Python. Lūk, priekš cilpa tiek izmantota skaitļa faktoriāla aprēķināšanai. Jebkura ievadītā veselā skaitļa vērtība tiks ņemta un saglabāta kā mainīgais ar nosaukumu n. Mainīgais ar nosaukumu fakts tiek izmantots, lai saglabātu faktoriālo rezultātu, un pirms ievadīšanas kontā tiek inicializēts uz 1. Ja vērtība n ir vairāk nekā viens vai vienāds ar vienu, tad cilpa atkārtosies no 1 līdz n + 1 reizes un aprēķinās faktoriālo vērtību. Pretējā gadījumā cilpa pārbaudīs, vai n vērtība ir vienāda ar 0 vai negatīva. Ja n vērtība ir 0, tad faktoriālais rezultāts būs 1; un, ja n vērtība ir negatīvs vesels skaitlis, tiks izdrukāts kļūdas ziņojums.

#!/ usr / bin / env python3
 
# Paņemiet skaitlisko vērtību un uzglabājiet n
n = int (ievade ("Ievadiet jebkuru skaitli:"))
# Inicializējiet mainīgo
fakts = 1
# Uzziniet faktoriālu, ja ievades numurs ir lielāks par 0
ja n> = 1:
# Atkārtojiet cilpu, lai skaitļi būtu no 1 līdz n
i diapazonā (1, n + 1):
fakts = fakts * i
# Izdrukājiet fkatoriālo rezultātu
print ("% d faktorial ir% d."% (n, fakts))
cits:
ja n == 0:
# Izdrukājiet 0 rezultātu!
drukāt ("Faktoriāls", n, "ir")
cits:
# Izdrukājiet kļūdas ziņojumu
drukāt ("Jums jāievada jebkurš pozitīvs skaitlis")

Rezultāts

Skripts tiek izpildīts trīs reizes, saskaņā ar šo ekrānuzņēmumu. Skripts tiek izpildīts ievades vērtībām 1, 6 un -8. Rezultāti tiek parādīti atbilstoši ieejas vērtībām.

3. piemērs: Atrodiet skaitļa faktorialu, izmantojot rekursīvo funkciju

Funkciju, kas sevi izsauc funkcijas izpildes laikā, sauc par rekursīvo funkciju. Šis skripts parāda veidu, kā aprēķināt jebkura vesela skaitļa faktoriālu, izmantojot rekursīvu funkciju. Pēc veselā skaitļa ņemšanas par ievadi rekursīvā funkcija factorial_resursive () tiks izsaukts, kā arguments ievades vērtība. Ja ievades vērtība ir 0 vai 1, 1 tiks atgriezts. Ja ievades vērtība ir negatīva, argumenta vērtība tiks atgriezta. Ja ievades vērtība ir lielāka par 1, tad funkcija pati sevi izsauks, atkal un atkal atņemot argumentu par 1, līdz tā aprēķina faktoriālo rezultātu.

#!/ usr / bin / env python3
# Paņemiet skaitlisku vērtību
numurs = int (ievade ("Ievadiet jebkuru skaitli:"))
# Definējiet rekursīvo funkciju, lai aprēķinātu faktoriālo
def factorial_recursive (n):
# Saglabājiet faktoru 0 un 1 rezultātu
ja n == 0 vai n == 1:
rezultāts = 1
# Saglabājiet negatīvās vērtības ievades numuru
elif n < 1:
rezultāts = n
# Atrodiet faktoriālo rezultātu rekursīvā veidā
cits:
rezultāts = n * faktoriāls_ rekursīvs (n-1)
# Atgrieziet rezultātu
atgriešanās rezultāts
# Izsauciet funkciju
fakts = faktoriāls_ rekursīvs (skaitlis)
# Izdrukājiet pozitīvā skaitļa rezultātu
ja fakts> = 0:
print ("% d faktorial ir% d."% (skaits, fakts))
cits:
# Izdrukājiet negatīvā skaitļa ziņojumu
drukāt ("Jums jāievada jebkurš pozitīvs skaitlis")

Rezultāts

Šajā ekrānuzņēmumā skripts tiek izpildīts trīs reizes ar vērtībām 1, -5 un 8.

4. piemērs: atrodiet skaitļa faktoriālu, izņemot apstrādi

Iepriekš minētie trīs skripti pārbauda tikai to, vai skaitlis ir pozitīvs vai negatīvs. Šis skripts aprēķina faktoriālu, izmantojot iebūvētu faktoriālo () funkciju, izņemot izņēmumu apstrādi. Ja lietotājs ievada jebkuru ievadi bez vesela skaitļa vērtības, tiks izveidots izņēmums un tiks izdrukāts kļūdas ziņojums.

#!/ usr / bin / env python3
# Importēt matemātikas moduli
importēt matemātiku
# Nojauciet mēģinājumu bloku
mēģiniet:
# Paņemiet skaitlisku vērtību
n = int (ievade ("Ievadiet jebkuru skaitli:"))
ja n> = 0:
# Uzziniet faktoriālu
fakts = matemātika.faktoriāls (n)
# Izdrukājiet faktoriala rezultātu
drukāt ("% d faktorial ir% d"% (n, fakts))
cits:
# Paaugstiniet izņēmumu, ja skaitlis ir negatīvs
paaugstināt izņēmumu ("Jums jāievada jebkurš pozitīvs skaitlis")
# izdrukāt kļūdas ziņojumu daļējai ievadei
izņemot ValueError:
print ("Jums jāievada vesels skaitlis")
# Drukas kļūdas ziņojums negatīvai ievadei
izņemot izņēmumu kā e:
drukāt ('Kļūda:% s'% e)

Rezultāts

Skripts tiek izpildīts trīs reizes ar vērtībām h, -3 un 7 nākamajā ekrānuzņēmumā. Šeit tiek ģenerēts izņēmums vērtībai 'h."

Secinājums

Šī apmācība parāda dažus dažādos veidos, kā varat aprēķināt skaitļa faktoriālo vērtību Python. Skaitļa faktoriālajam jēdzienam un faktoram aprēķināt Python balstītām metodēm lasītājam jābūt skaidram pēc šīs apmācības izlasīšanas.

10 labākās spēles, kuras spēlēt Ubuntu
Windows platforma ir bijusi viena no dominējošajām spēļu platformām, jo ​​mūsdienās tiek attīstīts milzīgs spēļu skaits, lai atbalstītu Windows. Vai k...
5 labākās arkādes spēles Linux
Mūsdienās datori ir nopietnas mašīnas, kuras izmanto spēlēšanai. Ja jūs nevarat iegūt jauno augsto rezultātu, jūs zināt, ko es domāju. Šajā ierakstā j...
Cīņa par Vesnotu 1.13.6 Izlaista attīstība
Cīņa par Vesnotu 1.13.6 izlaists pagājušajā mēnesī, ir sestais izstrādes izlaidums 1.13.x sērija un tā nodrošina vairākus uzlabojumus, īpaši lietotāja...