Factorial -ohjelman kirjoittaminen Pythonissa

Writing Factorial Program Python



Luvun kertoimella tarkoitetaan lukua, jonka saat kertomalla kaikki numerot yhdestä numeroon. Luvun kertoimet merkitään '!' -Merkillä. Jos esimerkiksi haluamme selvittää kertoimen 4, jota merkitään 4!, Niin tulos olisi 1x2x3x4 = 24. Luvun kertoimen voi selvittää monella tapaa. Kerroin voidaan määrittää Pythonissa käyttämällä sisäänrakennettua toimintoa silmukka- ja rekursiivisille toiminnoille. Tämä opetusohjelma näyttää, kuinka luvun kertoimet voidaan määrittää käyttämällä Pythonin eri toimintoja.

Esimerkki 1: Etsi luvun kertoimet sisäänrakennetun funktion avulla

Pythonissa on sisäänrakennettu toiminto nimeltä tekijä () alla matematiikka moduuli. Seuraava skripti laskee minkä tahansa luvun kertoimen sisäänrakennetun avulla tekijä () toiminto. Tässä skriptissä mikä tahansa kelvollinen kokonaisluku otetaan tuloksi, ja funktio laskee kyseisen luvun kertoimen arvon ja tulostaa syöttönumeron kertoimen arvon.







#!/usr/bin/env python3
# Tuo matematiikkamoduuli
tuonti matematiikka
# Ota kaikki lukuarvot
n= int(tulo('Anna mikä tahansa numero:'))
# Ota selvää tekijästä
tosiasia= matematiikka.tekijä(n)
# Tulosta kertoimen tulos
Tulosta(' %D kerroin on %d'%(n,tosiasia))

Lähtö



Komentosarjan suorittamisen jälkeen 3 annetaan syöttönumerona ja tuloste 3 !, 6 tulostetaan.







Esimerkki 2: Etsi luvun kerroin silmukan avulla

Seuraava skripti näyttää kuinka voit laskea minkä tahansa luvun kertoimen ilman Pythonin sisäänrakennettua funktiota. Tässä, varten silmukkaa käytetään luvun kertoimen laskemiseen. Kaikki syötetyt kokonaislukuarvot otetaan ja tallennetaan nimettynä muuttujana n . Muuttuja nimeltä tosiasia käytetään kertoimen tuloksen tallentamiseen ja alustetaan arvoon 1 ennen silmukkaan siirtymistä. Jos arvo n on enemmän kuin yksi tai yhtä kuin yksi, niin silmukka toistuu 1 - n+1 kertaa ja laskee kertoimen arvon. Muussa tapauksessa silmukka tarkistaa, onko n: n arvo 0 tai negatiivinen. Jos n: n arvo on 0, tekijätulos on 1; ja jos n: n arvo on negatiivinen kokonaisluku, tulostetaan virheilmoitus.

#!/usr/bin/env python3

# Ota numeerinen arvo ja tallenna numeroksi n
n= int(tulo('Anna mikä tahansa numero:'))
# Alusta muuttuja
tosiasia= 1
# Selvitä kertoimet, jos syöttönumero on suurempi kuin 0
josn> = 1:
# Toista silmukka useaan numeroon 1 - n
vartenisisään valikoima (1,n+1):
tosiasia=tosiasia * minä
# Tulosta fcatorial -tulos
Tulosta(' %D: n kerroin on %d.'%(n,tosiasia))
muu:
josn== 0:
# Tulosta tulos 0!
Tulosta('Factorial',n, ' On ')
muu:
# Tulosta virheilmoitus
Tulosta('Sinun on annettava mikä tahansa positiivinen luku')

Lähtö



Käsikirjoitus suoritetaan kolme kertaa seuraavan kuvakaappauksen mukaisesti. Skripti suoritetaan syöttöarvoille 1, 6 ja -8. Lähdöt näytetään tuloarvojen mukaan.

Esimerkki 3: Etsi luvun kerroin käyttämällä rekursiivista funktiota

Funktiota, joka kutsuu itseään toiminnon suorittamisen aikana, kutsutaan rekursiiviseksi funktioksi. Seuraava skripti näyttää tavan laskea minkä tahansa kokonaisluvun kertoimen rekursiivisen funktion avulla. Kun olet ottanut kokonaisluvun tuloksi, rekursiivinen funktio factorial_resursive () kutsutaan, syöttöarvo argumenttina. Jos syöttöarvo on 0 tai 1, 1 palautetaan. Jos syöttöarvo on negatiivinen, argumentin arvo palautetaan. Jos syöttöarvo on enemmän kuin 1, funktio kutsuu itseään vähentämällä argumentin 1: llä yhä uudelleen, kunnes se laskee kertoimen tuloksen.

#!/usr/bin/env python3
# Ota numeroarvo
määrä= int(tulo('Anna mikä tahansa numero:'))
# Määritä rekursiivinen funktio kertoimen laskemiseksi
deffactorial_recursive(n):
# Tallenna kertoimen tulos 0 ja 1
josn== 0 tain== 1:
tulos= 1
# Tallenna syöttönumero negatiiviselle arvolle
elifn< 1:
tulos=n
# Etsi tekijätulos rekursiivisella tavalla
muu:
tulos=n*factorial_recursive(n-1)
# Palauta tulos
palatatulos
# Soita toimintoon
tosiasia=factorial_recursive(määrä)
# Tulosta positiivisen luvun tulos
jostosiasia> = 0:
Tulosta(' %D: n kerroin on %d.'%(määrä,tosiasia))
muu:
# Tulosta negatiivisen numeron viesti
Tulosta('Sinun on annettava mikä tahansa positiivinen luku')

Lähtö

Seuraavassa kuvakaappauksessa komentosarja suoritetaan kolme kertaa arvoilla 1, -5 ja 8.

Esimerkki 4: Etsi luvun kertoimet poikkeuskäsittelyllä

Yllä olevat kolme komentosarjaa tarkistavat vain, onko luku positiivinen vai negatiivinen. Seuraava skripti laskee kertoimen sisäänrakennetun factorial () -funktion kautta poikkeuskäsittelyllä. Jos käyttäjä antaa syötteen ilman kokonaislukuarvoa, luodaan poikkeus ja tulostetaan virheilmoitus.

#!/usr/bin/env python3
# Tuo matematiikkamoduuli
tuonti matematiikka
# Häpäise kokeilulohko
yrittää:
# Ota numeroarvo
n= int(tulo('Anna mikä tahansa numero:'))
josn> = 0:
# Ota selvää tekijästä
tosiasia= matematiikka.tekijä(n)
# Tulosta kertoimen tulos
Tulosta(' %D kerroin on %d'%(n,tosiasia))
muu:
# Nosta poikkeus, jos luku on negatiivinen
nostaa Poikkeus('Sinun on annettava mikä tahansa positiivinen luku')
# tulosta murtoluvun virhesanoma
paitsi ValueError:
Tulosta('Sinun on annettava kokonaisluku')
# Tulosta virheilmoitus negatiiviselle tulolle
paitsi Poikkeus kutenJa:
Tulosta('Virhe:%s'%Ja)

Lähtö

Skripti suoritetaan kolme kertaa seuraavilla kuvakaappauksilla arvoilla h, -3 ja 7. Tässä poikkeus luodaan arvolle 'h'.

Johtopäätös

Tämä opetusohjelma näyttää joitain eri tapoja laskea luvun kerroinarvo Pythonissa. Luvun kertoimen käsitteen ja Python-pohjaisten kertoimen laskentamenetelmien tulisi olla lukijalle selkeitä tämän opetusohjelman lukemisen jälkeen.