Python

Factoriali programmi kirjutamine Pythonis

Factoriali programmi kirjutamine Pythonis
Numbri faktoriaal on arv, mille saate pärast kõigi numbrite korrutamist ühest numbrini. Numbri faktoriaal tähistatakse tähega!sümbol. Näiteks kui tahame teada saada 4, tähistatud 4 faktoriali!, siis oleks tulemus 1x2x3x4 = 24. Numbri faktoori teada saamiseks on palju võimalusi. Faktooriumi saab Pythonis määrata silmus- ja rekursiivfunktsioonide sisseehitatud funktsiooni abil. See õpetus näitab, kuidas arvu faktoori saab Pythoni erinevate funktsioonide abil määrata.

Näide 1: Sisseehitatud funktsiooni abil leiate numbri faktori

Pythonil on sisseehitatud funktsioon nimega faktoriaal () all matemaatika moodul. Järgmine skript arvutab sisseehitatud abil mis tahes arvu faktori faktoriaal () funktsioon. Selles skriptis võetakse sisendiks mis tahes kehtiv täisarv ja funktsioon arvutab selle numbri faktoriaalväärtuse ja printib sisendnumbri faktoriaalväärtuse.

#!/ usr / bin / env python3
# Import matemaatika moodul
import matemaatika
# Võtke suvalised arvuväärtused
n = int (sisend ("Sisestage mis tahes number:"))
# Uurige välja faktoor
fakt = matemaatika.faktoriaal (n)
# Trükkige faktoori tulemus
print ("% d faktorial on% d"% (n, fakt))

Väljund

Pärast skripti käivitamist antakse 3 sisendnumbrina ja väljundina 3!, 6, on trükitud.

Näide 2: Leidke silmuse abil arvu faktoriaal

Järgmine skript näitab, kuidas saate arvutada mis tahes arvu faktori, ilma et kasutaksite Pythonis ühtegi sisseehitatud funktsiooni. Siin, eest silmust kasutatakse arvu faktori arvutamiseks. Kõik sisestatud täisarvud võetakse ja salvestatakse nimega muutujatena n. Muutuja nimega fakt kasutatakse faktori tulemuse salvestamiseks ja enne tsüklisse sisenemist lähtestatakse väärtus 1. Kui väärtus n on rohkem kui üks või võrdne ühega, siis kordab silmus 1 kuni n + 1 korda ja arvutab faktori väärtuse. Vastasel juhul kontrollib silmus, kas n väärtus on 0 või negatiivne. Kui n väärtus on 0, on faktori tulemus 1; ja kui n väärtus on negatiivne täisarv, siis trükitakse veateade.

#!/ usr / bin / env python3
 
# Võtke arvuline väärtus ja salvestage see n-s
n = int (sisend ("Sisestage mis tahes number:"))
# Initsialiseerige muutuja
fakt = 1
# Uurige faktoori, kui sisendi number on suurem kui 0
kui n> = 1:
# Kordage silmus mitme arvuga vahemikus 1 kuni n
i jaoks vahemikus (1, n + 1):
fakt = fakt * i
# Trükkige fkatoriaalne tulemus
print ("% d faktorial on% d."% (n, fakt)"
muu:
kui n == 0:
# Trükkige 0 tulemus!
print ("Faktoriaal", n, "on")
muu:
# Printige veateade
print ("Peate sisestama mis tahes positiivse arvu")

Väljund

Skripti täidetakse kolm korda vastavalt järgmisele ekraanipildile. Skript täidetakse sisendväärtuste 1, 6 ja -8 jaoks. Väljundid kuvatakse vastavalt sisendväärtustele.

Näide 3: Leidke rekursiivse funktsiooni abil arvu faktoriaal

Funktsiooni, mis kutsub ennast funktsiooni täitmise ajal, nimetatakse rekursiivseks funktsiooniks. Järgmine skript näitab, kuidas arvutada rekursiivse funktsiooni abil mis tahes täisarvu faktoriaal. Pärast täisarvu sisendiks võtmist rekursiivne funktsioon factorial_resursive () kutsutakse argumendina sisendväärtus. Kui sisendi väärtus on 0 või 1, tagastatakse 1. Kui sisendi väärtus on negatiivne, tagastatakse argumendi väärtus. Kui sisendväärtus on suurem kui 1, kutsub funktsioon ennast lahutades argumendi uuesti 1-ga, kuni see arvutab faktoori tulemuse.

#!/ usr / bin / env python3
# Võtke arvuline väärtus
number = int (sisend ("Sisestage mis tahes number:"))
# Faktooriumi arvutamiseks määratlege rekursiivne funktsioon
def faktori_rekursiivne (n):
# Salvestage faktorite tulemus 0 ja 1
kui n == 0 või n == 1:
tulemus = 1
# Salvestage sisendarv negatiivse väärtuse jaoks
elif n < 1:
tulemus = n
# Leidke faktorite tulemus rekursiivsel viisil
muu:
tulemus = n * faktori_rekursiivne (n-1)
# Tagastage tulemus
tagastustulemus
# Helistage funktsioonile
fakt = faktori_rekursiivne (arv)
# Trükkige positiivse arvu tulemus
kui fakt> = 0:
print ("% d faktorial on% d."% (arv, fakt))
muu:
# Trükkige negatiivse numbri teade
print ("Peate sisestama mis tahes positiivse arvu")

Väljund

Järgmisel ekraanipildil käivitatakse skript kolm korda väärtustega 1, -5 ja 8.

Näide 4: Leidke numbri faktoriaal koos erandkäsitlusega

Kolm ülaltoodud skripti kontrollivad ainult seda, kas arv on positiivne või negatiivne. Järgmine skript arvutab faktoori sisseehitatud faktori () funktsiooni kaudu, välja arvatud erandkäsitlus. Kui kasutaja annab suvalise väärtuseta sisendi, luuakse erand ja trükitakse veateade.

#!/ usr / bin / env python3
# Import matemaatika moodul
import matemaatika
# Trotsige proovimisplokki
proovige:
# Võtke arvuline väärtus
n = int (sisend ("Sisestage mis tahes number:"))
kui n> = 0:
# Uurige välja faktoor
fakt = matemaatika.faktoriaal (n)
# Trükkige faktoori tulemus
print ("% d faktorial on% d"% (n, fakt))
muu:
# Tõstke erand, kui arv on negatiivne
tõsta erandit ("Peate sisestama mis tahes positiivse arvu")
# printige murdosa sisendi veateade
välja arvatud ValueError:
print ("Peate sisestama täisarvu")
# Negatiivse sisendi veateate printimine
välja arvatud erand kui e:
print ('Viga:% s'% e)

Väljund

Skript käivitatakse järgmisel ekraanipildil kolm korda väärtustega h, -3 ja 7. Siin genereeritakse erand väärtusele 'h."

Järeldus

Selles õpetuses on näidatud mõned erinevad viisid, kuidas saate Pythonis arvutada faktori väärtuse. Numbri faktoori mõiste ja Pythoni-põhised meetodid faktooriumi arvutamiseks peaksid olema lugejale selged pärast selle õpetuse lugemist.

Parimad Linuxi mängupuldi kaardistamise rakendused
Kui teile meeldib mängida Linuxis mänge tavalise klaviatuuri ja hiire sisestussüsteemi asemel mängupuldiga, on teie jaoks mõned kasulikud rakendused. ...
Kasulikud tööriistad Linuxi mängijatele
Kui teile meeldib Linuxis mänge mängida, on tõenäoline, et olete mängukogemuse parandamiseks kasutanud selliseid rakendusi ja utiliite nagu Wine, Lutr...
HD Remastered Games Linuxile, millel pole kunagi varem Linuxi väljalaset olnud
Paljud mängude arendajad ja kirjastajad pakuvad frantsiisi eluea pikendamiseks välja vanade mängude HD-remasteri. Palun fännid, kes soovivad ühilduvus...