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
相关产品推荐
相关产品推荐

