You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python生成用户指定位数的随机数以适配数学练习程序需求?

实现方案

直接根据输入的位数动态计算随机数的取值区间即可,无需为不同位数单独编写适配逻辑:

  • n位正整数的取值范围为 10^(n-1) 到 10^n - 1,如果需要1位数包含0,单独对位数为1的场景做最小值兼容即可
  • 计算得到的上下界可直接传入random.randint方法生成对应位数的随机加数

完整可运行代码

import random
digits = int(input("How many digits should the numbers have? "))
# 动态计算取值区间
min_num = 0 if digits == 1 else 10 ** (digits - 1)
max_num = 10 ** digits - 1

while True:
    num1 = random.randint(min_num, max_num)
    num2 = random.randint(min_num, max_num)
    solution = num1 + num2
    user_input = int(input(f"{num1} + {num2} = ? "))
    # 可根据需求自定义答对/答错的反馈逻辑
    if user_input == solution:
        print("Correct!")
    else:
        print(f"Wrong! The right answer is {solution}")

逻辑说明

如果不需要1位数包含0,只需将min_num的赋值逻辑改为min_num = 10 ** (digits - 1),即可实现所有位数的逻辑完全统一。后续无论需要生成多少位的加法题,都不需要修改代码逻辑,直接输入对应位数即可。

内容的提问来源于stack exchange,提问作者Jakob Nolda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 20:36:05