如何根据用户输入的位数生成一个随机数?
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)
我正在制作一个用于练习的小数学程序。
用户应该输入,两个被加数应该有多少位。
我这样做如下所示:
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)