-1

How to write a function that takes a number n and return a randomly generated number having exactly n digits (except starting with 0). e.g. if n is 2 then function can randomly return a number in range 10-99 but 07,02 etc. are not valid two digit number.

Cody Gray
  • 230,875
  • 49
  • 477
  • 553
  • 2
    _How to avoid using 0 as first digit?.._ Seems you already have implemented the rest of the requirement - Where is that code? – B001ᛦ Jun 26 '19 at 10:33
  • You basically answered your own question: *"if n is 2 then function can randomly return a number __in range 10-99__"* - [`random.randint(10, 99)`](https://docs.python.org/3/library/random.html#random.randint)... – Tomerikoo Jul 04 '21 at 14:25

1 Answers1

2

Here is a function that gets as input the number of digits ndigits, and returns a random number with ndigits digits. I use powers of 10 to get the range of numbers with ndigits digits.

import random

...

def random_ndigits(ndigits):
    min_num = 10 ** (ndigits - 1)
    max_num = (10 ** ndigits) - 1

    if ndigits == 1:
        min_num = 0

    return random.randint(min_num, max_num)
Eliahu Aaron
  • 1
  • 4
  • 26
  • 35