如何根据用户输入的位数生成一个随机数?

How to generate a random number with the amount of digits, the user enters?

我正在制作一个用于练习的小数学程序。

用户应该输入,两个被加数应该有多少位。

我这样做如下所示:

import random
digits = int(input("How many digits should the numbers have? "))
if digits == 1:
    while True:
        num1 = random.randint(0,9)
        num2 = random.randint(0,9)
        solution = num1 + num2
        print(str(num1) + " + " + str(num2) + " = ? ")
        question = int(input())

我怎样才能使这个过程自动化,这样我就不必在数字增加时手动添加?

我可能认为有更好的选择,尤其是类型转换较少的情况,但在我的脑海中,这将是获得 n 位数字的选项:

import random
digits = int(input("How many digits should the numbers have? "))

list = []
for _ in range(digits):
    list.append(str(random.randint(0,9)))
                
number = int("".join(list))

也就是说,在 Stack Overflow 上进行简短搜索,有 even cleaner options 个可用。

random.randint 包括两个边界,所以我认为您的示例中的意思是 random.randint(0, 9)。

我建议用数学来解决你的问题。 n 位数字是 10**(n-1) 和 10**n 之间的数字。

所以它看起来像这样

digigts = int(digits)
num = random.randint(10**(digits - 1), 10**digits - 1)