在python中对预设条件运行循环

2024-09-21 05:24:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个班级来解决ab-c类的数学问题。但是,我只希望函数在ab-c在范围(0100)内时运行。当我运行代码时,它只会继续打印“超出范围”。相反,我希望它尝试a*b-c,直到结果落在所需的范围内(即0到100之间)。如有任何建议,我们将不胜感激

#MULTIPLIZIEREN

class Multiplizieren:
    def __init__(self,name):
    self.name = name
    self.a = rdm.randint(5,20)
    self.b = rdm.randint(4,50)
    self.c = rdm.randint(2,200)

def punktstrich(self):
    finished = False
    while not finished:
        c = self.a*self.b-self.c
        if c < 0 or c > 100:
            print('OUT OF RANGE')
            return
        else:
            print(self.a, '*', self.b, '-', self.c, '=', self.a*self.b-self.c)
            finished = True
            return c

Tags: 函数代码nameselfreturnabdef数学
1条回答
网友
1楼 · 发布于 2024-09-21 05:24:40
import random as rdm
class Multiplizieren:
    def __init__(self,name):
        self.name = name
        self.a = rdm.randint(5,20)
        self.b = rdm.randint(4,50)
        self.c = rdm.randint(2,200)

    def x(self):
        finished = False
        while not finished:
            c = self.a*self.b-self.c
            if c < 0 or c > 100:
                print('OUT OF RANGE')
                self.__init__(self.name)
            else:
                print(self.a, '*', self.b, '-', self.c, '=', self.a*self.b-self.c)
                finished = True
                return c

d = Multiplizieren('h')
d.x()

当超出范围时,只需调用self.__init__(self.name)来重新初始化类,而不是return,这将为a、b和c提供新的值


关于__init__()的一个补充说明:它是一个特殊的函数,在创建对象时会自动调用,但您仍然可以像调用常规函数一样调用它

相关问题 更多 >

    热门问题