tweaking random number
Peter Otten
__peter__ at web.de
Wed May 9 04:30:10 EDT 2012
Nikhil Verma wrote:
> Hi All
>
> I want to generate a random number of 8 digits which involve 3 number and
> 5 digits.
> Like this :-
>
> def random_number():
> # do something
>
> random_number()
> "123abcde" # first 3 numbers and 5 letters after the numbers.
>
> I am able to generate the random number 8 digit like this:-
>
> def random_number():
> characters = list(string.ascii_lowercase + string.ascii_uppercase\
> + string.digits)
> coll_rand = []
> for i in range(8):
> random.shuffle(characters)
> coll_rand.append(characters[0])
> return ''.join(coll_rand)
>
> This generates like this "Kkrgt56r"
>
> Thanks in advance
If you generalize your random_number() function
>>> import random, string
>>> def random_code(n=8,
chars=string.ascii_lowercase+string.ascii_uppercase+string.digits):
... return "".join(random.choice(chars) for _ in range(n))
...
>>> random_code()
'NgcLhYdR'
>>> random_code()
'j9gafcHh'
>>> random_code(chars="123ABC")
'C311BA31'
>>> random_code(n=4)
'MAsV'
you can use it as a building block quite easily:
>>> def three_five():
... return random_code(3, string.digits) + random_code(5,
string.ascii_lowercase + string.ascii_uppercase)
...
>>> three_five()
'656xEWmd'
>>> three_five()
'589XqZcI'
>>> three_five()
'168iOOIM'
More information about the Python-list
mailing list