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

Python中如何循环生成符合(0,100)范围的a*b-c计算结果

解决Multiplizieren类的范围判断与自动生成问题

嘿,我来帮你搞定这个困扰!你的问题核心在于当前代码只在初始化时生成一次随机数,没有检查结果是否符合(0,100)的要求,也没有循环重新生成的逻辑——所以第一次生成的数值不符合的话,就一直是这个结果,自然会持续输出“out of range”。

下面给你一套完整的解决方案,实现自动循环生成a、b、c直到结果落在目标范围内:

第一步:确保导入random模块

首先要记得导入random(你代码里用了rdm作为别名,所以要加上这行):

import random as rdm

第二步:修改Multiplizieren类

我们可以在类里添加一个专门的方法来循环生成符合条件的数值,让代码结构更清晰:

class Multiplizieren:
    def __init__(self, name):
        self.name = name
        # 先初始化参数为None
        self.a = None
        self.b = None
        self.c = None
        self.result = None
        # 初始化时直接生成符合条件的数值
        self.generate_valid_params()

    def generate_valid_params(self):
        # 循环生成,直到结果落在(0,100)之间
        while True:
            self.a = rdm.randint(5, 20)
            self.b = rdm.randint(4, 50)
            # 给c设置合理范围,避免生成过大的c导致结果一直为负
            self.c = rdm.randint(0, self.a * self.b + 100)
            self.result = self.a * self.b - self.c
            # 判断结果是否在目标范围内
            if 0 < self.result < 100:
                break  # 符合条件就跳出循环

    def run_function(self):
        # 这里写你要执行的功能逻辑
        print(f"Hi {self.name}!计算结果{self.a}*{self.b}-{self.c}={self.result},处于(0,100)范围内,执行功能啦!")

第三步:测试代码

现在实例化类的时候,就会自动生成符合条件的参数,直接调用功能方法即可:

# 创建实例
calc = Multiplizieren("Johannes")
# 执行功能
calc.run_function()
# 也可以查看生成的参数和结果
print(f"生成的参数:a={calc.a}, b={calc.b}, c={calc.c},结果={calc.result}")

为什么这样有效?

原来的代码只生成一次随机数就结束了,而现在通过while True循环,会不断重新生成a、b、c,直到计算结果满足0 < 结果 < 100的条件才停止循环,这样就保证了每次实例化类都能得到符合要求的参数,不会再出现一直输出“out of range”的情况。

内容的提问来源于stack exchange,提问作者Johannes Schwaninger

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:15:21