How to generate an N-digit integer random number in Python

1 Answer

0 votes
import random

def generate_n_digit_number(n):
    """
    Generate a random integer with exactly n digits.
    
    Args:
        n (int): Number of digits (must be >= 1)
    
    Returns:
        int: Random integer with n digits.
    
    Raises:
        ValueError: If n is less than 1.
    """
    if not isinstance(n, int) or n < 1:
        raise ValueError("n must be a positive integer (>= 1).")
    
    # For n=1, range is 0-9; for n>1, ensure no leading zeros
    lower_bound = 10**(n - 1) if n > 1 else 0
    upper_bound = (10**n) - 1
    
    return random.randint(lower_bound, upper_bound)

print(generate_n_digit_number(1))  
print(generate_n_digit_number(4))  
print(generate_n_digit_number(10)) 



'''
run:

5
9100
3027065208

'''

 



answered Nov 26, 2025 by avibootz
...