datums() ir iebūvēta funkcija izlases modulis programmā Python3. Nejaušais modulis nodrošina piekļuvi dažādām noderīgām funkcijām, viena no tām spēj ģenerēt nejaušus skaitļus, kas ir datums() . Šajā rakstā mēs uzzināsim par randint in Python .
Python randint() metodes sintakse
Sintakse : randint (sākums, beigas)
Parametri:
(sākums, beigas): Abām tām ir jābūt vesela skaitļa tipa vērtībām.
virkne salīdzinājumā arAtgriešanās:
Nejaušs vesels skaitlis diapazonā [sākums, beigas], ieskaitot beigu punktus.
Kļūdas un izņēmumi:
Vērtības kļūda: Atgriež ValueError, kad peldošā komata vērtības tiek nodotas kā parametri.
Tipa kļūda: Atgriež TypeError, ja kā parametri tiek nodotas jebkas, kas nav skaitliskās vērtības.
Kā randint() darbojas Python?
Šajā piemērā mēs izmantojam Python metodi randint(), lai atrastu nejaušu skaitli noteiktā diapazonā.
Python3
# Python3 program explaining work> # of randint() function> # imports random module> import> random> # Generates a random number between> # a given positive range> r1>=> random.randint(>0>,>10>)> print>(>'Random number between 0 and 10 is % s'> %> (r1))> # Generates a random number between> # two given negative range> r2>=> random.randint(>->10>,>->1>)> print>(>'Random number between -10 and -1 is % d'> %> (r2))> # Generates a random number between> # a positive and a negative range> r3>=> random.randint(>->5>,>5>)> print>(>'Random number between -5 and 5 is % d'> %> (r3))> |
>
>Izvade
Random number between 0 and 10 is 2 Random number between -10 and -1 is -7 Random number between -5 and 5 is -3>
randint() metodes piemērs
Vairāki Randint Python metodes izsaukumi
Šajā piemērā Python mēs veicam vairākus random.randint() metodes izsaukumus.
Python3
import> random> beg,end>=>1>,>1000> for> i>in> range>(>5>):> >print>(random.randint(beg, end))> |
>
>Izvade
94 550 236 145 747>
Programma ValueError demonstrēšanai
Šajā piemērā mēs redzam, ka, ja peldošā komata vērtības nododam kā parametrus funkcijā randint (), rodas ValueError.
Python3
# imports random module> import> random> '''If we pass floating point values as> parameters in the randint() function'''> r1>=> random.randint(>1.23>,>9.34>)> print>(r1)> |
>
>
Izvade:
Traceback (most recent call last): File '/home/f813370b9ea61dd5d55d7dadc8ed5171.py', line 6, in r1=random.randint(1.23, 9.34) File '/usr/lib/python3.5/random.py', line 218, in randint return self.randrange(a, b+1) File '/usr/lib/python3.5/random.py', line 182, in randrange raise ValueError('non-integer arg 1 for randrange()') ValueError: non-integer arg 1 for randrange()> Programma tipa kļūdas demonstrēšanai
Šajā piemērā mēs redzam, ka, ja funkcijā randint() kā parametrus nododam virknes vai rakstzīmju literāļus, rodas TypeError.
Python3
# imports random> import> random> '''If we pass string or character literals as> parameters in the randint() function'''> r2>=> random.randint(>'a'>,>'z'>)> print>(r2)> |
>
>
Izvade:
Traceback (most recent call last): File '/home/fb805b21fea0e29c6a65f62b99998953.py', line 5, in r2=random.randint('a', 'z') File '/usr/lib/python3.5/random.py', line 218, in randint return self.randrange(a, b+1) TypeError: Can't convert 'int' object to str implicitly> Lietojumprogrammas: Funkciju randint() var izmantot, lai simulētu laimīgās izlozes situāciju. Pieņemsim, ka lietotājs ir piedalījies laimīgās izlozes konkursā. Lietotājam ir trīs iespējas uzminēt skaitli no 1 līdz 10. Ja minējums ir pareizs, lietotājs uzvar, pretējā gadījumā viņš zaudē konkurenci.
Python3
# importing randint function> # from random module> from> random>import> randint> # Function which generates a new> # random number everytime it executes> def> generator():> >return> randint(>1>,>10>)> > # Function takes user input and returns> # true or false depending whether the> # user wins the lucky draw!> def> rand_guess():> ># calls generator() which returns a> ># random integer between 1 and 10> >random_number>=> generator()> > ># defining the number of> ># guesses the user gets> >guess_left>=> 3> ># Setting a flag variable to check> ># the win-condition for user> >flag>=> 0> ># looping the number of times> ># the user gets chances> >while> guess_left>>> ># Taking a input from the user> >guess>=> int>(>input>(>'Pick your number to '> >'enter the lucky draw
'>))> ># checking whether user's guess> ># matches the generated win-condition> >if> guess>=>=> random_number:> ># setting flag as 1 if user guesses> ># correctly and then loop is broken> >flag>=> 1> >break> > >else>:> > ># If user's choice doesn't match> ># win-condition then it is printed> >print>(>'Wrong Guess!!'>)> ># Decrementing number of> ># guesses left by 1> >guess_left>->=> 1> ># If win-condition is satisfied then,> ># the function rand_guess returns True> >if> flag>is> 1>:> >return> True> ># Else the function returns False> >else>:> >return> False> # Driver code> if> __name__>=>=> '__main__'>:> >if> rand_guess()>is> True>:> >print>(>'Congrats!! You Win.'>)> >else> :> >print>(>'Sorry, You Lost!'>)> |
>
>
Izvade
Pick your number to enter the lucky draw 8 Wrong Guess!! Pick your number to enter the lucky draw 9 Wrong Guess!! Pick your number to enter the lucky draw 0 Congrats!! You Win.>