randint() tarjoaa yk­sin­ker­tai­sen ja nopean tavan luoda sa­tun­nai­sia ko­ko­nais­lu­ku­ja annetulla alueella. Tämä tekee siitä op­ti­maa­li­sen työkalun mo­nen­lai­siin käyt­tö­tar­koi­tuk­siin.

Mihin randint() käytetään?

randint() on Python-kielessä random-moduuliin kuuluva funktio. Se luo sa­tun­nai­sen ko­ko­nais­lu­vun tietyn alueen sisällä. Toisin kuin jotkut muiden oh­jel­moin­ti­kie­lien funktiot, randint() sisältää alueen mää­ri­te­tyn pää­te­pis­teen. Tämä tar­koit­taa, että sekä alku- että loppuarvo voivat olla mah­dol­lis­ten tulosten alueella. randint() on erityisen hyö­dyl­li­nen so­vel­luk­sis­sa, jotka pe­rus­tu­vat sa­tun­nai­siin arvoihin.

Random-mo­duu­lis­sa on useita tapoja luoda sa­tun­nais­lu­ku­ja. Esi­mer­kik­si random.randrange(start, stop[, step]) on sa­man­lai­nen kuin randint(), mutta antaa käyt­tä­jil­le mah­dol­li­suu­den mää­ri­tel­lä va­lin­nai­nen askel nu­me­ro­sar­jal­le. Kun random.randint() tuottaa vain ko­ko­nais­lu­ku­ja, random.uniform(a, b) tuottaa sa­tun­nai­sen de­si­maa­li­lu­vun ase­te­tul­la alueella.

NumPy-paketti tarjoaa myös edis­ty­nei­tä omi­nai­suuk­sia sa­tun­nais­lu­ku­jen ge­ne­roin­tiin, mikä on erityisen hyö­dyl­lis­tä tau­lu­koi­den kä­sit­te­lyyn ja mo­ni­mut­kai­siin ma­te­maat­ti­siin las­kel­miin.

Miten randint() on ra­ken­net­tu?

randint() syntaksi on suh­teel­li­sen yk­sin­ker­tai­nen ja vaatii kaksi pa­ra­met­ria: aloi­tusar­von ja lop­puar­von alueelle, jossa sa­tun­nai­nen ko­ko­nais­lu­ku ge­ne­roi­daan.

import random
random_number = random.randint(start, end)
python
  • import random: Tämä tuo random-moduulin, joka sisältää randint() -funktion. Sinun on si­säl­ly­tet­tä­vä tämä vaihe, jotta voit käyttää randint().
  • random_number: Tämä on muuttuja, johon randint() -funktion tulos tal­len­ne­taan. Tämä muuttuja sisältää ge­ne­roi­dun sa­tun­nais­lu­kun.
  • start: Alueen alkuarvo, jossa sa­tun­nai­nen ko­ko­nais­lu­ku ge­ne­roi­daan. Tämä luku sisältyy tulokseen.
  • end: Tämä on välin lo­pul­li­nen arvo. Tämä luku sisältyy myös tulokseen.

Tässä on käytännön esimerkki:

import random
random_number = random.randint(1, 100)
print(random_number)
python

Tämä koodi tuottaa sa­tun­nai­sen ko­ko­nais­lu­vun välillä 1 ja 100 ja näyttää sen kon­so­lis­sa. Arvot start ja end si­säl­ty­vät mää­ri­tel­tyi­hin rajoihin, jolloin tuotettu luku voi olla mikä tahansa luku välillä 1 ja 100.

Kuinka käyttää randint() toimintoa ja välttää yleisiä virheitä

Voit käyttää randint() sa­tun­nais­lu­ku­ge­ne­raat­to­ria jous­ta­vas­ti oh­jel­mas­sa­si. On kuitenkin tärkeää varmistaa, että koodisi on puhdas ja tarkka, jotta vältät tietyt vir­heil­moi­tuk­set.

Käyt­tä­mäl­lä randint() useita kertoja

Jos käytät randint() useita kertoja, voit luoda useita sa­tun­nai­sia ko­ko­nais­lu­ku­ja koodin eri osissa. Jokainen randint() koskeva kutsu luo uuden sa­tun­nai­sen ko­ko­nais­lu­vun mää­ri­tet­ty­jen pa­ra­met­rien mu­kai­ses­ti.

import random
# Generate three different random integers between 1 and 10
random_number1 = random.randint(1, 10)
random_number2 = random.randint(1, 10)
random_number3 = random.randint(1, 10)
# Print the generated random integers
print("Random integer 1:", random_number1)
print("Random integer 2:", random_number2)
print("Random integer 3:", random_number3)
python

Annetussa koo­din­pät­käs­sä käytämme kolmea erillistä randint() luo­dak­sem­me kolme ai­nut­laa­tuis­ta sa­tun­nais­ta ko­ko­nais­lu­kua välillä 1–10. Jokainen random_numberX-muuttuja sisältää erillisen randint() kutsun tuloksen, ja näitä tuloksia voidaan käyttää uudelleen tai näyttää so­vel­luk­sen tarpeiden mukaan.

Va­lu­eEr­ror, randint()

Va­lu­eEr­ror-virhe ilmestyy numerolla randint(), jos ar­gu­men­tit eivät ole odotusten mukaisia, esi­mer­kik­si jos alkuarvo on suurempi kuin loppuarvo tai jos ar­gu­men­tit eivät ole ko­ko­nais­lu­ku­ja. On tärkeää varmistaa, että pa­ra­met­rit ovat oikein. Näin vältyt Va­lu­eEr­ror-virheeltä ja funktio voidaan suorittaa sujuvasti.

# Correct use of randint()
random_number = random.randint(1, 10)
print("Random integer between 1 and 10:", random_number)
# Potential ValueError if 'end' is less than 'start'
random_number_error = random.randint(10, 5)  # This will raise a ValueError
print("There is an error that prevents a random integer from being printed.")
python

Ensin käytämme random.randint(1, 10) luo­dak­sem­me sa­tun­nai­sen ko­ko­nais­lu­vun välillä 1–10. Seu­raa­vak­si yritämme kutsua random.randint(10, 5), mikä aiheuttaa Va­lu­eEr­ror-virheen, koska alkuarvo on suurempi kuin loppuarvo.

TypeError, randint()

TypeError ilmenee, kun funktiota tai ope­raa­tio­ta käytetään tie­to­tyy­pis­sä, joka ei sovellu siihen. Random-moduulin randint() funk­tios­sa tämä virhe voi ilmetä, jos välitetyt ar­gu­men­tit eivät ole vaadittua tie­to­tyyp­piä.

import random
random_number_error = random.randint("1", "10")
python

Tässä esi­mer­kis­sä haluamme kutsua randint() Python-merk­ki­jo­noil­la ar­gu­ment­tei­na. Sen sijaan, että syöt­täi­sim­me ne ko­ko­nais­lu­kui­na, suljimme arvot lai­naus­merk­kei­hin. Tämä johtaa TypeError-vir­hee­seen, koska randint() odottaa ko­ko­nais­lu­ku­ja ar­gu­ment­tei­na sa­tun­nai­sen välin alueelle.

Siirry pää­va­lik­koon