如何检查while循环内的if语句是否满足?

时间:2019-11-04 01:19:07

标签: python python-3.x if-statement while-loop

我正在尝试制作一个程序,当给定序列项时,它会打印可以获取这些项的多项式方程。我为其添加了另一个功能,该功能与第一部分类似,因为它为您提供了输入方程式后的序列项。

到目前为止,这一切进展顺利,但是在尝试实现另一个功能时遇到了一个问题。如果用户已经将方程式转化为一个序列,并且他们想检查该序列的更多术语,我希望他们能够复制该方程式,而无需手动完成,如果有道理。

我对此的尝试如下:

def func(var):
    if str(var) == "solve":
        terms = input("terms: ").split()

        ...
        coefs = []
        # code that defines the list coefs
        ...

        coefs = [a,b,c...]

        print(", ".join(coefs))

        copyeq = 1

    elif str(var) == "check":

        try:
            if copyeq == 1:
                if input("use coefficients as above?: ") == "yes":
                    checklist = coefs

                else:
                    return

            elif copyeq == 0:
                checklist = input("input coefficients: ").split()

            ...
            terms = []
            # code that defines the list terms
            ...

            terms = [p, q, r...]
            print(", ".join(term))

copyeq = 0

while 1:
    var = input("solve or check: ")
    func(var)

当我尝试对此进行测试时,它立即跳转到elif copyeq == 0:语句,这意味着我在if var == "solve":语句中为其分配的值为0。有人有任何解决方法或解决方案吗?

编辑:我打算让用户能够为其方程式求解一个序列,或检查其序列的方程式。如果他们选择先求解序列,我希望他们能够检查刚刚得到答案的方程式。我以为指针可以潜在地解决我的问题,但是快速搜索告诉我Python没有指针。

1 个答案:

答案 0 :(得分:-1)

我认为您应该查看程序的逻辑,它将直接转到elif copyeq == 0,因为您将此变量设置为该值,因此,每次用户选择检查时,程序都会转到elif。也许您可以更好地解释该程序的行为方式?